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.

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

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

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

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