public IActionResult CreateFlight([FromBody] FlightDto flight) { if (flight == null) { return(BadRequest()); } // custom validation to make sure duplicate flights don't get created if (_flightInfoRepository.GetFlightByFlightNumber(flight.FlightNumber) != null) { _logger.LogCritical("Flight Already Exists"); ModelState.AddModelError("Flight", "Flight Already Exists."); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var flightEntity = AutoMapper.Mapper.Map <Flight>(flight); _flightInfoRepository.AddFlight(flightEntity); if (!_flightInfoRepository.Save()) { _logger.LogCritical($"An Error Occured While saving flight with flight number: {flightEntity.FlightNumber}"); return(StatusCode(500, "An Error Occured While Handing Your Request.")); } var newFlight = AutoMapper.Mapper.Map <FlightDto>(flightEntity); return(CreatedAtRoute("GetFlightByFlightNumber", new { flightNumber = newFlight.FlightNumber }, newFlight)); }
public IActionResult MakeBooking([FromBody] MakeBookingDto booking) { try { if (booking == null) { return(BadRequest()); } //if (_flightInfoRepository.GetFlightByFlightNumber(booking.FlightNumber) == null) if (_flightInfoRepository.GetFlightByFlightNumber(booking.FlightNumber) == null) { ModelState.AddModelError("Flight", "Flight does not Exists."); //_logger.LogCritical($"Flight does not Exists for flight Number : {0}", booking.FlightNumber); _logger.LogCritical($"Flight does not Exists for flight Number : {0}", booking.FlightNumber); } if (_flightInfoRepository.GetPassengersByNameAndMobile(booking.Passenger.Name, booking.Passenger.Mobile) == null) { ModelState.AddModelError("Passenge", "Passenger does not Exists."); _logger.LogCritical($"Passenge does not Exists for Passenge Name: {0} and Mobile: {1}", booking.Passenger.Name, booking.Passenger.Mobile); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var flightBookingEntity = AutoMapper.Mapper.Map <FlightBooking>(booking); DateTime bookingDate = new DateTime(booking.Date.Year, booking.Date.Month, booking.Date.Day, 0, 0, 0); flightBookingEntity.Date = bookingDate; flightBookingEntity.Flight = new Flight(); //flightBookingEntity.Flight.Id = _flightInfoRepository.GetFlightByFlightNumber(booking.FlightNumber).Id; flightBookingEntity.Flight.Id = _flightInfoRepository.GetFlightByFlightNumber(booking.FlightNumber).Id; flightBookingEntity.Passenger = new Passenger(); flightBookingEntity.Passenger.Id = _flightInfoRepository.GetPassengersByNameAndMobile(booking.Passenger.Name, booking.Passenger.Mobile).Id; _flightInfoRepository.MakeBooking(flightBookingEntity); if (!_flightInfoRepository.Save()) { _logger.LogCritical("An Error Occured While Handing Your Request."); return(StatusCode(500, "An Error Occured While Handing Your Request.")); } var newBooking = AutoMapper.Mapper.Map <MakeBookingDto>(flightBookingEntity); return(CreatedAtRoute("GetBookingById", new { bookingId = flightBookingEntity.Id }, newBooking)); } catch (Exception ex) { _logger.LogCritical("An Error Occured in MakeBooking: {0} ", ex.ToString()); return(StatusCode(500, "An Error Occured While Handing Your Request.")); } }
public IActionResult CreatePassenger([FromBody] PassengerDto passenger) { try { if (passenger == null) { return(BadRequest()); } // custom validation to make sure duplicate passengers don't get created if (_flightInfoRepository.GetPassengersByNameAndMobile(passenger.Name, passenger.Mobile) != null) { ModelState.AddModelError("Passenger", "Passenger Already Exists."); _logger.LogCritical($"Passenger Already Exists with Name: {passenger.Name}, mobile: {passenger.Mobile}"); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var passengerEntity = AutoMapper.Mapper.Map <Passenger>(passenger); _flightInfoRepository.AddPassenger(passengerEntity); if (!_flightInfoRepository.Save()) { _logger.LogCritical("An Error Occured While Handing Your Request."); return(StatusCode(500, "An Error Occured While Handing Your Request.")); } var newPassenger = AutoMapper.Mapper.Map <PassengerDto>(passengerEntity); return(CreatedAtRoute("GetPassengerById", new { id = passengerEntity.Id }, newPassenger)); } catch (Exception ex) { _logger.LogCritical("An Error Occured While Handing Your Request. {0}", ex.ToString()); return(StatusCode(500, "An Error Occured While Handing Your Request.")); } }