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