public EditCalendarEvent GetCalendarEventById(int id)
        {
            CalendarEvent originalCalendarEvent = _repo.Query <CalendarEvent>().Where(c => c.Id == id).Include(c => c.EventOwner).Include(a => a.EventAlarms).FirstOrDefault();

            EditCalendarEvent         editablecalendarEvent = ConvertCalendarEventToEditable(originalCalendarEvent);
            IList <EventAlarmForList> listableAlarms        = new List <EventAlarmForList>();

            foreach (EventAlarm alarm in originalCalendarEvent.EventAlarms)
            {
                EventAlarmForList listable = new EventAlarmForList
                {
                    Id                = alarm.Id,
                    AlarmTime         = alarm.AlarmTime,
                    AlarmMethod       = alarm.AlarmMethod,
                    isActive          = alarm.isActive,
                    CalendarEventId   = originalCalendarEvent.Id,
                    CalenderEventName = originalCalendarEvent.Name,
                    OwnerUserName     = alarm.Owner.UserName
                };
                listableAlarms.Add(listable);
            }
            editablecalendarEvent.EventAlarms = listableAlarms;

            return(editablecalendarEvent);
        }
        /// <summary>
        /// Converts the CalendarEvent object to an EditableCalendar object.
        /// This let's us control what is sent back and handle any possible infinite loops.
        /// </summary>
        /// <param name="calendarEventToConvert">The calendar event to convert.</param>
        /// <returns></returns>
        private EditCalendarEvent ConvertCalendarEventToEditable(CalendarEvent calendarEventToConvert)
        {
            EditCalendarEvent editablecalendarEvent = new EditCalendarEvent
            {
                Id          = calendarEventToConvert.Id,
                Name        = calendarEventToConvert.Name,
                CreatedDate = calendarEventToConvert.CreatedDate,
                Location    = calendarEventToConvert.Location,
                EventType   = calendarEventToConvert.EventType,
                isActive    = calendarEventToConvert.isActive,
                OwnerName   = calendarEventToConvert.EventOwner.UserName,
                EventDate   = calendarEventToConvert.EventDateTime.Date.ToString("yyyy-MM-dd"),
                EventTime   = calendarEventToConvert.EventDateTime.TimeOfDay.ToString()
            };

            return(editablecalendarEvent);
        }
        public IActionResult Get(int id)
        {
            EditCalendarEvent calendarEvent = _service.GetCalendarEventById(id);

            return(Ok(calendarEvent));
        }