Exemple #1
0
        public ActionResult CreateEvent(ForEventManagerViewModel model)
        {
            var identity     = (ClaimsIdentity)User.Identity;
            var token        = identity.FindFirst(ClaimTypes.Authentication).Value;
            var layoutClient = GetLayoutServiceClient(User.Identity.Name, token);

            List <string> list = new List <string>();

            foreach (var item in layoutClient.GetAll())
            {
                list.Add(item.Name);
            }

            if (!ModelState.IsValid)
            {
                return(View(new ForEventManagerViewModel {
                    LayoutsNames = list
                }));
            }

            layoutClient.Close();

            return(RedirectToAction("SetPricesOnAreas", model));
        }
Exemple #2
0
        public ActionResult EditEvent(EditEventViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var identity     = (ClaimsIdentity)User.Identity;
            var token        = identity.FindFirst(ClaimTypes.Authentication).Value;
            var eventClient  = GetEventServiceClient(User.Identity.Name, token);
            var layoutClient = GetLayoutServiceClient(User.Identity.Name, token);


            List <string> list = new List <string>();

            foreach (var item in layoutClient.GetAll())
            {
                list.Add(item.Name);
            }

            var updEventDTO = new EventDTO
            {
                Id             = model.Id,
                Name           = model.Name,
                DateTimeStart  = model.DateTimeStart,
                DateTimeFinish = model.DateTimeFinish,
                Description    = model.Description,
                ImageUrl       = model.ImageUrl,
                LayoutId       = layoutClient.GetByName(model.LayoutName).Id
            };

            if (updEventDTO.LayoutId == eventClient.GetById(model.Id).LayoutId)
            {
                try
                {
                    eventClient.Update(updEventDTO);
                }
                catch (FaultException <WcfEventServiceReference.InvalidEventException> e)
                {
                    ViewBag.ErrorMessage = e.Message;
                    model.LayoutsNames   = list;
                    return(View(model));
                }

                var message = Resources.EventManagerControllerTexts.EventUpdated;

                eventClient.Close();
                layoutClient.Close();

                return(RedirectToAction("Index", new { message }));
            }
            else
            {
                var newModel = new ForEventManagerViewModel()
                {
                    Name           = model.Name,
                    Description    = model.Description,
                    DateTimeStart  = model.DateTimeStart,
                    DateTimeFinish = model.DateTimeFinish,
                    ImageUrl       = model.ImageUrl,
                    LayoutName     = model.LayoutName,
                };

                eventClient.Delete(model.Id);

                eventClient.Close();
                layoutClient.Close();

                return(RedirectToAction("SetPricesOnAreas", newModel));
            }
        }
Exemple #3
0
        public ActionResult SetPricesOnAreas(ForEventManagerViewModel model)
        {
            if (model.EventAreaDTOs != null && model.EventAreaDTOs.FirstOrDefault(x => x.Price == 0) != null)
            {
                ViewBag.Error = Resources.EventManagerControllerTexts.AllPricesMustBeSet;
                return(View(model));
            }

            var identity    = (ClaimsIdentity)User.Identity;
            var token       = identity.FindFirst(ClaimTypes.Authentication).Value;
            var eventClient = GetEventServiceClient(User.Identity.Name, token);

            var layoutClient = GetLayoutServiceClient(User.Identity.Name, token);

            if (model.EventAreaDTOs != null && model.EventAreaDTOs.FirstOrDefault(x => x.Price == 0) == null)
            {
                try
                {
                    eventClient.Create(new EventDTO
                    {
                        Name           = model.Name,
                        Description    = model.Description,
                        DateTimeStart  = model.DateTimeStart,
                        DateTimeFinish = model.DateTimeFinish,
                        ImageUrl       = model.ImageUrl,
                        LayoutId       = layoutClient.GetByName(model.LayoutName).Id
                    });
                }
                catch (FaultException <WcfEventServiceReference.InvalidEventException> )
                {
                    var err = Resources.EventManagerControllerTexts.EventCreatingError;
                    return(RedirectToAction("CreateEvent", new { errorMessage = err }));
                }

                var createdEventId       = eventClient.GetAll().Last().Id;
                var createdEventAreaDTOs = eventClient.GetAllEventAreasDTOByEventId(createdEventId);

                for (int i = 0; i < createdEventAreaDTOs.Count(); i++)
                {
                    createdEventAreaDTOs.ElementAt(i).Price = model.EventAreaDTOs.ElementAt(i).Price;
                    eventClient.UpdateEventAreas(createdEventAreaDTOs.ElementAt(i));
                }

                string message = Resources.EventManagerControllerTexts.NewEventCreated;
                eventClient.Close();
                layoutClient.Close();

                return(RedirectToAction("Index", new { message }));
            }


            var areaClient = GetAreaServiceClient(User.Identity.Name, token);

            var layoutId = layoutClient.GetByName(model.LayoutName).Id;
            var areas    = areaClient.GetAll().Where(x => x.LayoutId == layoutId);

            var eventAreaDTOs = new List <EventAreaDTO>();

            foreach (var item in areas)
            {
                eventAreaDTOs.Add(new EventAreaDTO
                {
                    LayoutId    = item.LayoutId,
                    Description = item.Description,
                    CoordX      = item.CoordX,
                    CoordY      = item.CoordY
                });
            }

            model.EventAreaDTOs = eventAreaDTOs;

            eventClient.Close();
            layoutClient.Close();
            areaClient.Close();

            return(View(model));
        }