Работа с Встречами

Загрузка и Сохранение Встречи в Формате ICS

Класс Appointment в Aspose.Email API может быть использован для загрузки встречи в формате ICS, а также для создания новой встречи и сохранения её на диск в формате ICS. В этой статье мы сначала создадим встречу и сохраним её на диск в формате ICS, а затем мы загрузим её.

Создание Встречи и Сохранение на Диск в Формате ICS

Для создания встречи и сохранения её в формате ICS необходимо выполнить следующие шаги.

  1. Создайте экземпляр класса Appointment и инициализируйте его с помощью этого конструктора.
  2. Передайте следующие аргументы в вышеприведённый конструктор:
    1. Участники
    2. Описание
    3. Дата окончания
    4. Место
    5. Организатор
    6. Дата начала
    7. Резюме
  3. Вызовите метод Save() и укажите имя файла и формат в аргументах.

Встречу можно открыть в Microsoft Outlook или в любой программе, которая может загрузить файл ICS. Если файл открыт в Microsoft Outlook, он автоматически добавляет встречу в календарь Outlook.

Следующий код показывает, как создать и сохранить встречу на диск в формате ICS.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
#Create Appointment instance
attendees = MailAddressCollection()
attendees.append("attendee@domain.com")
app = Appointment("Room 112", dt.datetime(2018, 5, 27, 22, 12, 11), dt.date(2018, 5, 28), "from@domain.com", attendees);
app.summary = "Release Meetting";
app.description = "Discuss for the next release"
app.save(dataDir + "AppointmentInICSFormat_out.ics", AppointmentSaveFormat.ICS)

Загрузка Встречи в Формате ICS

Для загрузки встречи в формате ICS необходимо выполнить следующие шаги:

  1. Создайте экземпляр класса Appointment.
  2. Вызовите метод Load(), указав путь к файлу ICS.
  3. Считайте любое свойство, чтобы получить информацию о встрече (файл ICS).

Следующий код показывает, как загрузить встречу в формате ICS.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
#Load Appointment instance
loadedAppointment = Appointment.load(dataDir + "AppointmentInICSFormat_out.ics")
print("Summary: " + loadedAppointment.summary)
print("Location: " + loadedAppointment.location)
print("Description: " + loadedAppointment.description)
print("Start date: " + str(loadedAppointment.start_date))
print("End date: " + str(loadedAppointment.end_date))
print("Organizer: " + loadedAppointment.organizer.address)
print("Attendees: " + loadedAppointment.attendees[0].address)

Чтение Нескольких Событий из Файла ICS

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
#Load Appointment instance
reader = CalendarReader(dataDir + "US-Holidays.ics")
appointments = []
while reader.next_event():
appointments.append(reader.current)
print ("Total Appointments: " + str(len(appointments)))

Запись Нескольких Событий в Файл ICS

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
saveOptions = IcsSaveOptions()
saveOptions.action = AppointmentAction.CREATE
writer = CalendarWriter(dataDir + "WriteMultipleEventsToICS_out.ics", saveOptions)
attendees = MailAddressCollection()
attendees.append("attendee@domain.com")
for i in range(10):
app = Appointment("Room 112", dt.datetime(2018, 5, 27, 22, 12, 11), dt.date(2018, 5, 28), "from@domain.com", attendees)
app.description = "Test body " + str(i)
app.summary = "Test summary:" + str(i)
writer.write(app)

Создание Запроса на Встречу в Черновике

В наших предыдущих статьях было показано, как создать и сохранить встречу в формате ICS. Часто требуется создать запрос на встречу в режиме черновика, чтобы основная информация была добавлена, а затем этот черновик встречи был перенаправлен другим пользователям для необходимых изменений в соответствии с индивидуальными пользователями. Чтобы сохранить встречу в режиме черновика, свойство Method класса Appointment должно быть установлено в Publish. Следующий код показывает, как создать запрос на встречу в черновике.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
#Create Appointment instance
attendees = MailAddressCollection()
attendees.append("attendee@domain.com")
app = Appointment("Room 112", dt.datetime(2018, 5, 27, 22, 12, 11), dt.date(2018, 5, 28), "from@domain.com", attendees);
app.summary = "Release Meetting";
app.description = "Discuss for the next release"
app.method_type = AppointmentMethodType.PUBLISH
message = MailMessage("sender@domain.com", "recipient@domain.com", "", "")
message.add_alternate_view(app.request_apointment())
msg = MapiMessage.from_mail_message(message)
# Save the appointment as draft.
msg.save("DraftAppointmentRequest_out.msg")

Создание Черновика Встречи из Текста

Следующий код показывает, как создать черновик встречи из текста. 

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
ical = """BEGIN:VCALENDAR
METHOD:PUBLISH
PRODID:-//Aspose Ltd//iCalender Builder (v3.0)//EN
VERSION:2.0
BEGIN:VEVENT
ATTENDEE;CN=test@gmail.com:mailto:test@gmail.com
DTSTART:20130220T171439
DTEND:20130220T174439
DTSTAMP:20130220T161439Z
END:VEVENT
END:VCALENDAR"""
sender = "test@gmail.com"
recipient = "test@email.com"
message = MailMessage(sender, recipient, "", "")
av = AlternateView.create_alternate_view_from_string(ical, ContentType("text/calendar"))
message.alternate_views.append(av)
msg = MapiMessage.from_mail_message(message)
msg.save(dataDir + "draft_out.msg")

Установить Статус Участников Встречи

Aspose.Email для .NET API позволяет установить статус участников встречи во время составления ответного сообщения. Это добавляет свойство PARTSTAT в файл ICS.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
location = "Room 5"
startDate = dt.datetime(2011, 12, 10, 10, 12, 11)
endDate = dt.date(2012, 11, 13)
organizer = ae.MailAddress("aaa@amail.com", "Organizer")
attendees = ae.MailAddressCollection()
attendee1 = ae.MailAddress("bbb@bmail.com", "First attendee")
attendee2 = ae.MailAddress("ccc@cmail.com", "Second attendee")
attendee1.participation_status = ae.ParticipationStatus.ACCEPTED
attendee2.participation_status = ae.ParticipationStatus.DECLINED
attendees.append(attendee1)
attendees.append(attendee2)
target2 = Appointment(location, startDate, endDate, organizer, attendees)