C# ile Microsoft Exchange Web Service Kullanarak Takvime Erişip Takvim Etkinliğini Silmek

Merhaba arkadaşlar bugün sizlere C# kodu ile Microsoft Exchange servise bağlanarak var olan bir etkinliği nasıl silebilieceğimizden bahsedeceğim.

Daha önceki yazılarımda;

işlemlerinden bahsetmiştim.

NOT!!!: Bu kısımda dikkat etmemiz gereken en önemli kısım etkinliğin “Id” si yerine “ICalUid” sini kullanmamız gerekmektedir. Çünkü burada “Id” exchange web servise bağlanılan kullanıcıya göre değişik gelmektedir ama “ICalUid” değişmemektedir.

[php]
ExchangeService service = ConnectToService(EwsUserName, EwsUserPass, EwsDomainName, ExchangeVersion.Exchange2013, EwsServiceUrl, null);
ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, sslPolicyErrors) => true;
FolderId rfRootFolderid = new FolderId(WellKnownFolderName.Calendar, SPContext.Current.Site.RootWeb.CurrentUser.Email.ToString());
CalendarFolder calendar = CalendarFolder.Bind(service, rfRootFolderid, new PropertySet());
CalendarView cView = new CalendarView(DateTime.Now.Date.AddMonths(-1), DateTime.Now.Date.AddMonths(2));
FindItemsResults<Appointment> findResults = service.FindAppointments(rfRootFolderid, cView);
service.LoadPropertiesForItems(findResults, new PropertySet(
AppointmentSchema.Id,
AppointmentSchema.ICalUid,
AppointmentSchema.Subject,
AppointmentSchema.Start,
AppointmentSchema.End,
AppointmentSchema.Duration,
AppointmentSchema.IsAllDayEvent,
AppointmentSchema.DisplayTo,
AppointmentSchema.DisplayCc,
AppointmentSchema.Organizer,
AppointmentSchema.Categories,
AppointmentSchema.Location,
AppointmentSchema.RequiredAttendees,
AppointmentSchema.Sensitivity));</pre>
foreach (Appointment appointment in findResults)
{
if (appointment.ICalUid == appointmentId)
{
appointment.CancelMeeting();
}
}

[/php]

Yukarı daki kodda yazılan parametreleri açıklayacak olursak:

EwsUserName : Exchange Web Servise bağlanılacak olan kullanıcının adı

EwsUserPass : Exchange Web Servise bağlanılacak olan kullanıcının şifresi

EwsDomainName : Exchange Web Servise bağlanılacak olan kullanıcının domain ismi

ExchangeVersion.Exchange2013 : Exchange versiyonuna göre seçilecektir

EventDeleteUserEmailAddress : etkinliği oluşturmuş olan kişinin mail adresi

appointmentId : Silinecek etkinliğin “ICalUid” id si

Kodun

[php]

CalendarView cView = new CalendarView(DateTime.Now.Date.AddMonths(-1), DateTime.Now.Date.AddMonths(2));

[/php]

kısmında hangi tarih aralığındaki etkinlikleri çekmek istediğinizi belirtiyorsunuz.

Gerekli alanları doğru şekilde tanımlarsanız ve dediğim gibi Id ye dikkat ederseniz sorunsuz silme işlemini gerçekleşecektir.

Bir Cevap Yazın