Beispiel #1
0
        /// <summary>Adds the new event.</summary>
        /// <param name="newEvent">The new event EventManagementViewModel.</param>
        /// <returns>EventManagementViewModel</returns>
        /// <exception cref="BusinessLogicException">
        /// Не вдалось створити нову подію
        /// or
        /// Exception.Message
        /// </exception>
        public EventManagementViewModel AddNewEvent(EventManagementViewModel newEvent)
        {
            try
            {
                var createdEvent = this._unitOfWork.EventRepository.Create(new Event()
                {
                    Id             = 0,
                    Description    = newEvent.Description,
                    OrganizationId = newEvent.OrganizationId,
                    CreateDate     = DateTime.Now,
                });

                if (createdEvent == null)
                {
                    throw new BusinessLogicException("Не вдалось створити нову подію");
                }

                this.InsertImagesInDataBase(newEvent.Images, createdEvent.Id);
                this._unitOfWork.SaveChanges();
                return(this.GetOneEventById(createdEvent.Id));
            }
            catch (Exception ex)
            {
                throw new BusinessLogicException(ex.Message);
            }
        }
        /// <summary>Gets the event by identifier.</summary>
        /// <param name="eventId">The event identifier.</param>
        /// <returns>EventManagementViewModel</returns>
        /// <exception cref="BusinessLogicException">
        /// Подія з ідентифікатором eventId не знайдена
        /// or
        /// Exception.Message
        /// </exception>
        public EventManagementViewModel GetOneEventById(int eventId)
        {
            try
            {
                var ev = this._unitOfWork.EventRepository.GetOneEventById(eventId);

                if (ev == null)
                {
                    throw new BusinessLogicException($"Подія з ідентифікатором {eventId} не знайдена");
                }

                var result = new EventManagementViewModel()
                {
                    Id             = ev.Id,
                    CreateDate     = ev.CreateDate,
                    Description    = ev.Description,
                    OrganizationId = ev.OrganizationId,
                    Images         = this.ConvertToImageViewModel(ev.EventImages.Where(i => i.EventId == eventId)).ToList()
                };
                return(result);
            }
            catch (Exception ex)
            {
                throw new BusinessLogicException(ex.Message);
            }
        }
Beispiel #3
0
        /// <summary>Updates the event.</summary>
        /// <param name="updatedEvent">The updated event.</param>
        /// <returns>EventManagementViewModel</returns>
        /// <exception cref="BusinessLogicException">
        /// Подію з ідентифікатором Id не вдалось оновити
        /// or
        /// Exception.Message
        /// </exception>
        public EventManagementViewModel UpdateEvent(EventManagementViewModel updatedEvent)
        {
            try
            {
                var updatedEventFromDB = this._unitOfWork.EventRepository.Update(new Event()
                {
                    Id             = updatedEvent.Id,
                    CreateDate     = updatedEvent.CreateDate,
                    Description    = updatedEvent.Description,
                    OrganizationId = updatedEvent.OrganizationId
                });

                this._unitOfWork.SaveChanges();

                if (updatedEventFromDB == null)
                {
                    throw new BusinessLogicException($"Подію з ідентифікатором {updatedEvent.Id} не вдалось оновити");
                }

                return(new EventManagementViewModel()
                {
                    Id = updatedEventFromDB.Id,
                    CreateDate = updatedEventFromDB.CreateDate,
                    Description = updatedEventFromDB.Description,
                    OrganizationId = updatedEventFromDB.OrganizationId,
                    Images = this.UpdateImages(updatedEvent.Images, updatedEvent.Id)
                });
            }
            catch (Exception ex)
            {
                throw new BusinessLogicException(ex.Message);
            }
        }
Beispiel #4
0
        public IActionResult Index()
        {
            var model = new EventManagementViewModel()
            {
                AllPositiveGameEvents = _positiveGameEventService.Find().OrderByDescending(g => g.Probability).ToList(),
                AllNegativeGameEvents = _negativeGameEventService.Find().OrderByDescending(g => g.Probability).ToList()
            };

            return(View(model));
        }
Beispiel #5
0
 public EventManagementViewModel AddNewEvent([FromBody] EventManagementViewModel newEvent)
 {
     try
     {
         return(this._service.AddNewEvent(newEvent));
     }
     catch (Exception ex)
     {
         return(new EventManagementViewModel()
         {
             ErrorMessage = ex.Message
         });
     }
 }
Beispiel #6
0
        public IActionResult Create(EventManagementViewModel model)
        {
            if (model.PositiveGameEvent != null)
            {
                _positiveGameEventService.Create(model.PositiveGameEvent);
            }

            if (model.NegativeGameEvent != null)
            {
                _negativeGameEventService.Create(model.NegativeGameEvent);
            }

            return(RedirectToAction("Index"));
        }
        // GET: Component
        public ActionResult Index(int id)
        {
            var viewModel = new EventManagementViewModel(id);

            return(View(viewModel));
        }
Beispiel #8
0
        //public async Task<EventManagementViewModel> BuildManagement1GridAsync(EventFilter filters)
        //{
        //    var model = new EventManagementViewModel();
        //    var query = _repo.Events.AsQueryable().Include(m => m.EventTeams);

        //    if (!string.IsNullOrEmpty(filters.SportId))
        //    {
        //        query = query.Where(m => m.SportId == filters.SportId);
        //    }

        //    if (!string.IsNullOrEmpty(filters.TeamId))
        //    {
        //        query = query.Where(m => m.EventTeams.Select(i => i.TeamId).Contains(filters.TeamId));
        //    }

        //    if (!string.IsNullOrEmpty(filters.StartDate))
        //    {

        //        filters.StartDateUtc = DateTime.Parse(filters.StartDate, null, DateTimeStyles.RoundtripKind);

        //        query = query.Where(m => m.DateOfEventUtc >= filters.StartDateUtc);
        //     }

        //    if (!string.IsNullOrEmpty(filters.EndDate))
        //    {
        //        filters.EndDateUtc = DateTime.Parse(filters.EndDate, null, DateTimeStyles.RoundtripKind);
        //        //filters.EndDateUtc = TimeZone.CurrentTimeZone.ToLocalTime(DateTime.Parse(filters.EndDate));
        //        query = query.Where(m => m.DateOfEventUtc <= filters.EndDateUtc);
        //    }
        //    model.Events = await query.OrderByDescending(i => i.DateOfEventUtc).Take(100).ProjectTo<EventViewModel>(MapQueries()).ToListAsync();

        //    foreach (var item in model.Events)
        //    {

        //        if (item != null)
        //        {
        //            item.DateOfEventInTimezone = TimeZoneInfo.ConvertTimeFromUtc(item.DateOfEventUtc, TimeZoneInfo.FindSystemTimeZoneById(item.TimezoneId));
        //            item.EventTeams = item.EventTeams.OrderBy(m => m.DateCreatedUtc).ToList();
        //        }
        //    }

        //    return model;
        //}


        public async Task <EventManagementViewModel> BuildManagementGridAsync(EventFilter filters)
        {
            try
            {
                var model  = new EventManagementViewModel();
                var query  = _repo.Events.AsQueryable().Include(m => m.EventTeams).Include(m => m.Sport);
                var nQuery = await query.ToListAsync();


                if (!string.IsNullOrEmpty(filters.SportId))
                {
                    nQuery = nQuery.Where(m => m.SportId == filters.SportId).ToList();
                }

                if (!string.IsNullOrEmpty(filters.TeamId))
                {
                    nQuery = nQuery.Where(m => m.EventTeams.Select(i => i.TeamId).Contains(filters.TeamId)).ToList();
                }

                if (!string.IsNullOrEmpty(filters.StartDate))
                {
                    filters.StartDateUtc = DateTime.ParseExact(filters.StartDate.Substring(0, 24),
                                                               "ddd MMM dd yyyy HH:mm:ss",
                                                               CultureInfo.InvariantCulture);

                    nQuery = (from q in nQuery
                              where TimeZoneInfo.ConvertTimeFromUtc(q.DateOfEventUtc, TimeZoneInfo.FindSystemTimeZoneById(q.TimezoneId)) >= filters.StartDateUtc
                              select q).ToList();
                }

                if (!string.IsNullOrEmpty(filters.EndDate))
                {
                    filters.EndDateUtc = DateTime.ParseExact(filters.EndDate.Substring(0, 24),
                                                             "ddd MMM dd yyyy HH:mm:ss",
                                                             CultureInfo.InvariantCulture);
                    nQuery = (from q in nQuery
                              where TimeZoneInfo.ConvertTimeFromUtc(q.DateOfEventUtc, TimeZoneInfo.FindSystemTimeZoneById(q.TimezoneId)) <= filters.EndDateUtc
                              select q).ToList();
                }

                var mapper = MapQueries().CreateMapper();
                model.Events = mapper.Map <IEnumerable <Event>, List <EventViewModel> >(nQuery.OrderByDescending(i => i.DateOfEventUtc).Take(100).ToList());

                foreach (var item in model.Events)
                {
                    if (item != null)
                    {
                        item.DateOfEventInTimezone = TimeZoneInfo.ConvertTimeFromUtc(item.DateOfEventUtc, TimeZoneInfo.FindSystemTimeZoneById(item.TimezoneId));
                        item.EventTeams            = item.EventTeams.OrderBy(m => m.DateCreatedUtc).ToList();
                    }
                }



                return(model);
            }
            catch (Exception ex)
            {
                throw;
            }
        }