अपॉइंटमेंट्स प्रबंधित करें: बनाएं एवं संशोधित करें, ICS को MSG में परिवर्तित करें

एक अपॉइंटमेंट बनाएं और MSG या ICS फॉर्मेट में डिस्क पर सहेजें

यह Appointment Aspose.Email for .NET में यह क्लास नई अपॉइंटमेंट बनाने के लिए उपयोग की जा सकती है। इस लेख में, हम पहले एक अपॉइंटमेंट बनाते हैं और इसे डिस्क पर ICS फ़ॉर्मेट में सहेजते हैं। अपॉइंटमेंट बनाने और डिस्क पर सहेजने के लिए निम्नलिखित चरण आवश्यक हैं।

  1. का एक इंस्टेंस बनाएं Appointment क्लास और इस कन्स्ट्रक्टर के साथ इसे इनिशियलाइज़ करें।
  2. ऊपर दिए गए कन्स्ट्रक्टर में निम्नलिखित तर्क पास करें
    1. स्थान
    2. सारांश
    3. विवरण
    4. प्रारंभ तिथि
    5. समापन तिथि
    6. आयोजक
    7. प्रतिभागी
  3. कॉल करें Save() मेथड और तर्कों में फ़ाइल नाम व फ़ॉर्मेट निर्दिष्ट करें।

नियुक्ति को Microsoft Outlook या किसी भी प्रोग्राम में खोला जा सकता है जो ICS फ़ाइल लोड कर सके। यदि फ़ाइल Microsoft Outlook में खोली जाती है तो यह स्वतः Outlook कैलेंडर में नियुक्ति जोड़ देता है।

नीचे दिया गया कोड स्निपेट दर्शाता है कि आप कैसे एक अपॉइंटमेंट बनाकर इसे डिस्क पर ICS या MSG फ़ॉर्मेट में सहेज सकते हैं।

// 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 कंटेंट के साथ एक नियुक्ति बनाएं

आप X-ALT-DESC हेडर का उपयोग करके विभिन्न कंटेंट टाइप में इवेंट के विवरण के वैकल्पिक प्रतिनिधित्व निर्दिष्ट कर सकते हैं। इससे iCalendar फ़ाइल के प्राप्तकर्ता अपनी आवश्यकताओं के अनुसार सबसे उपयुक्त प्रतिनिधित्व चुन सकते हैं। उदाहरण के लिए, आप "text/plain" कंटेंट टाइप के साथ साधारण टेक्स्ट विवरण और "text/html" कंटेंट टाइप के साथ HTML विवरण शामिल कर सकते हैं। प्रत्येक वैकल्पिक प्रतिनिधित्व के लिए X-ALT-DESC हेडर जोड़ा जाता है। HTML सामग्री के साथ अपॉइंटमेंट बनाने के लिए, सेट करें HtmlDescription प्रॉपर्टी।

वैकल्पिक HTML विवरण के साथ अपॉइंटमेंट बनाने के लिए नीचे दिया गया कोड नमूना आज़माएँ:

  1. Appointment क्लास का एक नया इंस्टेंस बनाएं।
  2. Appointment कंस्ट्रक्टर को आवश्यक पैरामीटर प्रदान करें:
    • अपॉइंटमेंट स्थान निर्दिष्ट करें।
    • प्रारंभ तिथि और समय सेट करें।
    • समाप्ति तिथि और समय सेट करें।
    • आयोजनकर्ता निर्दिष्ट करें।
    • प्रतिभागी निर्दिष्ट करें।
  3. सेट करें HtmlDescription अपॉइंटमेंट ऑब्जेक्ट की प्रॉपर्टी, जो दर्शाती है कि विवरण HTML फ़ॉर्मेट में है।
  4. अपॉइंटमेंट ऑब्जेक्ट की Description प्रॉपर्टी को एक HTML-फ़ॉर्मेटेड स्ट्रिंग सेट करें, जो मल्टीलाइन स्ट्रिंग के भीतर समाहित हो:
    • HTML मार्कअप में एक <style> ब्लॉक है जो "text" नाम की CSS क्लास को फ़ॉन्ट शैलियों के साथ परिभाषित करता है।
    • HTML बॉडी में एक पैराग्राफ टैग <p> है जिसमें CSS क्लास "text" है, और वास्तविक आमंत्रण संदेश है।
  5. अपॉइंटमेंट ऑब्जेक्ट अब तैयार है, और आप आगे के ऑपरेशन कर सकते हैं या इसे iCalendar फ़ाइल के रूप में सहेज सकते हैं।
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>"
};

ड्राफ्ट नियुक्ति अनुरोध बनाएं

हमारे पिछले लेखों में बताया गया था कि कैसे एक अपॉइंटमेंट को ICS फ़ॉर्मेट में बनाकर सहेजा जाता है। अक्सर यह आवश्यक होता है कि अपॉइंटमेंट को ड्राफ़्ट मोड में बनाया जाए, जिससे मूल जानकारी जोड़ने के बाद वही ड्राफ़्ट अपॉइंटमेंट अन्य उपयोगकर्ताओं को आवश्यक बदलावों के लिए अग्रेषित किया जा सके। अपॉइंटमेंट को ड्राफ़्ट मोड में सहेजने के लिए, MethodType Appointment क्लास की प्रॉपर्टी को इस मान पर सेट किया जाना चाहिए AppointmentMethodType.Publish. नीचे दिया गया कोड स्निपेट दर्शाता है कि आप ड्राफ़्ट अपॉइंटमेंट अनुरोध कैसे बनाते हैं।

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

पाठ से ड्राफ्ट नियुक्ति बनाना

निम्नलिखित कोड स्निपेट दिखाता है कि कैसे टेक्स्ट से एक ड्राफ्ट अपॉइंटमेंट बनाया जाए। 

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

अपॉइंटमेंट को अनुकूलित करें

नियुक्ति प्रतिभागियों की स्थिति सेट करें

Aspose.Email for .NET API आपको उत्तर संदेश तैयार करते समय अपॉइंटमेंट उपस्थितियों की स्थिति सेट करने देता है। यह PARTSTAT प्रॉपर्टी को ICS फ़ाइल में जोड़ता है।

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 के लिए प्रोडक्ट आइडेंटिफ़ायर को कस्टमाइज़ करें

Aspose.Email for .NET API आपको iCalendar ऑब्जेक्ट बनाने वाले उत्पाद पहचानकर्ता को प्राप्त या सेट करने की अनुमति देता है।

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

अपॉइंटमेंट लोड करना

इसके अलावा, Appointment क्लास का उपयोग करके आप एक अपॉइंटमेंट को ICS फ़ाइल से लोड कर सकते हैं।

ICS फ़ॉर्मेट में एक नियुक्ति लोड करें

ICS फ़ॉर्मेट में एक नियुक्ति लोड करने के लिए निम्नलिखित चरण आवश्यक हैं:

  1. का एक इंस्टेंस बनाएं Appointment क्लास।
  2. कॉल करें Load() ICS फ़ाइल का पथ प्रदान करके मेथड।
  3. नियुक्ति (ICS फ़ाइल) से कोई भी जानकारी प्राप्त करने के लिए किसी भी प्रॉपर्टी को पढ़ें।

निम्न कोड स्निपेट दर्शाता है कि आप कैसे एक अपॉइंटमेंट को ICS फ़ॉर्मेट में लोड कर सकते हैं।

// 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 को MSG में बदलें

API आपको आसानी से एक अपॉइंटमेंट को संदेश ऑब्जेक्ट में बदलने की सुविधा देता है। नीचे दिया गया कोड उदाहरण दिखाता है कि अपॉइंटमेंट अनुरोध को MailMessage या MapiMessage में कैसे परिवर्तित करें:

var appointment = Appointment.Load("appRequest.ics");

var eml = appointment.ToMailMessage();
var msg = appointment.ToMapiMessage();

ICS फ़ाइल से कई इवेंट पढ़ें

List<Appointment> appointments = new List<Appointment>();
CalendarReader reader = new CalendarReader(dataDir + "US-Holidays.ics");

while (reader.NextEvent())
{
    appointments.Add(reader.Current);
}
//working with appointments...

एकाधिक इवेंट्स को एक ICS फ़ाइल में लिखें

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);
    }
}

अपॉइंटमेंट संस्करण निर्धारण

अपॉइंटमेंट का संस्करण निर्धारित करने के लिए, आप उपयोग कर सकते हैं Appointment.Version की प्रॉपर्टी Appointment कक्षा। यह प्रॉपर्टी निर्धारित करने में सहायता करती है कि उनकी फ़ाइलें किस संस्करण पर आधारित हैं, जिससे अन्य सिस्टम और ऐप्स के साथ एकीकरण सुनिश्चित हो सके।

निम्न कोड नमूना दर्शाता है कि इस प्रॉपर्टी को अपने प्रोजेक्ट में कैसे लागू करें:

var app = Appointment.Load("meeting.ics");

if (app.Version == 1.0)
{
    // do something
}