public IActionResult Index(CarriageViewModel model) { model.Carriage = JsonConvert.DeserializeObject <Carriage>(model.CarriageSerialized); List <Ticket> tickets = new List <Ticket>(); foreach (var ticketVM in model.Tickets.Where(ticket => ticket.IsActive)) { ITicketBuilder builder = new TicketBuilder(ticketVM, model.Carriage, model.Email); ConstructTicket(builder); tickets.Add(builder.Ticket); } TicketOrder order = new TicketOrder(_orderCacheService, _ticketData) { Tickets = tickets, Email = model.Email, CreationDate = DateTime.Now, MobilePhone = model.MobilePhone }; order.SetHashCode(); order.Book(); return(View(new ConfirmationViewModel { Order = order, Train = model.Carriage.Train, Carriage = model.Carriage })); }