public void deleteSubCalendarEvent(string EventID) { CalendarEvent referenceCalendarEventWithSubEvent = getCalendarEvent(EventID); SubCalendarEvent ReferenceSubEvent = getSubCalendarEvent(EventID); EventID SubEventID = new EventID(EventID); bool InitialRigid = ReferenceSubEvent.Rigid; if (referenceCalendarEventWithSubEvent.RepetitionStatus) { referenceCalendarEventWithSubEvent = referenceCalendarEventWithSubEvent.getRepeatedCalendarEvent(SubEventID.getStringIDAtLevel(1)); } Dictionary<string, CalendarEvent> AllEventDictionary_Cpy = new Dictionary<string, CalendarEvent>(); AllEventDictionary_Cpy = AllEventDictionary.ToDictionary(obj => obj.Key, obj => obj.Value.createCopy()); List<SubCalendarEvent> AllValidSubCalEvents = new List<SubCalendarEvent>() { ReferenceSubEvent };// ProcrastinateEvent.AllActiveSubEvents.Where(obj => obj.End > ReferenceSubEvent.Start).ToList(); DateTime StartTime = Now; DateTime EndTime = StartTime.Add(ReferenceSubEvent.ActiveDuration); ; referenceCalendarEventWithSubEvent.DisableSubEvents(AllValidSubCalEvents); TimeSpan TotalActiveDuration = Utility.SumOfActiveDuration(AllValidSubCalEvents); //CalendarEvent(string NameEntry, string StartTime, DateTime StartDateEntry, string EndTime, DateTime EventEndDateEntry, string eventSplit, string PreDeadlineTime, string EventDuration, Repetition EventRepetitionEntry, bool DefaultPrepTimeflag, bool RigidScheduleFlag, string eventPrepTime, bool PreDeadlineFlag,Location EventLocation) CalendarEvent ScheduleUpdated = new CalendarEvent(referenceCalendarEventWithSubEvent.Name, referenceCalendarEventWithSubEvent.Start.ToString("hh:mm tt"), referenceCalendarEventWithSubEvent.Start, referenceCalendarEventWithSubEvent.End.ToString("hh:mm tt"), referenceCalendarEventWithSubEvent.End, 1.ToString(), referenceCalendarEventWithSubEvent.PreDeadline.ToString(), ReferenceSubEvent.ActiveDuration.ToString(), new Repetition(), true, ReferenceSubEvent.Rigid, referenceCalendarEventWithSubEvent.Preparation.ToString(), true, ReferenceSubEvent.myLocation, false,new EventDisplay(),new MiscData(),false); ScheduleUpdated.DisableSubEvents(ScheduleUpdated.AllSubEvents); HashSet<SubCalendarEvent> NotDOneYet = getNoneDoneYetBetweenNowAndReerenceStartTIme(); ScheduleUpdated = EvaluateTotalTimeLineAndAssignValidTimeSpots(ScheduleUpdated, NotDOneYet); AllEventDictionary.Remove(ScheduleUpdated.ID);//removes the false calendar event UpdateWithProcrastinateSchedule(AllEventDictionary); }
public void markAsCompleteCalendarEventAndReadjust(string EventID) { CalendarEvent CalendarEventTOBeRemoved = getCalendarEvent(EventID); CalendarEventTOBeRemoved.SetCompletionStatus(true); CalendarEventTOBeRemoved = new CalendarEvent(CalendarEventTOBeRemoved.Name, CalendarEventTOBeRemoved.ActiveDuration, CalendarEventTOBeRemoved.Start, CalendarEventTOBeRemoved.End, CalendarEventTOBeRemoved.Preparation, CalendarEventTOBeRemoved.PreDeadline, CalendarEventTOBeRemoved.Rigid, new Repetition(), 1, CalendarEventTOBeRemoved.myLocation, false, new EventDisplay(), new MiscData(), false); CalendarEventTOBeRemoved.DisableSubEvents(CalendarEventTOBeRemoved.ActiveSubEvents); HashSet<SubCalendarEvent> NotDOneYet = getNoneDoneYetBetweenNowAndReerenceStartTIme(); EvaluateTotalTimeLineAndAssignValidTimeSpots(CalendarEventTOBeRemoved, NotDOneYet); AllEventDictionary.Remove(CalendarEventTOBeRemoved.ID);//removes the false calendar event UpdateWithProcrastinateSchedule(AllEventDictionary); }