示例#1
0
        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));
        }
示例#2
0
        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 !);
        }