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.

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

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

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

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