public async Task <IActionResult> Create(Event createdEvent) { if (createdEvent.EndDateTime < createdEvent.StartDateTime) { ModelState.AddModelError(string.Empty, Resources.Domain.EventView.Events.EventTimeDifferenceError); } if (createdEvent.ShowEndDateTime <= createdEvent.ShowStartDateTime) { ModelState.AddModelError(string.Empty, Resources.Domain.EventView.Events.EventShowTimeDifferenceError); } if (ModelState.IsValid) { if (ModelState.ErrorCount > 0) { return(View(createdEvent)); } createdEvent.CreatedAt = DateTime.Now; createdEvent.CreatedBy = _userManager.GetUserId(User); var eventGuid = await _bll.Events.AddAsync(createdEvent); await _bll.SaveChangesAsync(); if (DateTime.Now >= createdEvent.ShowStartDateTime && DateTime.Now < createdEvent.ShowEndDateTime) { var eventId = _bll.Events.GetUpdatesAfterUowSaveChanges(eventGuid).Id; var screen = await _bll.Screens.GetFirstAndActiveScreenAsync(); if (screen != null) { var scheduleInScreen = await _bll.ScheduleInScreens.FindForScreenForDateWithoutIncludesAsync(screen.Id, screen.Prefix, DateTime.Today); if (scheduleInScreen != null) { var eventInSchedule = new EventInSchedule { CreatedAt = DateTime.Now, CreatedBy = _userManager.GetUserId(User), EventId = eventId, ScheduleId = scheduleInScreen.ScheduleId }; await _bll.EventInSchedules.AddAsync(eventInSchedule); await _bll.SaveChangesAsync(); } } } return(RedirectToAction("Index", "ScheduleAndEvents")); } return(View(createdEvent)); }
public static DTO.EventInSchedule MapFromDomain(EventInSchedule eventInSchedule) { var res = eventInSchedule == null ? null : new DTO.EventInSchedule { Id = eventInSchedule.Id, CreatedAt = eventInSchedule.CreatedAt, ChangedAt = eventInSchedule.ChangedAt, CreatedBy = eventInSchedule.CreatedBy, ChangedBy = eventInSchedule.ChangedBy, ScheduleId = eventInSchedule.ScheduleId, Schedule = ScheduleMapper.MapFromDomain(eventInSchedule.Schedule), Event = EventMapper.MapFromDomain(eventInSchedule.Event), EventId = eventInSchedule.EventId }; return(res ?? default !); }