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")); } }
private void CreateTicket(BuyTicketViewModel model, string userId) { Ticket ticket = mapper.Map <BuyTicketViewModel, Ticket>(model); ticket.UserId = userId; ticketRepository.AddAsync(ticket); }
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)); }
public IActionResult BookSeat(int id) { var buyVm = new BuyTicketViewModel() { OrchestraId = id, SeatNumber = -1 }; return(View(buyVm)); }
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 }); }
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")); }
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); }
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")); }
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)); }
private void ViewModel_BuyingTicket(object sender, EventArgs e) { _buyTicketViewModel = new BuyTicketViewModel(_service, _mainViewModel); _buyTicketView = new BuyTicketWindow { DataContext = _buyTicketViewModel }; _buyTicketViewModel.CheckedOut += ViewModel_CheckedOut; _buyTicketView.ShowDialog(); }
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)); }
public ActionResult Checkout(BuyTicketViewModel model) { var result = _buyTicketService.CheckoutTicket(model, User.Identity.Name); if (result.Successed) { return(PartialView("_CheckoutFailed")); } return(Json(new { Error = "Неудалось провести операцию, так как запрашиваемое количество билетов превышает количество доступных!" })); }
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)); }
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)); }
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)); }
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)); }
// GET: Ticket public async Task <ActionResult> Buy(int courseId) { BuyTicketViewModel vm = await TicketModelBuilder.GetTicketAsync(courseId); return(View(vm)); }
public async Task <ActionResult> Buy(BuyTicketViewModel vm) { ConfirmationAchatViewModel confirmationAchatViewModel = await TicketModelBuilder.PostTicketAsync(vm); return(View("ConfirmationAchatViewModel", confirmationAchatViewModel)); }
// GET: Ticket public ActionResult Buy(int courseId) { BuyTicketViewModel vm = TicketModelBuilder.GetTicket(courseId); return(View(vm)); }
public ActionResult Buy(BuyTicketViewModel vm) { ConfirmationAchatViewModel confirmationAchatViewModel = TicketModelBuilder.PostTicket(vm); return(View("ConfirmationAchatViewModel", confirmationAchatViewModel)); }
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))); }
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")); }
public ActionResult BuyTicket(BuyTicketViewModel buyTicketViewModel) { TempData["ViewModel"] = buyTicketViewModel; return(RedirectToAction("Checkout", "App")); }