Randevuları Yönet: Oluştur ve Manipüle Et, ICS'yi MSG'ye Dönüştür
Randevu Oluştur ve MSG veya ICS Formatında Diske Kaydet
Bu Appointment Aspose.Email for .NET’teki sınıf, yeni bir randevu oluşturmak için kullanılabilir. Bu makalede, önce bir randevu oluşturup diske ICS formatında kaydediyoruz. Randevu oluşturup diske kaydetmek için aşağıdaki adımlar gereklidir.
- Şunun bir örneğini oluştur Appointment sınıf ve bu yapıcıyla başlatın.
- Yukarıdaki yapıcıda aşağıdaki argümanları geçin
- Konum
- Özet
- Açıklama
- Başlangıç Tarihi
- Bitiş Tarihi
- Organizatör
- Katılımcılar
- Şuğu çağırın Save() metodu ve argümanlarda dosya adını ve formatını belirtin.
Randevu, Microsoft Outlook ya da bir ICS dosyasını yükleyebilen herhangi bir programda açılabilir. Dosya Microsoft Outlook’ta açılırsa, randevu otomatik olarak Outlook takvimine eklenir.
Aşağıdaki kod parçacığı, bir randevu oluşturup diske ICS veya MSG formatında nasıl kaydedeceğinizi gösterir.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Create and initialize an instance of the Appointment class
Appointment appointment = new Appointment(
"Meeting Room 3 at Office Headquarters",// Location
"Monthly Meeting", // Summary
"Please confirm your availability.", // Description
new DateTime(2015, 2, 8, 13, 0, 0), // Start date
new DateTime(2015, 2, 8, 14, 0, 0), // End date
"from@domain.com", // Organizer
"attendees@domain.com"); // Attendees
// Save the appointment to disk in ICS format
appointment.Save(fileName + ".ics", new AppointmentIcsSaveOptions());
Console.WriteLine("Appointment created and saved to disk successfully.");
// Save the appointment to disk in MSG format
appointment.Save(fileName + ".msg", new AppointmentMsgSaveOptions(););
Console.WriteLine("Appointment created and saved to disk successfully.");
HTML İçeriğiyle Bir Randevu Oluştur
X-ALT-DESC başlığını kullanarak etkinlik açıklamasının farklı içerik türlerinde alternatif temsillerini belirtebilirsiniz. Bu, iCalendar dosyasının alıcılarının ihtiyaçlarına en uygun temsili seçmesini sağlar. Örneğin, "text/plain" içerik türüyle düz metin açıklaması ve "text/html" içerik türüyle HTML açıklaması ekleyebilirsiniz. Her alternatif temsil için X-ALT-DESC başlığı eklenir. HTML içeriğiyle bir randevu oluşturmak için, şunu ayarlayın: HtmlDescription özellik.
Alternatif HTML açıklamasıyla bir randevu oluşturmak için aşağıdaki kod örneğini deneyin:
- Appointment sınıfının yeni bir örneğini oluşturun.
- Appointment yapıcısına gerekli parametreleri sağlayın:
- Randevunun konumunu belirtin.
- Başlangıç tarih ve saatini ayarlayın.
- Bitiş tarih ve saatini ayarlayın.
- Organizatörü belirtin.
- Katılımcıyı belirtin.
- Şunu ayarlayın: HtmlDescription randevu nesnesinin özelliği, açıklamanın HTML formatında olduğunu gösterir.
- Randevu nesnesinin Description (Açıklama) özelliğini çok satırlı bir dize içinde HTML biçimli bir string olarak ayarlayın:
- HTML işaretlemesi, "text" adında bir CSS sınıfı tanımlayan bir <style> bloğu içerir ve yazı tipi stillerini belirler.
- HTML gövdesi, CSS sınıfı "text" ile bir paragraf etiketi <p> ve gerçek davet mesajını içerir.
- Randevu nesnesi artık hazır ve daha fazla işlem yapabilir ya da iCalendar dosyası olarak kaydedebilirsiniz.
var appointment = new Appointment("Bygget 83",
DateTime.UtcNow, // start date
DateTime.UtcNow.AddHours(1), // end date
new MailAddress("TintinStrom@from.com", "Tintin Strom"), // organizer
new MailAddress("AinaMartensson@to.com", "Aina Martensson")) // attendee
{
HtmlDescription = @"
<html>
<style type=""text/css"">
.text {
font-family:'Comic Sans MS';
font-size:16px;
}
</style>
<body>
<p class=""text"">Hi, I'm happy to invite you to our party.</p>
</body>
</html>"
};
Taslak Randevu İsteği Oluştur
Önceki makalelerimizde bir randevuyu ICS formatında nasıl oluşturup kaydedileceği gösterilmiştir. Genellikle temel bilgiler eklenerek bir Randevu talebinin Taslak modunda oluşturulması ve ardından aynı taslak Randevu’nun, bireysel kullanım gereksinimlerine göre gerekli değişiklikler için diğer kullanıcılara gönderilmesi gerekir. Bir Randevu’yu Taslak modunda kaydetmek için, MethodType Appointment sınıfının özelliği şuna ayarlanmalıdır: AppointmentMethodType.Publish. Aşağıdaki kod parçacığı, bir taslak randevu talebi oluşturmanızı gösterir.
string sender = "test@gmail.com";
string recipient = "test@email.com";
MailMessage message = new MailMessage(sender, recipient, string.Empty, string.Empty);
Appointment app = new Appointment(string.Empty, DateTime.Now, DateTime.Now, sender, recipient)
{
MethodType = AppointmentMethodType.Publish
};
message.AddAlternateView(app.RequestApointment());
MapiMessage msg = MapiMessage.FromMailMessage(message);
// Save the appointment as draft.
msg.Save(dstDraft);
Console.WriteLine(Environment.NewLine + "Draft saved at " + dstDraft);
Metinden Taslak Randevu Oluşturma
Aşağıdaki kod parçacığı, bir metinden taslak randevu oluşturmayı gösterir.
string 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";
string sender = "test@gmail.com";
string recipient = "test@email.com";
MailMessage message = new MailMessage(sender, recipient, string.Empty, string.Empty);
AlternateView av = AlternateView.CreateAlternateViewFromString(ical, new ContentType("text/calendar"));
message.AlternateViews.Add(av);
MapiMessage msg = MapiMessage.FromMailMessage(message);
msg.Save(dataDir + "draft_out.msg");
Randevuları Özelleştirme
Randevu Katılımcılarının Durumunu Ayarla
Aspose.Email for .NET API, bir yanıt mesajı oluştururken randevu katılımcılarının durumunu ayarlamanıza olanak tanır. Bu, PARTSTAT özelliğini ICS dosyasına ekler.
DateTime startDate = new DateTime(2011, 12, 10, 10, 12, 11),
endDate = new DateTime(2012, 11, 13, 13, 11, 12);
MailAddress organizer = new MailAddress("aaa@amail.com", "Organizer");
MailAddressCollection attendees = new MailAddressCollection();
MailAddress attendee1 = new MailAddress("bbb@bmail.com", "First attendee");
MailAddress attendee2 = new MailAddress("ccc@cmail.com", "Second attendee");
attendee1.ParticipationStatus = ParticipationStatus.Accepted;
attendee2.ParticipationStatus = ParticipationStatus.Declined;
attendees.Add(attendee1);
attendees.Add(attendee2);
Appointment target = new Appointment(location, startDate, endDate, organizer, attendees);
iCalendar İçin Ürün Tanımlayıcısını Özelleştir
Aspose.Email for .NET API, iCalendar nesnesini oluşturan ürün tanımlayıcısını almanıza veya ayarlamanıza izin verir.
string description = "Test Description";
Appointment app = new Appointment("location", "test appointment", description, DateTime.Today,
DateTime.Today.AddDays(1), "first@test.com", "second@test.com");
IcsSaveOptions saveOptions = IcsSaveOptions.Default;
saveOptions.ProductId = "Test Corporation";
app.Save(dataDir + "ChangeProdIdOfICS.ics", saveOptions);
Randevuları Yükleme
Ayrıca, Appointment sınıf, bir randevuyu ICS dosyasından yüklemek için kullanılabilir.
ICS Formatında Bir Randevu Yükle
ICS formatında bir randevu yüklemek için aşağıdaki adımlar gereklidir:
- Şunun bir örneğini oluştur Appointment sınıf.
- Şuğu çağırın Load() ICS dosyasının yolunu sağlayarak metod.
- Randevu (ICS dosyası) hakkında bilgi almak için herhangi bir özelliği okuyun.
Aşağıdaki kod parçacığı, bir randevuyu ICS formatında nasıl yükleyeceğinizi gösterir.
// Load an Appointment just created and saved to disk and display its details.
Appointment loadedAppointment = Appointment.Load(dstEmail);
Console.WriteLine(Environment.NewLine + "Loaded Appointment details are as follows:");
// Display the appointment information on screen
Console.WriteLine("Summary: " + loadedAppointment.Summary);
Console.WriteLine("Location: " + loadedAppointment.Location);
Console.WriteLine("Description: " + loadedAppointment.Description);
Console.WriteLine("Start date: " + loadedAppointment.StartDate);
Console.WriteLine("End date: " + loadedAppointment.EndDate);
Console.WriteLine("Organizer: " + appointment.Organizer);
Console.WriteLine("Attendees: " + appointment.Attendees);
Console.WriteLine(Environment.NewLine + "Appointment loaded successfully from " + dstEmail);
ICS’yi MSG’ye Dönüştür
API, bir Randevuyu kolayca bir mesaj nesnesine dönüştürmenizi sağlar. Aşağıdaki kod örneği, bir randevu isteğini MailMessage ya da MapiMessage’a nasıl dönüştüreceğinizi gösterir:
var appointment = Appointment.Load("appRequest.ics");
var eml = appointment.ToMailMessage();
var msg = appointment.ToMapiMessage();
ICS Dosyasından Birden Çok Etkinliği Okuma
List<Appointment> appointments = new List<Appointment>();
CalendarReader reader = new CalendarReader(dataDir + "US-Holidays.ics");
while (reader.NextEvent())
{
appointments.Add(reader.Current);
}
//working with appointments...
**Birden Çok Olayı
ICS Dosyasına Yaz**
IcsSaveOptions saveOptions = new IcsSaveOptions();
saveOptions.Action = AppointmentAction.Create;
using (CalendarWriter writer = new CalendarWriter(dataDir + "WriteMultipleEventsToICS_out.ics", saveOptions))
{
for (int i = 0; i < 10; i++)
{
Appointment app = new Appointment(string.Empty, DateTime.Now, DateTime.Now, "sender@domain.com", "receiver@domain.com");
app.Description = "Test body " + i;
app.Summary = "Test summary:" + i;
writer.Write(app);
}
}
Randevu Sürümünü Belirleme
Bir randevu sürümünü belirlemek için, şunu kullanabilirsiniz: Appointment.Version özellik Appointment sınıf. Bu özellik, dosyalarının hangi sürüme dayandığını belirlemeye yardımcı olur ve diğer sistem ve uygulamalarla entegrasyonu sağlar.
Aşağıdaki kod örneği, bu özelliği projenizde nasıl uygulayacağınızı gösterir:
var app = Appointment.Load("meeting.ics");
if (app.Version == 1.0)
{
// do something
}