Example #1
0
        public async Task <FlightReservationModel> Edit([FromBody] FlightReservationModel reservation)
        {
            if (ModelState.IsValid)
            {
                //IsReservationValidQuery isReservationValidQuery = new IsReservationValidQuery(reservation);
                //var isValid =   await _mediator.Send(isReservationValidQuery);
                if (true)
                {
                    try
                    {
                        UpdateReservationCommand updateReservationCommand = new UpdateReservationCommand(reservation);
                        var result = await _mediator.Send(updateReservationCommand);

                        reservation.ReturnResult = String.Join("/n", result.Errors);
                        return(reservation);
                    }
                    catch (MyValidationException ve)
                    {
                        System.Diagnostics.Debug.WriteLine(ve.Failures);

                        reservation.ReturnResult = ve.FailuresMessage.ToString();
                        return(reservation);
                    }
                    catch (Exception ex)
                    {
                        System.Diagnostics.Debug.WriteLine(ex.Message);
                    }
                }
            }
            reservation.ReturnResult = "Model State Not Valid";
            return(reservation);
        }
Example #2
0
        public async Task Purchase(FlightReservationModel flight, CancellationToken cancellationToken)
        {
            string cartId      = _cartCookieProvider.GetCartCookie();
            var    updatedCart = await _cartDataProvider.UpsertCartFlights(cartId, flight.SelectedDepartingFlight, flight.SelectedReturningFlight, cancellationToken);

            if (string.IsNullOrEmpty(cartId))
            {
                _cartCookieProvider.SetCartCookie(updatedCart.Id);
            }
        }
Example #3
0
        public async Task <FlightReservationModel> Search(SearchModel searchRequest, CancellationToken cancellationToken)
        {
            FlightReservationModel roundTrip = new FlightReservationModel();

            roundTrip.DepartingFlights = await _flightDataProvider.FindFlights(searchRequest.StartLocation, searchRequest.EndLocation, searchRequest.StartDate, THREEHOURSBEFOREORAFTER, cancellationToken);

            roundTrip.ReturningFlights = await _flightDataProvider.FindFlights(searchRequest.EndLocation, searchRequest.StartLocation, searchRequest.EndDate, THREEHOURSBEFOREORAFTER, cancellationToken);

            if (searchRequest.IsTest)
            {
                roundTrip.SelectedDepartingFlight = roundTrip.DepartingFlights.Skip(TestSettings.random.Next(roundTrip.DepartingFlights.Count() - 1)).First().Id;
            }

            if (searchRequest.IsTest)
            {
                roundTrip.SelectedReturningFlight = roundTrip.ReturningFlights.Skip(TestSettings.random.Next(roundTrip.ReturningFlights.Count() - 1)).First().Id;
            }

            return(roundTrip);
        }
        public async Task <ActionResult> Purchase(FlightReservationModel flight, CancellationToken cancellationToken)
        {
            await _flightsController.Purchase(flight, cancellationToken);

            return(RedirectToAction("Index", "Cart"));
        }
Example #5
0
        public async Task <Object> LoadReservations(string username, string loadType)
        {
            var userI = await _userManager.FindByNameAsync(username);

            if (userI == null)
            {
                return(NotFound("Loading failed. Server not found user in data base."));
            }

            List <long> ticketsID   = new List <long>();
            var         ticketUsers = _context.UserTickets;

            foreach (var tu in ticketUsers)
            {
                if (tu.UserName.ToString().Equals(userI.Id))
                {
                    ticketsID.Add(tu.TicketID);
                }
            }

            List <FlightReservationModel> flightReservations = new List <FlightReservationModel>();
            var allTickets = _context.Tickets.Include(f => f.Flight);

            for (int i = 0; i < ticketsID.Count; i++)
            {
                foreach (var ticket in allTickets)
                {
                    // nasao sam tam tiket sa tim id-jem
                    if (ticket.TicketID == (int)ticketsID[i])
                    {
                        if (loadType.Equals("active"))
                        {
                            if ((ticket.Flight.StartTime - DateTime.Now).TotalHours >= 3)
                            {
                                // trebaju mi samo oni aktivni tj oni koji mogu da se otkazu
                                FlightReservationModel newReservation = new FlightReservationModel()
                                {
                                    TicketID      = ticket.TicketID.ToString(),
                                    StartTime     = ticket.Flight.StartTime.ToString(),
                                    EndTime       = ticket.Flight.EndTime.ToString(),
                                    StartLocation = ticket.Flight.StartLocation,
                                    EndLocation   = ticket.Flight.EndLocation,
                                    TicketNumber  = ticket.TicketNumber.ToString()
                                };

                                if (ticket.CardType == CardType.ECONOMIC_CLASS)
                                {
                                    newReservation.TicketType = "ECONOMIC_CLASS";
                                }
                                else if (ticket.CardType == CardType.FIRST_CLASS)
                                {
                                    newReservation.TicketType = "FIRST_CLASS";
                                }
                                else
                                {
                                    newReservation.TicketType = "BUSINESS_CLASS";
                                }

                                flightReservations.Add(newReservation);
                            }
                        }
                        else
                        {
                            if ((ticket.Flight.StartTime - DateTime.Now).TotalHours < 3)
                            {
                                // trebaju mi samo oni koji vise ne mogu da se otkazu
                                FlightReservationModel newReservation = new FlightReservationModel()
                                {
                                    TicketID      = ticket.TicketID.ToString(),
                                    StartTime     = ticket.Flight.StartTime.ToString(),
                                    EndTime       = ticket.Flight.EndTime.ToString(),
                                    StartLocation = ticket.Flight.StartLocation,
                                    EndLocation   = ticket.Flight.EndLocation,
                                    TicketNumber  = ticket.TicketNumber.ToString()
                                };

                                if (ticket.CardType == CardType.ECONOMIC_CLASS)
                                {
                                    newReservation.TicketType = "ECONOMIC_CLASS";
                                }
                                else if (ticket.CardType == CardType.FIRST_CLASS)
                                {
                                    newReservation.TicketType = "FIRST_CLASS";
                                }
                                else
                                {
                                    newReservation.TicketType = "BUSINESS_CLASS";
                                }

                                flightReservations.Add(newReservation);
                            }
                        }

                        break;
                    }
                }
            }

            if (flightReservations.Count == 0)
            {
                return(NotFound("Loading failed. User not have any active flight reservation."));
            }

            return(Ok(flightReservations));
        }
Example #6
0
 public IsReservationValidQuery(FlightReservationModel flightReservationModel)
 {
     FlightReservationModel = flightReservationModel;
 }
 public UpdateReservationCommand(FlightReservationModel flightReservationModel)
 {
     FlightReservationModel = flightReservationModel;
 }
        public bool DateCheck(FlightReservationModel flightReservationModel)
        {
            var result = flightReservationModel.DateTo > flightReservationModel.DateFrom;

            return(result);
        }