[HttpPost] //POST localhost/Flights
        public async Task <IActionResult> AddFlight(AddFlightDto newFlight)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            return(Ok(await _flightService.AddFlight(newFlight)));
        }
Пример #2
0
        public async Task <ServiceResponse <List <Flight> > > AddFlight(AddFlightDto newFlight) //"return":"2020-06-24T02:28" ovako izgleda sa klijentske strane
        // 01-Jan-01 12:00:00 AM serverska
        {
            ServiceResponse <List <Flight> > serviceResponse = new ServiceResponse <List <Flight> >();

            try
            {
                Airline airline = await _context.Airlines
                                  .Include(a => a.Flights)
                                  .FirstOrDefaultAsync(a => a.Id == newFlight.Airline.Id);

                Flight flight = _mapper.Map <Flight>(newFlight);
                var    vreme  = flight.LandingTime.Subtract(flight.TakeoffTime);
                flight.Duration = vreme.Hours + "h" + vreme.Minutes + "m";

                List <Seat> seats = new List <Seat>();
                for (int i = 1; i <= newFlight.SeatsLeft; i++)
                {
                    seats.Add(new Seat()
                    {
                        Number = i,
                        State  = SeatState.FREE,
                        Flight = flight
                    });
                }
                flight.Seats = seats;

                airline.Flights.Add(flight);
                _context.Airlines.Update(airline);
                await _context.SaveChangesAsync();

                //var duration = newFlight.LandingTime.Subtract(newFlight.TakeoffTime);
                //await _context.Flights.AddAsync(flight);
                //await _context.SaveChangesAsync();
                serviceResponse.Data = airline.Flights;
            }
            catch (Exception ex)
            {
                serviceResponse.Success = false;
                serviceResponse.Message = ex.Message;
            }

            return(serviceResponse);
        }