Trabalhando com Compromissos

Carregar e Salvar Compromisso no Formato ICS

A classe Appointment na API Aspose.Email pode ser utilizada para carregar um compromisso no formato ICS, bem como para criar um novo compromisso e salvá-lo no disco no formato ICS. Neste artigo, primeiro criamos um compromisso e o salvamos no disco em formato ICS, e depois o carregamos.

Criar Compromisso e Salvar no Disco no Formato ICS

Os seguintes passos são necessários para criar um compromisso e salvá-lo em formato ICS.

  1. Crie uma instância da classe Appointment e inicialize-a com este construtor.
  2. Passe os seguintes argumentos no construtor acima:
    1. Participantes
    2. Descrição
    3. Data de Término
    4. Localização
    5. Organizador
    6. Data de Início
    7. Resumo
  3. Chame o método Save() e especifique o nome do arquivo e o formato nos argumentos.

O compromisso pode ser aberto no Microsoft Outlook ou em qualquer programa que possa carregar um arquivo ICS. Se o arquivo for aberto no Microsoft Outlook, ele adiciona automaticamente o compromisso ao calendário do Outlook.

Os seguintes trechos de código mostram como criar e salvar um compromisso no disco em formato 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)

Carregar Compromisso no Formato ICS

Para carregar um compromisso no formato ICS, os seguintes passos são necessários:

  1. Crie uma instância da classe Appointment.
  2. Chame o método Load() fornecendo o caminho do arquivo ICS.
  3. Leia qualquer propriedade para obter qualquer informação do compromisso (arquivo ICS).

Os seguintes trechos de código mostram como carregar um compromisso no formato 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)

Ler Vários Eventos de um Arquivo 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)))

Escrever Vários Eventos em um Arquivo 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)

Criar um Pedido de Compromisso em Rascunho

Foi mostrado em nossos artigos anteriores como criar e salvar um compromisso no formato ICS. Muitas vezes é necessário criar um pedido de Compromisso em modo Rascunho, para que as informações básicas sejam adicionadas e depois o mesmo Compromisso em rascunho seja encaminhado para outros usuários para alterações necessárias de acordo com os usuários individuais. Para salvar um Compromisso em modo Rascunho, a propriedade Method da classe Appointment deve ser definida como Publish. O seguinte trecho de código mostra como criar um pedido de compromisso em rascunho.

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")

Criação de Compromisso em Rascunho a Partir de Texto

O seguinte trecho de código mostra como criar um compromisso em rascunho a partir de um texto. 

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")

Definir o Status dos Participantes dos Atendentes do Compromisso

A API Aspose.Email para .NET permite que você defina o status dos atendentes do compromisso enquanto formula uma mensagem de resposta. Isso adiciona a propriedade PARTSTAT ao arquivo 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)