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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
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
1 |
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.
İlk Yorumu Siz Yapın