public async Task <IActionResult> PostAvioRate(long id, [FromBody] AvioFlightRatingDTO model)
        {
            if (ModelState.IsValid)
            {
                FlightReservation flightReser = await _reservationService.GetFlightReservationById(id);

                Flight flight = await _flightService.GetFlight(flightReser.FlightId);

                RegularUser user = await _userService.GetCurrentUser();

                AvioCompanyRating acRate = new AvioCompanyRating();
                acRate.AvioCompanyId       = flight.AvioCompanyId;
                acRate.FlightReservationId = id;
                acRate.UserId = user.Id;
                acRate.Rate   = model.ratingAvioCompany;

                FlightRating flightRate = new FlightRating();
                flightRate.FlightId            = flight.FlightId;
                flightRate.FlightReservationId = id;
                flightRate.Rate   = model.ratingFlight;
                flightRate.UserId = user.Id;

                await _userService.AddAvioRating(acRate);

                await _userService.AddFlightRating(flightRate);

                return(Ok(200));
            }
            return(BadRequest());
        }
Пример #2
0
        public async Task <object> RateReservation(FlightRating flightRating)
        {
            //var flight = (await _context.Flight.ToListAsync()).FirstOrDefault(f => f.Id == flightRating.FlightId);
            var reservation = (await _context.Reservation.ToListAsync()).FirstOrDefault(r => r.Id == flightRating.ReservationId);
            var flight      = reservation.AirlineReservation.Flight;
            var rating      = new FlightRating()
            {
                Rating        = flightRating.Rating,
                ReservationId = reservation.Id,
                UserEmail     = flightRating.UserEmail
            };

            try
            {
                flight.RateSum = flight.RateSum + flightRating.Rating;
                flight.RateNo  = flight.RateNo + 1;
                flight.Rating  = (double)flight.RateSum / flight.RateNo;

                reservation.AirlineReservation.Rating = flightRating.Rating;

                await _context.SaveChangesAsync();
            }
            catch (Exception e)
            {
                Trace.WriteLine(e.Message);
                return(HttpStatusCode.BadRequest);
            }

            await _context.FlightRating.AddAsync(rating);

            await _context.SaveChangesAsync();

            return(rating);
        }
        public async Task AddFlightRating(FlightRating fr)
        {
            await _context.FlightRatings.AddAsync(fr);

            await _context.SaveChangesAsync();
        }
Пример #4
0
 public async Task <object> RateReservation(FlightRating reservation)
 {
     return(await _reservationService.RateReservation(reservation));
 }
Пример #5
0
 public async Task AddFlightRating(FlightRating fr)
 {
     await _userRepository.AddFlightRating(fr);
 }