public JsonResult DeleteCalendarItem([FromBody] CalendarItemJson item) { if (ModelState.IsValid) { var calandarItem = _calendarService.GetCalendarItemById(item.CalendarItemId); if (calandarItem == null || calandarItem.DepartmentId != DepartmentId) { Unauthorized(); } _calendarService.DeleteCalendarItemById(item.CalendarItemId); } return(null); }
public async Task <JsonResult> DeleteCalendarItem([FromBody] CalendarItemJson item, CancellationToken cancellationToken) { if (ModelState.IsValid) { var calandarItem = await _calendarService.GetCalendarItemByIdAsync(item.CalendarItemId); if (calandarItem == null || calandarItem.DepartmentId != DepartmentId) { Unauthorized(); } await _calendarService.DeleteCalendarItemByIdAsync(item.CalendarItemId, cancellationToken); } return(null); }
public IActionResult GetDepartmentCalendarItems() { List <CalendarItemJson> jsonItems = new List <CalendarItemJson>(); var items = _calendarService.GetAllCalendarItemsForDepartment(DepartmentId); var department = _departmentsService.GetDepartmentById(DepartmentId, false); foreach (var item in items) { CalendarItemJson calendarItem = new CalendarItemJson(); calendarItem.CalendarItemId = item.CalendarItemId; calendarItem.Title = item.Title; //calendarItem.Start = item.Start; //calendarItem.End = item.End; calendarItem.Start = item.Start.TimeConverter(department).ToString("O"); calendarItem.End = item.End.TimeConverter(department).ToString("O"); calendarItem.StartTimezone = item.StartTimezone; calendarItem.EndTimezone = item.EndTimezone; calendarItem.Description = item.Description; calendarItem.RecurrenceId = item.RecurrenceId; calendarItem.RecurrenceRule = item.RecurrenceRule; calendarItem.RecurrenceException = item.RecurrenceException; calendarItem.IsAllDay = item.IsAllDay; calendarItem.ItemType = item.ItemType; calendarItem.Location = item.Location; calendarItem.SignupType = item.SignupType; calendarItem.Reminder = item.Reminder; calendarItem.LockEditing = item.LockEditing; calendarItem.Entities = item.Entities; calendarItem.RequiredAttendes = item.RequiredAttendes; calendarItem.OptionalAttendes = item.OptionalAttendes; calendarItem.Public = item.Public; if (!String.IsNullOrWhiteSpace(item.RecurrenceId)) { var parent = _calendarService.GetCalendarItemById(int.Parse(item.RecurrenceId)); if (parent == null) { calendarItem.RecurrenceId = null; calendarItem.RecurrenceRule = null; calendarItem.RecurrenceException = null; } } if (!String.IsNullOrWhiteSpace(item.CreatorUserId)) { calendarItem.CreatorUserId = item.CreatorUserId.ToString(); } if (department.IsUserAnAdmin(UserId)) { calendarItem.IsAdminOrCreator = true; } else if (!String.IsNullOrWhiteSpace(item.CreatorUserId) && item.CreatorUserId == UserId) { calendarItem.IsAdminOrCreator = true; } else { calendarItem.IsAdminOrCreator = false; } jsonItems.Add(calendarItem); } return(Json(jsonItems)); }
public JsonResult UpdateCalendarItem(CalendarItemJson item) { if (ModelState.IsValid) { var department = _departmentsService.GetDepartmentById(DepartmentId, false); var calendarItem = _calendarService.GetCalendarItemById(item.CalendarItemId); if (calendarItem != null) { calendarItem.DepartmentId = DepartmentId; calendarItem.CalendarItemId = item.CalendarItemId; calendarItem.Title = item.Title; //if (item.Start.Kind == DateTimeKind.Utc) // calendarItem.Start = item.Start.TimeConverter(department); //else // calendarItem.Start = item.Start; //if (item.End.Kind == DateTimeKind.Utc) // calendarItem.End = item.End.TimeConverter(department); //else // calendarItem.End = item.End; calendarItem.Start = DateTime.Parse(item.Start).ToUniversalTime(); calendarItem.End = DateTime.Parse(item.End).ToUniversalTime(); calendarItem.StartTimezone = item.StartTimezone; calendarItem.EndTimezone = item.EndTimezone; calendarItem.Description = item.Description; calendarItem.RecurrenceId = item.RecurrenceId; calendarItem.RecurrenceRule = item.RecurrenceRule; calendarItem.RecurrenceException = item.RecurrenceException; calendarItem.IsAllDay = item.IsAllDay; calendarItem.Location = item.Location; calendarItem.SignupType = item.SignupType; calendarItem.Reminder = item.Reminder; calendarItem.LockEditing = item.LockEditing; calendarItem.Entities = item.Entities; calendarItem.RequiredAttendes = item.RequiredAttendes; calendarItem.OptionalAttendes = item.OptionalAttendes; calendarItem.CreatorUserId = UserId; calendarItem.Public = item.Public; calendarItem.StartTimezone = DateTimeHelpers.WindowsToIana(department.TimeZone); calendarItem.EndTimezone = DateTimeHelpers.WindowsToIana(department.TimeZone); if (item.ItemType.HasValue) { calendarItem.ItemType = item.ItemType.Value; } calendarItem = _calendarService.SaveCalendarItem(calendarItem); _eventAggregator.SendMessage <CalendarEventUpdatedEvent>(new CalendarEventUpdatedEvent() { DepartmentId = DepartmentId, Item = calendarItem }); return(Json(item)); } } return(null); }
public JsonResult CreateCalendarItem([FromBody] CalendarItemJson item) { if (ModelState.IsValid) { var department = _departmentsService.GetDepartmentById(DepartmentId, false); var timeZone = "Etc/UTC"; if (!String.IsNullOrWhiteSpace(department.TimeZone)) { timeZone = DateTimeHelpers.WindowsToIana(department.TimeZone); } CalendarItem calendarItem = new CalendarItem(); calendarItem.DepartmentId = DepartmentId; calendarItem.CalendarItemId = item.CalendarItemId; calendarItem.Title = item.Title; //if (item.Start.Kind == DateTimeKind.Utc) // calendarItem.Start = item.Start.TimeConverter(department); //else // calendarItem.Start = item.Start; //if (item.End.Kind == DateTimeKind.Utc) // calendarItem.End = item.End.TimeConverter(department); //else // calendarItem.End = item.End; if (!String.IsNullOrWhiteSpace(item.Start)) { calendarItem.Start = DateTime.Parse(item.Start).ToUniversalTime(); } else { calendarItem.Start = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0).ToUniversalTime(); } if (!String.IsNullOrWhiteSpace(item.End)) { calendarItem.End = DateTime.Parse(item.End).ToUniversalTime(); } else { calendarItem.Start = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59).ToUniversalTime(); } if (!String.IsNullOrWhiteSpace(item.StartTimezone)) { calendarItem.StartTimezone = item.StartTimezone; } else { calendarItem.StartTimezone = timeZone; } if (!String.IsNullOrWhiteSpace(item.EndTimezone)) { calendarItem.EndTimezone = item.EndTimezone; } else { calendarItem.EndTimezone = timeZone; } calendarItem.Description = item.Description; calendarItem.RecurrenceId = item.RecurrenceId; calendarItem.RecurrenceRule = item.RecurrenceRule; calendarItem.RecurrenceException = item.RecurrenceException; calendarItem.IsAllDay = item.IsAllDay; calendarItem.Location = item.Location; calendarItem.SignupType = item.SignupType; calendarItem.Reminder = item.Reminder; calendarItem.LockEditing = item.LockEditing; calendarItem.Entities = item.Entities; calendarItem.RequiredAttendes = item.RequiredAttendes; calendarItem.OptionalAttendes = item.OptionalAttendes; calendarItem.Public = item.Public; calendarItem.CreatorUserId = UserId; calendarItem.StartTimezone = DateTimeHelpers.WindowsToIana(department.TimeZone); calendarItem.EndTimezone = DateTimeHelpers.WindowsToIana(department.TimeZone); if (item.ItemType.HasValue) { calendarItem.ItemType = item.ItemType.Value; } calendarItem = _calendarService.SaveCalendarItem(calendarItem); _eventAggregator.SendMessage <CalendarEventAddedEvent>(new CalendarEventAddedEvent() { DepartmentId = DepartmentId, Item = calendarItem }); return(Json(item)); } return(null); }