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)); }
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)); } }
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)); }