Esempio n. 1
0
        private void SendEmail(TicketOrderViewModel ticketOrderViewModel)
        {
            IUserMailer userMailer = new UserMailer();
            var         email      = userMailer.SendTicketOrder(ticketOrderViewModel);

            email.Send();
        }
Esempio n. 2
0
        public ActionResult OrderConfirmation(TicketOrderViewModel ticketOrderViewModel)
        {
            ticketOrderViewModel.CategoryOrders = new List <TicketCategoryOrderViewModel>();
            using (ApplicationDbContext context = new ApplicationDbContext())
            {
                var ticketOrder = context.TicketOrders.Single(to => to.VariableSymbol == ticketOrderViewModel.VariableSymbol && to.ProjectID == ticketOrderViewModel.ProjectID);

                var project = context.Projects.Include("BankProxy.FioBankProxy").Single(p => p.ProjectID == ticketOrderViewModel.ProjectID);

                ticketOrderViewModel.IBAN            = project.BankProxy.FioBankProxy.IBAN;
                ticketOrderViewModel.SWIFT           = project.BankProxy.FioBankProxy.BIC;
                ticketOrderViewModel.MessageForPayee = "/VS/" + ticketOrderViewModel.VariableSymbol;

                var results = context.TicketCategoryOrders.Where(to => to.TicketOrderID == ticketOrder.TicketOrderID).Include(tco => tco.TicketCategory);
                foreach (var result in results)
                {
                    ticketOrderViewModel.CategoryOrders.Add(new TicketCategoryOrderViewModel()
                    {
                        Header = result.TicketCategory.HeaderCZ, Ordered = result.Count, TotalPrice = result.Count * result.TicketCategory.Price
                    });
                }
            }

            SetLocalization(ticketOrderViewModel);
            SendEmail(ticketOrderViewModel);
            return(View("~/Views/Tickets/TicketOrderLocalized.cshtml", ticketOrderViewModel));
        }
 public ActionResult BuyNewCard(TicketOrderViewModel ticketOrderViewModel)
 {
     ticketOrderViewModel.creditCard.UserName    = ticketOrderViewModel.userName;
     ticketOrderViewModel.ticketOrder.Username   = ticketOrderViewModel.userName;
     ticketOrderViewModel.ticketOrder.CardNumber = ticketOrderViewModel.creditCard.CardNumber;
     ticketOrderViewModel.creditCard.insert();
     ticketOrderViewModel.ticketOrder.insert();
     return(View("~/Views/TicketOrder/OrderSuccess.cshtml", ticketOrderViewModel));
 }
        public ActionResult SelectShowing(String theaterID, String userName, String movieName)
        {
            TicketOrderViewModel ticketOrderViewModel = new TicketOrderViewModel();

            ticketOrderViewModel.userName  = userName;
            ticketOrderViewModel.showings  = Showing.GetFutureShowings(movieName, theaterID);
            ticketOrderViewModel.theater   = Theater.GetTheater(theaterID);
            ticketOrderViewModel.movieName = movieName;
            ticketOrderViewModel.theaterID = theaterID;
            return(View("~/Views/TicketOrder/SelectShowing.cshtml", ticketOrderViewModel));
        }
        public ActionResult EnterTickets(String theaterID, String userName, String movieName, String showingID)
        {
            TicketOrderViewModel ticketOrderViewModel = new TicketOrderViewModel();

            ticketOrderViewModel.userName  = userName;
            ticketOrderViewModel.theaterID = theaterID;
            ticketOrderViewModel.systemInfo.GetDiscounts();
            ticketOrderViewModel.movieName             = movieName;
            ticketOrderViewModel.showingID             = showingID;
            ticketOrderViewModel.ticketOrder.ShowingID = showingID;//DO NOT REMOVE THIS
            return(View("~/Views/TicketOrder/EnterTickets.cshtml", ticketOrderViewModel));
        }
        public ActionResult Buy(String creditCard, int adultTickets, int childTickets, int seniorTickets, String userName, String theaterID, String movieName, String showingID)
        {
            TicketOrderViewModel ticketOrderViewModel = new TicketOrderViewModel();

            ticketOrderViewModel.ticketOrder.CardNumber    = creditCard;
            ticketOrderViewModel.ticketOrder.AdultTickets  = adultTickets;
            ticketOrderViewModel.ticketOrder.ChildTickets  = childTickets;
            ticketOrderViewModel.ticketOrder.SeniorTickets = seniorTickets;
            ticketOrderViewModel.ticketOrder.Username      = userName;
            ticketOrderViewModel.ticketOrder.ShowingID     = showingID;
            //ticketOrderViewModel.ticketOrder.Cost = 999.999;
            ticketOrderViewModel.ticketOrder.insert();
            return(View("~/Views/TicketOrder/OrderSuccess.cshtml", ticketOrderViewModel));
        }
        public ActionResult EnterCardNumber(TicketOrderViewModel ticketOrderViewModel)
        {
            //TicketOrderViewModel ticketOrderViewModel = new TicketOrderViewModel();
            //ticketOrderViewModel.userName = userName;
            //ticketOrderViewModel.theaterID = theaterID;
            //ticketOrderViewModel.systemInfo.GetDiscounts();
            //ticketOrderViewModel.movieName = movieName;
            //ticketOrderViewModel.ticketOrder.AdultTickets = adultTickets;
            //ticketOrderViewModel.ticketOrder.ChildTickets = childTickets;
            //ticketOrderViewModel.ticketOrder.SeniorTickets = seniorTickets;

            CreditCardAccountUserViewModel creditCardAccountUserViewModel = new CreditCardAccountUserViewModel();

            creditCardAccountUserViewModel.user          = new AccountUser();
            creditCardAccountUserViewModel.user.Username = ticketOrderViewModel.userName;
            creditCardAccountUserViewModel.loadSavedCards();

            ticketOrderViewModel.creditCards = creditCardAccountUserViewModel.savedCards;
            return(View("~/Views/TicketOrder/EnterCardNumber.cshtml", ticketOrderViewModel));
        }
Esempio n. 8
0
        private void SetLocalization(TicketOrderViewModel viewModel)
        {
            //TODO: Set cookie, create button to set cookie/localization response bla bla
            bool isEnglish  = false;
            bool isJunkTown = viewModel.ProjectID == 3;
            var  cookie     = Request.Cookies[LocalizationCookie];

            if (cookie != null)
            {
                if (cookie.Value == "en")
                {
                    isEnglish = true;
                }
            }

            TicketFinalOrderLocalization ticketFinalOrderLocalization = new TicketFinalOrderLocalization();

            if (isEnglish)
            {
                if (isJunkTown)
                {
                    ticketFinalOrderLocalization.FinalizedHdr        = "Reservation completed";
                    ticketFinalOrderLocalization.OrderedTicketsHdr   = "Reserved places on Junktown 2017 festival";
                    ticketFinalOrderLocalization.TicketCountHdr      = "Reserved places";
                    ticketFinalOrderLocalization.TicketTotalPriceHdr = "Total membership fee";
                    ticketFinalOrderLocalization.ToYourEmail2        = " we've sent you a copy of reservation.";
                    ticketFinalOrderLocalization.PaymentInfo1        = "";
                    ticketFinalOrderLocalization.PaymentInfo1        = "";
                    ticketFinalOrderLocalization.PaymentInfo1        = "";
                    ticketFinalOrderLocalization.PaymentInfo1        = "";
                }
                else
                {
                    ticketFinalOrderLocalization.OrgNoteHdr            = "Message from organizer";
                    ticketFinalOrderLocalization.MessageForRecipient   = "Message for recipient";
                    ticketFinalOrderLocalization.InternationPaymentHdr = "Internation payment";
                    ticketFinalOrderLocalization.PaymentInformation    = "Payment info";
                    ticketFinalOrderLocalization.FinalizedHdr          = "Order completed";
                    ticketFinalOrderLocalization.OrderedTicketsHdr     = "Ordered tickets";
                    ticketFinalOrderLocalization.TicketCountHdr        = "Ordered tickets";
                    ticketFinalOrderLocalization.TicketTotalPriceHdr   = "Total price";
                    ticketFinalOrderLocalization.ToYourEmail2          = " we've sent you a copy of order.";
                    ticketFinalOrderLocalization.PaymentInfo1          = "Payment for ordered tickets please make by bank transfer.";
                    ticketFinalOrderLocalization.PaymentInfo2          = "After we register your complete payment we'll send your ticket on your email address.";
                    ticketFinalOrderLocalization.PaymentInfo3          = "Due date is latest day of registering your payment on our account.";
                    ticketFinalOrderLocalization.PaymentInfo4          = "After due date this order will not be valid. Create new order for buing a ticket.";
                }
                ticketFinalOrderLocalization.ToYourEmail1     = "To your email:";
                ticketFinalOrderLocalization.CategoryHdr      = "Category";
                ticketFinalOrderLocalization.AccountNumberHdr = "Bank account number: ";
                ticketFinalOrderLocalization.VSHeader         = "Variable symbol:";
                ticketFinalOrderLocalization.KSHeader         = "Constant symbol:";
                ticketFinalOrderLocalization.DueDateHdr       = "Due date:";
            }
            else
            {
                if (isJunkTown)
                {
                    ticketFinalOrderLocalization.FinalizedHdr        = "Rezervace dokončena";
                    ticketFinalOrderLocalization.OrderedTicketsHdr   = "Rezervovaná místa na spolkovém festivalu Junktown 2017";
                    ticketFinalOrderLocalization.TicketCountHdr      = "Rezervovaných míst";
                    ticketFinalOrderLocalization.TicketTotalPriceHdr = "Celková výše stanoveného členského příspěvku";
                    ticketFinalOrderLocalization.ToYourEmail2        = " Vám byla odeslána kopie vytvořené rezervace.";
                    ticketFinalOrderLocalization.PaymentInfo1        = "Po připsání celkové částky / příspěvku na účet pořadatele / spolku Vám bude obratem na tento Email odesláno potvrzení o úspěšné úhradě členského příspěvku, které vás na základě interních předpisů spolku opravňuje ke vstupu na příslušný ročník spolkového festivalu Junktown 2017.";
                    ticketFinalOrderLocalization.PaymentInfo2        = "Datum splatnosti je nejpozdější datum, kdy musí být připsán vámi uhrazený členský příspěvek na příslušný účet spolku, přičemž nestane-li se tak, propadne Vám tím zcela Vaše rezervace příslušných míst na spojkovém festivalu Junktown 2017.";
                    ticketFinalOrderLocalization.PaymentInfo3        = "ZÁKONNÉ POUČENÍ / PLATEBNÍ PODMÍNKY:";
                    ticketFinalOrderLocalization.PaymentInfo4        = "Projekt Junktown (dále  jen „Projekt“) a akce Junktown 2017 (dále jen „Akce“) je realizována pod záštitou Občanského sdružení Alternativa II, z.s. (dále jen „Spolku“) na spolkové neziskové a nespotřebitelské členské bázi dle stanov Spolku (dále jen „Stanov“), za účelem rekultivace objektu bývalé raketové základny Bratronice a naplňování vybraných oblastí spolkového poslání, kterým je podpora aktivního bytí, seberealizace, vědy, kultury, sportu, tělovýchovy, vzdělávání, občanské angažovanosti, volnočasového vyžití, jakož i všech ostatních aktivit směřujících k  všestrannému rozvoji jedince i společnosti. Veškeré platby ve prospěch projektu Junktown jsou přijímány Spolkem výhradně ve formě členských příspěvků (neboli zkráceně jen „příspěvků“) stanovovaných Spolkem na základě § 233 zákona č. 89/2012 Sb. (dále jen „NOZ“), přičemž upozorňujeme, že dobrovolná úhrada příspěvku stanoveného příslušným orgánem Spolku je dle spolkových Stanov považována současně i za projev vůle ve smyslu § 233 (2) NOZ, na základě čehož plátci stanoveného příspěvku vzniká nejpozději okamžikem přijetí příspěvku ze strany Spolku v souladu se Stanovami a interními předpisy bezzávazkový členský status „podporovatel“ Projektu a řadové neregistrované členství ve Spolku, které příslušného člena opravňuje ve Spolkem stanoveném rozsahu navštěvovat prostory Projektu, účastnit se Akcí Projektu a čerpat příslušné členské výhody a služby Projektu poskytované „podporovatelům“ Projektu  výhradně a  pouze  na  spolkové neziskové a nespotřebitelské bázi v rámci hlavní činnosti Spolku za účelem realizace spolkového poslání a efektivního  interního fundraisingu / crowdfundingu. Nesouhlasíte-li s uvedenými platebními podmínkami, neprovádějte ve prospěch Spolku jakoukoliv platbu, anebo požádejte neprodleně o vrácení platby, pokud jste tuto platbu provedl(a) v domnění, že se jedná o jiný právní akt za jiných platebních podmínek. Změnu členství  z neregistrovaného na  registrované lze provést na adrese www.osa2.cz/registrace. Stanovy, jakož i ostatní informace o Spolku jsou k dispozici ve spolkovém rejstříku u Městského soudu v Praze pod spisovou značkou L 16540.";
                }
                else
                {
                    ticketFinalOrderLocalization.OrgNoteHdr            = "Poznámka pořadatele";
                    ticketFinalOrderLocalization.InternationPaymentHdr = "Mezinárodní platba";
                    ticketFinalOrderLocalization.MessageForRecipient   = "Zpráva pro příjemce";
                    ticketFinalOrderLocalization.PaymentInformation    = "Platební informace";
                    ticketFinalOrderLocalization.FinalizedHdr          = "Objednávka dokončena";
                    ticketFinalOrderLocalization.OrderedTicketsHdr     = "Objednané vstupenky";
                    ticketFinalOrderLocalization.TicketCountHdr        = "Objednaných vstupenek";
                    ticketFinalOrderLocalization.TicketTotalPriceHdr   = "Celková cena";
                    ticketFinalOrderLocalization.ToYourEmail2          = " Vám byla odeslána kopie vytvořené objednávky.";
                    ticketFinalOrderLocalization.PaymentInfo1          = "Platbu za objednané vstupenky prosím proveďte pomocí bankovního převodu.";
                    ticketFinalOrderLocalization.PaymentInfo2          = "Po připsání celkové částky na účet pořadatele Vám budou obratem na Váš Email odeslány vstupenky.";
                    ticketFinalOrderLocalization.PaymentInfo3          = "Datum splatnosti je nejpozdější datum připsání částky na účet.";
                    ticketFinalOrderLocalization.PaymentInfo4          = "Po datu splatnosti tato objednávka již nebude platná. Pro zakoupení vstupenek vytvořte novou objednávku.";
                }
                ticketFinalOrderLocalization.ToYourEmail1     = "Na Váš email:";
                ticketFinalOrderLocalization.CategoryHdr      = "Kategorie";
                ticketFinalOrderLocalization.AccountNumberHdr = "Číslo účtu:";
                ticketFinalOrderLocalization.VSHeader         = "Variabilní symbol:";
                ticketFinalOrderLocalization.KSHeader         = "Konstantní symbol:";
                ticketFinalOrderLocalization.DueDateHdr       = "Datum splatnosti:";
            }

            viewModel.Localization = ticketFinalOrderLocalization;
        }
Esempio n. 9
0
        private TicketOrderViewModel CreateReservration(ShowTicketCategoriesViewModel submitedModel, ApplicationDbContext context, DbContextTransaction transaction, Project project, TicketOrder ticketOrder, List <TicketCategoryOrderViewModel> ticketCategoryOrderViewModels)
        {
            Org org = context.Orgs.First(o => o.OrgID == project.OwnerID);

            //Vytvořit VS a uložit objednávku
            for (int i = 0; i < 20; i++)
            {
                ticketOrder.VariableSymbol = org.VariableSymbolCounter++;

                foreach (var ticketCategoryOrder in ticketOrder.TicketCategoryOrders)
                {
                    var ticketCategoryViewModel = submitedModel.TicketCategories.Single(tc => tc.TicketCategoryID == ticketCategoryOrder.TicketCategoryID);

                    for (int j = 0; j < ticketCategoryOrder.Count; j++)
                    {
                        TicketItem ticketItem = new TicketItem()
                        {
                            Code   = ticketOrder.VariableSymbol.ToString() + "-" + (j + 1),
                            QRCode = Guid.NewGuid().ToString(),
                            TicketCategoryOrder = ticketCategoryOrder
                        };

                        if (project.TicketSetting.NamedTickets)
                        {
                            ticketItem.Name  = ticketCategoryViewModel.Names[j].Name;
                            ticketItem.Email = ticketCategoryViewModel.Emails[j].Email;
                        }

                        context.TicketItems.Add(ticketItem);
                    }
                }

                try
                {
                    context.SaveChanges();
                    transaction.Commit();
                    //Úspěšně vytvořen VS pro danou objednávku a navýšeno počítadlo pro danou organizaci
                    break;
                }
                catch (DbUpdateConcurrencyException ex)
                {
                    ex.Entries.Single().Reload();
                    org = (Org)ex.Entries.Single().Entity;
                    continue;
                }
            }

            context.Entry(project.BankProxy).Reference(bp => bp.FioBankProxy).Load();

            string accountNumber = project.BankProxy.FioBankProxy.AccountNumber + "/" + FioBankHelper.BANK_CODE;

            TicketOrderViewModel ticketOrderViewModel = new TicketOrderViewModel()
            {
                ProjectID      = submitedModel.ProjectID,
                ProjectName    = project.Name,
                Note           = project.TicketSetting.NoteOrderCZ,
                AccountNumber  = accountNumber,
                Email          = ticketOrder.Email,
                ReservedUntil  = ticketOrder.ReservedUntil.Value.ToShortDateString(),
                TotalPrice     = ticketOrder.TotalPrice + " Kč",
                VariableSymbol = ticketOrder.VariableSymbol,
                CategoryOrders = ticketCategoryOrderViewModels
            };

            //SendEmail(ticketOrderViewModel);
            return(ticketOrderViewModel);
        }
Esempio n. 10
0
        private ActionResult CreateReservationFromAction(ShowTicketCategoriesViewModel submitedModel, ApplicationDbContext context, string viewName)
        {
            using (DbContextTransaction transaction = context.Database.BeginTransaction())
            {
                Project project = context.Projects.SingleOrDefault(p => p.ProjectID == submitedModel.ProjectID);

                if (project == null)
                {
                    return(View("~/Views/Shared/Error.cshtml"));
                }

                if (ExceededMaxTickets(project, submitedModel, context))
                {
                    ModelState.AddModelError("ErrorSum", "Překročen maximální počet vstupenek na email: " + project.TicketSetting.MaxTicketsPerEmail);
                    return(View(viewName, submitedModel));
                }

                if (project.TicketSetting.NamedTickets)
                {
                    if (!submitedModel.AfterNameSetting)
                    {
                        foreach (var ticketCategory in submitedModel.TicketCategories)
                        {
                            if (ticketCategory.Ordered > 0)
                            {
                                ticketCategory.Names           = new TicketName[ticketCategory.Ordered];
                                ticketCategory.Emails          = new TicketEmail[ticketCategory.Ordered];
                                ticketCategory.Emails[0]       = new TicketEmail();
                                ticketCategory.Emails[0].Email = submitedModel.Email;
                            }
                        }


                        submitedModel.AfterNameSetting = true;
                        return(View("~/Views/Tickets/NamedTicketsLocalized.cshtml", submitedModel));
                    }
                    else
                    {
                        foreach (var ticketCategory in submitedModel.TicketCategories)
                        {
                            if (ticketCategory.Ordered > 0)
                            {
                                if (ticketCategory.Emails.GroupBy(e => e.Email).Any(c => c.Count() > 1))
                                {
                                    ModelState.AddModelError("ErrorDuplicate", submitedModel.Localization.DuplicateEmailsWarning);
                                    return(View("~/Views/Tickets/NamedTicketsLocalized.cshtml", submitedModel));
                                }
                            }
                        }
                    }
                }

                if (project.TicketSetting.AllowTermsConditions)
                {
                    if (project.TicketSetting.NamedTickets && submitedModel.AfterNameSetting && !submitedModel.AfterTermsConditionsSetting)
                    {
                        submitedModel.AfterTermsConditionsSetting = true;
                        bool isEnglish = false;
                        var  cookie    = Request.Cookies[LocalizationCookie];

                        if (cookie != null)
                        {
                            if (cookie.Value == "en")
                            {
                                isEnglish = true;
                            }
                        }
                        submitedModel.TermsConditions = isEnglish ? project.TicketSetting.TermsConditionsEN : project.TicketSetting.TermsConditionsCZ;

                        return(View("~/Views/Tickets/TermsConditionsLocalized.cshtml", submitedModel));
                    }
                }


                bool overBought = false;

                TicketOrder ticketOrder = new TicketOrder();
                ticketOrder.Created   = DateTime.Now;
                ticketOrder.Email     = submitedModel.Email;
                ticketOrder.OrgID     = project.OwnerID;
                ticketOrder.ProjectID = project.ProjectID;

                ticketOrder.ReservedUntil = DateTime.Today.AddDays(7).Date;

                if (project.TicketSetting.AllowTermsConditions)
                {
                    ticketOrder.TermsConditionsAccepted = submitedModel.TicketCategories[0].TermsConditionsAccepted;
                }
                else
                {
                    ticketOrder.TermsConditionsAccepted = false;
                }

                context.TicketOrders.Add(ticketOrder);
                context.SaveChanges();

                List <TicketCategoryOrderViewModel> ticketCategoryOrderViewModels = new List <TicketCategoryOrderViewModel>();

                foreach (var ticketCategoryViewModel in submitedModel.TicketCategories)
                {
                    TicketCategory ticketCategory = context.TicketCategories.SingleOrDefault(tc => tc.TicketCategoryID == ticketCategoryViewModel.TicketCategoryID);

                    //Objednání dané kapacity, budu při konkurenci zopakováno 10x
                    for (int i = 0; i < 10; i++)
                    {
                        if (ticketCategory == null || !project.TicketCategories.Contains(ticketCategory) || ticketCategory.Deleted)
                        {
                            transaction.Rollback();
                            return(View("~/Views/Shared/Error.cshtml"));
                        }

                        //Capacity changed
                        if (ticketCategoryViewModel.Capacity != ticketCategory.Capacity)
                        {
                            ticketCategoryViewModel.Capacity = ticketCategory.Capacity;
                        }

                        //Available capacity changed
                        if (ticketCategoryViewModel.AvailableCapacity != ticketCategory.Capacity - ticketCategory.Ordered)
                        {
                            ticketCategoryViewModel.AvailableCapacity = ticketCategory.Capacity - ticketCategory.Ordered;
                        }

                        if (ticketCategoryViewModel.Ordered > 0 && !overBought)
                        {
                            if (ticketCategory.Capacity < ticketCategory.Ordered + ticketCategoryViewModel.Ordered)
                            {
                                overBought = true;
                                break;
                            }
                            else
                            {
                                ticketCategory.Ordered += ticketCategoryViewModel.Ordered;

                                TicketCategoryOrder ticketCategoryOrder = new TicketCategoryOrder()
                                {
                                    Count          = ticketCategoryViewModel.Ordered,
                                    TicketCategory = ticketCategory,
                                    TicketOrder    = ticketOrder
                                };

                                context.TicketCategoryOrders.Add(ticketCategoryOrder);

                                try
                                {
                                    context.SaveChanges();

                                    decimal categoryPrice = ticketCategory.Price * ticketCategoryViewModel.Ordered;

                                    TicketCategoryOrderViewModel ticketCategoryOrderViewModel = new TicketCategoryOrderViewModel()
                                    {
                                        Header     = ticketCategory.HeaderCZ,
                                        Ordered    = ticketCategoryViewModel.Ordered,
                                        TotalPrice = categoryPrice
                                    };

                                    ticketCategoryOrderViewModels.Add(ticketCategoryOrderViewModel);
                                    ticketOrder.TotalPrice += categoryPrice;
                                    //Úspěšně byla navíšena nakoupená kapacita na dané kategorii a zároveň vytvořena položka objednávky pro danou kategorii
                                    break;
                                }
                                catch (DbUpdateConcurrencyException ex)
                                {
                                    //Je odstraněna nevalidní objednávka
                                    context.TicketCategoryOrders.Remove(ticketCategoryOrder);
                                    //Je znovu načtena daná kategorie s korektní sumou
                                    ex.Entries.Single().Reload();
                                    ticketCategory = (TicketCategory)ex.Entries.Single().Entity;
                                    continue;
                                }
                            }
                        }
                        else
                        {
                            //Již překoupeno, případně pro danou kategorii nejsou objednány žádné vstupenky
                            break;
                        }
                    }
                }

                if (!overBought)
                {
                    TicketOrderViewModel ticketOrderViewModel = CreateReservration(submitedModel, context, transaction, project, ticketOrder, ticketCategoryOrderViewModels);

                    return(RedirectToActionPermanent("OrderConfirmation", new RouteValueDictionary(ticketOrderViewModel)));
                }
                else
                {
                    transaction.Rollback();
                    ModelState.AddModelError("ErrorSum", "Dané množství vstupenek není možné objednat");
                    return(View(viewName, submitedModel));
                }
            }
        }