private bool ValidateTicketCode(ShowTicketCategoriesCodeViewModel submitedModel, ApplicationDbContext context) { var categoryToOrder = submitedModel.TicketCategories.Single(tc => tc.Ordered > 0); if (submitedModel.Code != context.TicketCategories.Single(tc => tc.TicketCategoryID == categoryToOrder.TicketCategoryID).Code) { ModelState.AddModelError("ErrorSum", "Zadaný kod není platný."); return(false); } else { return(true); } }
public ActionResult CreateCodeReservation(ShowTicketCategoriesCodeViewModel submitedModel) { string viewName = "~/Views/Tickets/CreateCodeReservationLocalized.cshtml"; SetLocalization(submitedModel, submitedModel.ProjectID, true); if (!IsModelValid(submitedModel)) { return(View(viewName, submitedModel)); } using (ApplicationDbContext context = new ApplicationDbContext()) { if (!ValidateTicketCode(submitedModel, context)) { return(View(viewName, submitedModel)); } var result = CreateReservationFromAction(submitedModel, context, viewName); return(result); } }
private ShowTicketCategoriesViewModel CreateReservationInit(int projectId, bool isCode) { using (ApplicationDbContext context = new ApplicationDbContext()) { Project project = context.Projects.SingleOrDefault(p => p.ProjectID == projectId); if (project == null) { throw new Exception("Project not found."); } ViewBag.Title = project.Name + " | Vstupenky"; ShowTicketCategoriesViewModel viewModel; if (isCode) { viewModel = new ShowTicketCategoriesCodeViewModel(); } else { viewModel = new ShowTicketCategoriesViewModel(); } viewModel.ProjectID = project.ProjectID; viewModel.ProjectName = project.Name; viewModel.MaxTicketsPerMail = project.TicketSetting.MaxTicketsPerEmail; viewModel.TicketCategories = new List <TicketCategoryViewModel>(); if (project.TicketsURL != null && project.TicketsURL != "") { viewModel.TicketsAvailable = true; } else { viewModel.TicketsAvailable = false; return(viewModel); } foreach (TicketCategory ticketCategory in project.TicketCategories.Where(tc => !tc.Deleted && tc.CodeRequired == isCode)) { if (ticketCategory.SoldFrom.Value.ToLocalTime() <= DateTime.Now && ticketCategory.SoldTo.Value.ToLocalTime() >= DateTime.Now) { TicketCategoryViewModel ticketCategoryViewModel = new TicketCategoryViewModel() { AvailableCapacity = ticketCategory.Capacity - ticketCategory.Ordered, Capacity = ticketCategory.Capacity, Header = ticketCategory.HeaderCZ, Price = ticketCategory.Price + "Kč", TicketCategoryID = ticketCategory.TicketCategoryID, SoldFrom = String.Format("{0:d.M.yyyy HH:mm:ss}", ticketCategory.SoldFrom.Value.ToLocalTime()), SoldTo = String.Format("{0:d.M.yyyy HH:mm:ss}", ticketCategory.SoldTo.Value.ToLocalTime()), RowVersion = ticketCategory.RowVersion }; viewModel.TicketCategories.Add(ticketCategoryViewModel); } } viewModel.TicketsAvailable = viewModel.TicketCategories.Any(); SetLocalization(viewModel, projectId, isCode); return(viewModel); } }