Esempio n. 1
0
        public async Task <IActionResult> BuyTicket(int id)
        {
            if (this.User.Identity.IsAuthenticated)
            {
                if (id == 0)
                {
                    return(NotFound());
                }

                var user = await _userHelper.GetUserByEmailAsync(User.Identity.Name);

                var businessPrice = _ticketRepository.GetBusinessPrice(id);
                var economyPrice  = _ticketRepository.GetEconomyPrice(id);

                var model = new BuyTicketViewModel
                {
                    FlightId      = id,
                    PhoneNumber   = user.PhoneNumber,
                    IndicativeId  = user.IndicativeId,
                    Indicatives   = _indicativeRepository.GetComboIndicatives(),
                    PassangerName = user.FullName,
                    EconomyPrice  = economyPrice,
                    BusinessPrice = businessPrice
                };

                return(View(model));
            }

            else
            {
                return(RedirectToAction("Login", "Account"));
            }
        }
Esempio n. 2
0
        private void CreateTicket(BuyTicketViewModel model, string userId)
        {
            Ticket ticket = mapper.Map <BuyTicketViewModel, Ticket>(model);

            ticket.UserId = userId;
            ticketRepository.AddAsync(ticket);
        }
Esempio n. 3
0
        public OperationResult CheckoutTicket(BuyTicketViewModel model, string userName)
        {
            if (CheckAvailability(model.TameTableId, model.Quantity))
            {
                var timeTable = _unitOfWork.TimeTablesRepository.GetById(model.TameTableId);

                if (timeTable != null)
                {
                    timeTable.Seats = timeTable.Seats - model.Quantity;

                    if (timeTable.Seats >= 0)
                    {
                        var result = _unitOfWork.Save();

                        if (result.Successed)
                        {
                            var order = GetOrderModel(model);
                            _accountService.AddOrderToHistoryUser(order, userName);

                            return(result);
                        }
                    }
                }
            }

            return(new OperationResult
            {
                Successed = false
            });
        }
        public IActionResult BookSeat([FromForm] BuyTicketViewModel Vm)
        {
            var userId = _userManager.GetUserId(User);

            // var personalTrip = historyTripsService.GetPersonalTripByUserId(userId);

            return(RedirectToAction("BookSeat", "Flights"));
        }
        public void BuyTicket()
        {
            BuyTicketViewModel buyTicketViewModel = _resolutionRoot.Get <BuyTicketViewModel>();

            ((ISupportParentViewModel)buyTicketViewModel).ParentViewModel = this;
            DialogService.ShowDialog("Fast-sale System", buyTicketViewModel);
            Refresh();
        }
        public IActionResult BookSeat(Guid id)
        {
            var buyVm = new BuyTicketViewModel()
            {
                TripId = id, SeatNumber = -1
            };

            return(View(buyVm));
        }
Esempio n. 7
0
        public IActionResult BookSeat(int id)
        {
            var buyVm = new BuyTicketViewModel()
            {
                OrchestraId = id,
                SeatNumber  = -1
            };

            return(View(buyVm));
        }
Esempio n. 8
0
        public IActionResult BuyTicket([FromForm] BuyTicketViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }
            var    userId = this.userManager.GetUserId(this.User);
            string result = this.ticketService.BuyTickets(model, userId);

            return(Redirect(GlobalConstants.AllEventsActionString));
        }
 public Ticket ToTicket(BuyTicketViewModel model, string userId)
 {
     return(new Ticket
     {
         FlightId = model.FlightId,
         PassangerName = model.PassangerName,
         Lugagge = model.Lugagge,
         SeatNumber = model.SeatNumber,
         TravelClass = model.TravelClass
     });
 }
Esempio n. 10
0
        public IActionResult Buy(BuyTicketViewModel model)
        {
            var createOrderResult = _commandExecutor.Execute(new CreateOrderCommand()
            {
                Email       = model.Email,
                EventId     = model.EventId,
                TicketCount = model.TicketCount
            });

            return(RedirectToAction("OrderDetails", new { orderId = createOrderResult.Data.Id }));
        }
        public IActionResult BookSeat([FromForm] BuyTicketViewModel Vm)
        {
            var userId = userManager.GetUserId(User);

            // var personalTrip = historyTripsService.GetPersonalTripByUserId(userId);
            if (Vm.SeatNumber != -1)
            {
                historyTripsService.AddTripInHistory(Vm.TripId.ToString(), userId, "", 122, Vm.SeatNumber, 0);
                return(RedirectToAction("Index", "HistoryTrip"));
            }
            return(RedirectToAction("BookSeat", "SearchTrip"));
        }
Esempio n. 12
0
        private OrderModelDto GetOrderModel(BuyTicketViewModel model)
        {
            OrderModelDto result = new OrderModelDto
            {
                DepartureDate = model.DepartureDate,
                Description   =
                    $"{model.DepartureStop} - {model.ArrivalStop}, {model.DepartureDate:g}, в количестве {model.Quantity} шт.",
                OperationDate = DateTime.Now
            };

            return(result);
        }
Esempio n. 13
0
        public IActionResult BookSeat([FromForm] BuyTicketViewModel Vm)
        {
            var userId = userManager.GetUserId(User);

            // var personalTrip = historyTripsService.GetPersonalTripByUserId(userId);
            if (Vm.SeatNumber != -1)
            {
                orchestrahistoryService.AddOrchestraInHistory(Vm.OrchestraId, 1, "In Progress", Vm.SeatNumber, 0);
                return(RedirectToAction("Index", "OrchestraHistories"));
            }
            return(RedirectToAction("BookSeat", "Orchestras"));
        }
Esempio n. 14
0
        public ActionResult ShowBuyForm(String cardId)
        {
            int cardIdNumber;

            var buyTicketViewModel = new BuyTicketViewModel
            {
                CardTypes     = ctx.CardTypeDictionaries.ToList(),
                DiscountTypes = ctx.DiscountTypeDictionaries.ToList(),
                PaymentTypes  = ctx.PaymentTypeDictionaries.ToList(),
                Zones         = ctx.ZoneDictionaries.ToList(),
                TicketTypes   = ctx.TicketTypes.ToList()
            };

            if (cardId != null)
            {
                try
                {
                    cardIdNumber = Int32.Parse(cardId);
                    buyTicketViewModel.CardId        = cardIdNumber;
                    buyTicketViewModel.TicketPeriods = (from p in ctx.TicketPeriodDictionaries
                                                        where p.TicketPeriodId == TicketPeriod.Month || p.TicketPeriodId == TicketPeriod.ThreeMonths
                                                        select new TicketPeriodDto
                    {
                        TicketPeriodId = p.TicketPeriodId,
                        Description = p.Description
                    }).ToList();
                }
                catch (FormatException)
                {
                    buyTicketViewModel.CardId        = -1;
                    buyTicketViewModel.TicketPeriods = (from p in ctx.TicketPeriodDictionaries
                                                        select new TicketPeriodDto
                    {
                        TicketPeriodId = p.TicketPeriodId,
                        Description = p.Description
                    }).ToList();
                }
            }
            else
            {
                buyTicketViewModel.CardId        = -1;
                buyTicketViewModel.TicketPeriods = (from p in ctx.TicketPeriodDictionaries
                                                    select new TicketPeriodDto
                {
                    TicketPeriodId = p.TicketPeriodId,
                    Description = p.Description
                }).ToList();
            }


            return(View(buyTicketViewModel));
        }
Esempio n. 15
0
        private void ViewModel_BuyingTicket(object sender, EventArgs e)
        {
            _buyTicketViewModel = new BuyTicketViewModel(_service, _mainViewModel);

            _buyTicketView = new BuyTicketWindow
            {
                DataContext = _buyTicketViewModel
            };

            _buyTicketViewModel.CheckedOut += ViewModel_CheckedOut;

            _buyTicketView.ShowDialog();
        }
Esempio n. 16
0
        public ActionResult BuyTicket(TimeTableViewModel model)
        {
            var buyModel = new BuyTicketViewModel
            {
                Amount        = model.Price * model.Quantity,
                ArrivalStop   = model.ArrivalStop,
                DepartureDate = model.DepartureDate,
                DepartureStop = model.DepartureStop,
                TameTableId   = model.TameTableId,
                RouteId       = model.RouteId,
                Quantity      = model.Quantity
            };

            return(View(buyModel));
        }
Esempio n. 17
0
        public ActionResult Checkout(BuyTicketViewModel model)
        {
            var result = _buyTicketService.CheckoutTicket(model, User.Identity.Name);

            if (result.Successed)
            {
                return(PartialView("_CheckoutFailed"));
            }

            return(Json(new
            {
                Error =
                    "Неудалось провести операцию, так как запрашиваемое количество билетов превышает количество доступных!"
            }));
        }
Esempio n. 18
0
        public ActionResult BuyTicket(int id)
        {
            var Context   = new MoviesDBMapping();
            var Screening = Context.MoviesList
                            .Include("Hall")
                            .Include("SeatsTaken")
                            .FirstOrDefault(m => m.Id == id);

            var viewModel = new BuyTicketViewModel();

            if (Screening == null) // movie dosent exist
            {
                viewModel.Error = "No movie found";
            }
            else if (Screening.Hall.Seats == Screening.SeatsTaken.Count()) // no seats left
            {
                viewModel.Error = "No seats available";
            }
            else // order ticket
            {
                viewModel.Movie = new MovieViewModel
                {
                    MoviePresentId = Screening.Id,
                    Date           = Screening.Date,
                    HallId         = Screening.HallId,
                    MinAge         = Screening.Movie.MinAge,
                    MovieName      = Screening.Movie.Name
                };

                viewModel.Seats = new List <SelectListItem>();
                for (int i = 1; i <= Screening.Hall.Seats; i++)
                {
                    if (!Screening.SeatsTaken.Any(a => a.Seat == i))
                    {
                        SelectListItem sli = new SelectListItem {
                            Text = i.ToString(), Value = i.ToString()
                        };
                        viewModel.Seats.Add(sli);
                    }
                }
            }


            return(View(viewModel));
        }
Esempio n. 19
0
        public ActionResult BuyETicket()
        {
            var buyTicketViewModel = new BuyTicketViewModel
            {
                CardTypes     = ctx.CardTypeDictionaries.ToList(),
                DiscountTypes = ctx.DiscountTypeDictionaries.ToList(),
                PaymentTypes  = ctx.PaymentTypeDictionaries.ToList(),
                TicketPeriods = (from p in ctx.TicketPeriodDictionaries
                                 where p.TicketPeriodId == TicketPeriod.Month || p.TicketPeriodId == TicketPeriod.ThreeMonths
                                 select new TicketPeriodDto
                {
                    TicketPeriodId = p.TicketPeriodId,
                    Description = p.Description
                }).ToList(),
                Zones       = ctx.ZoneDictionaries.ToList(),
                TicketTypes = ctx.TicketTypes.ToList()
            };

            return(View(buyTicketViewModel));
        }
Esempio n. 20
0
        public string BuyTickets(BuyTicketViewModel model, string userId)
        {
            var ev = eventService.FindEventById(model.EventId);

            if (ev == null)
            {
                return(GlobalConstants.EventNotExist);
            }
            CreateTicket(model, userId);
            var adultMoney = model.AdultQuantity * model.RegularPrice;
            var childMoney = model.ChildQuantity * (model.RegularPrice / 2);

            ev.Gainings += (adultMoney + childMoney);

            var tickets = model.AdultQuantity + model.ChildQuantity;

            ev.TotalTickets -= tickets;
            eventRepository.SaveChangesAsync();

            return(string.Format(GlobalConstants.BoughtTicket, tickets));
        }
Esempio n. 21
0
        public IActionResult BuyTicket()
        {
            var flights = _flightRepository.GetAllWithAirportsAndPartners().Where(f => f.IsAproved);

            var model = new List <BuyTicketViewModel>();

            foreach (var flight in flights)
            {
                var ticket = new BuyTicketViewModel
                {
                    Id           = flight.Id,
                    StartAirport = flight.StartAirport.Name,
                    EndAirport   = flight.EndAirport.Name,
                    Price        = flight.BaseMilesPrice,
                    Company      = flight.FlightCompany.Name,
                    FlightStart  = flight.FlightStart,
                    FlightEnd    = flight.FlightEnd
                };

                model.Add(ticket);
            }

            return(View(model));
        }
Esempio n. 22
0
        // GET: Ticket
        public async Task <ActionResult> Buy(int courseId)
        {
            BuyTicketViewModel vm = await TicketModelBuilder.GetTicketAsync(courseId);

            return(View(vm));
        }
Esempio n. 23
0
        public async Task <ActionResult> Buy(BuyTicketViewModel vm)
        {
            ConfirmationAchatViewModel confirmationAchatViewModel = await TicketModelBuilder.PostTicketAsync(vm);

            return(View("ConfirmationAchatViewModel", confirmationAchatViewModel));
        }
Esempio n. 24
0
        // GET: Ticket
        public ActionResult Buy(int courseId)
        {
            BuyTicketViewModel vm = TicketModelBuilder.GetTicket(courseId);

            return(View(vm));
        }
Esempio n. 25
0
        public ActionResult Buy(BuyTicketViewModel vm)
        {
            ConfirmationAchatViewModel confirmationAchatViewModel = TicketModelBuilder.PostTicket(vm);

            return(View("ConfirmationAchatViewModel", confirmationAchatViewModel));
        }
Esempio n. 26
0
        public async Task <IActionResult> BuyTicket(BuyTicketViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var user = await _userHelper.GetUserByEmailAsync(User.Identity.Name);

                    if (model.TravelClass.Contains("Economy"))
                    {
                        var nextSeat = _ticketRepository.GetEconomySeats(model.FlightId);

                        if (nextSeat == 0)
                        {
                            this.ModelState.AddModelError(string.Empty, "Flight is full");
                        }

                        else
                        {
                            var ticket = new Ticket
                            {
                                FlightId      = model.FlightId,
                                PassangerName = model.PassangerName,
                                TravelClass   = "Economy",
                                SeatNumber    = nextSeat,
                                User          = user,
                            };

                            await _ticketRepository.CreateAsync(ticket);

                            var myToken = await _userHelper.GenerateEmailConfirmationTokenAsync(user);

                            var tokenLink = this.Url.Action("ConfirmEmail", "Account", new
                            {
                                userid = user.Id,
                                token  = myToken
                            }, protocol: HttpContext.Request.Scheme);


                            var flight = await _flightRepository.GetByIdAsync(model.FlightId);

                            var arrival = await _airportRepository.GetByIdAsync(flight.ArrivalAirportId);

                            var departure = await _airportRepository.GetByIdAsync(flight.DepartureAirportId);


                            _mailHelper.SendMail(user.Email, $"Your reservation for flight nº HFA000{ticket.FlightId}:", $"<h1>Was completed successfully!</h1>" +
                                                 $"Here are the details:<br/>From {departure.CompleteAirport} to {arrival.CompleteAirport}<br/>" +
                                                 $"On: {flight.DateTime}<br/><br/>Name: {ticket.PassangerName}<br/>Travel Class: {ticket.TravelClass}<br/>" +
                                                 $"Seat Number: {ticket.SeatNumber}");
                        }
                    }

                    else if (model.TravelClass.Contains("Business"))
                    {
                        var nextSeat = _ticketRepository.GetBusinessSeats(model.FlightId);

                        if (nextSeat == 0)
                        {
                            this.ModelState.AddModelError(string.Empty, "Flight is full");
                        }

                        else
                        {
                            var ticket = new Ticket
                            {
                                FlightId      = model.FlightId,
                                PassangerName = model.PassangerName,
                                TravelClass   = "Business",
                                SeatNumber    = nextSeat,
                                User          = user
                            };

                            await _ticketRepository.CreateAsync(ticket);

                            var myToken = await _userHelper.GenerateEmailConfirmationTokenAsync(user);

                            var tokenLink = this.Url.Action("ConfirmEmail", "Account", new
                            {
                                userid = user.Id,
                                token  = myToken
                            }, protocol: HttpContext.Request.Scheme);

                            var flight = await _flightRepository.GetByIdAsync(model.FlightId);

                            var arrival = await _airportRepository.GetByIdAsync(flight.ArrivalAirportId);

                            var departure = await _airportRepository.GetByIdAsync(flight.DepartureAirportId);


                            _mailHelper.SendMail(user.Email, $"Your reservation for flight nº HFA000{ticket.FlightId}:", $"<h1>Was completed successfully!</h1>" +
                                                 $"Here are the details:<br/>From {departure.CompleteAirport} to {arrival.CompleteAirport}<br/>" +
                                                 $"On: {flight.DateTime}<br/><br/>Name: {ticket.PassangerName}<br/>Travel Class: {ticket.TravelClass}<br/>" +
                                                 $"Seat Number: {ticket.SeatNumber}");
                        }
                    }
                }
                catch (Exception exception)
                {
                    ModelState.AddModelError(string.Empty, exception.Message);
                }
            }
            return(RedirectToAction(nameof(Index)));
        }
Esempio n. 27
0
        public ActionResult Finalize(BuyTicketViewModel buyTicketViewModel)
        {
            var price           = GetPrice(buyTicketViewModel.TicketType);
            var numberOfTickets = buyTicketViewModel.NumberOfTickets;
            var cardId          = buyTicketViewModel.CardId;
            var card            = cardId != -1;
            var travelCard      = GetCard(cardId);

            if (price == null || (card && travelCard == null && numberOfTickets != 1) ||
                numberOfTickets < 1 || numberOfTickets > 10)
            {
                var message = HttpUtility.UrlEncode("Oops something went wrong", new UTF8Encoding());
                return(RedirectToAction("Failure", "App", new MessageViewModel {
                    Message = message
                }));
            }

            List <Ticket> tickets = new List <Ticket>();

            if (!card)
            {
                for (var i = 0; i < numberOfTickets; ++i)
                {
                    tickets.Add(new Ticket
                    {
                        TicketType  = ctx.TicketTypes.Find(buyTicketViewModel.TicketType.Id),
                        IssuedPrice = price.Value
                    });
                }
            }
            else
            {
                var lastTicket    = GetLastTicketView(cardId);
                var validFromDate = DateTime.Now;
                if (lastTicket != null && lastTicket.Date > validFromDate)
                {
                    validFromDate = lastTicket.Date;
                }

                tickets.Add(new Ticket
                {
                    TicketType    = ctx.TicketTypes.Find(buyTicketViewModel.TicketType.Id),
                    IssuedPrice   = price.Value,
                    ValidFromDate = validFromDate,
                    ValidToDate   =
                        validFromDate.AddMinutes(
                            SuperDuperDumbDictionary[buyTicketViewModel.TicketType.TicketPeriod.ToString()]),
                    Card = travelCard
                });
            }

            var transaction = new Transaction
            {
                Date        = DateTime.Now,
                TotalPrice  = price.Value * numberOfTickets,
                Tickets     = tickets,
                PaymentType = buyTicketViewModel.PaymentType
            };

            foreach (var ticket in tickets)
            {
                ticket.Transaction = transaction;
                ctx.Tickets.Add(ticket);
            }

            ctx.Transactions.Add(transaction);

            ctx.SaveChanges();

            List <int> boughtTickets = new List <int>();

            foreach (var ticket in tickets)
            {
                boughtTickets.Add(ticket.Id);
            }
            TempData["BoughtTickets"] = boughtTickets;
            return(RedirectToAction("Success", "App"));
        }
Esempio n. 28
0
 public ActionResult BuyTicket(BuyTicketViewModel buyTicketViewModel)
 {
     TempData["ViewModel"] = buyTicketViewModel;
     return(RedirectToAction("Checkout", "App"));
 }