Exemple #1
0
        protected override VoidResult OnExecute()
        {
            CalendarGroupEntryDataProvider calendarGroupEntryDataProvider = this.Scope.CalendarGroupEntryDataProvider;

            using (ICalendarGroupEntry calendarGroupEntry = calendarGroupEntryDataProvider.Bind(this.Scope.IdConverter.ToStoreObjectId(base.EntityKey)))
            {
                bool isLocalMailboxCalendar = calendarGroupEntry.IsLocalMailboxCalendar;
                if (isLocalMailboxCalendar)
                {
                    this.Scope.CalendarFolderDataProvider.Delete(calendarGroupEntry.CalendarId, DeleteItemFlags.MoveToDeletedItems);
                }
                try
                {
                    calendarGroupEntryDataProvider.Delete(calendarGroupEntry.Id, DeleteItemFlags.HardDelete);
                }
                catch (StoragePermanentException arg)
                {
                    if (!isLocalMailboxCalendar)
                    {
                        throw;
                    }
                    this.Trace.TraceError <DeleteCalendar, StoragePermanentException>(0L, "{0}. Local calendar folder was moved to deleted items but calendar group entry failed to be deleted. {1}", this, arg);
                }
            }
            return(VoidResult.Value);
        }