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;
- C# ile Microsoft Exchange Web Service Kullanarak Takvime Erişip Takvim Verilerini Almak
- C# ile Microsoft Exchange Web Service Kullanarak Takvime Erişip Takvime Etkinlik Ekleme
- C# ile Microsoft Exchange Web Service Kullanarak Takvime Erişip Takvim Etkinliğini Güncelleme
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.
İlk Yorumu Siz Yapın