Example #1
0
 public Task AddFlight(FlightBE flight, CancellationToken token)
 {
     _flightplanner_entities.Flight.Add(FlightMap.Map(flight));
     _flightplanner_entities.SaveChanges();
     return(null);
     //await Save(token);
 }
Example #2
0
        public async Task DeleteFlight(FlightBE flight, CancellationToken token)
        {
            var existingFlight = await _flightplanner_entities.Flight.Where(x => x.Id == flight.Id).FirstOrDefaultAsync();

            if (existingFlight != null)
            {
                _flightplanner_entities.Flight.Remove(existingFlight);
                await Save(token);
            }
        }
Example #3
0
 public async Task DeleteFlightBL(FlightBE flight, CancellationToken token)
 {
     try
     {
         await _data.DeleteFlight(flight, token);
     }
     catch (Exception ex)
     {
         _logError.Log(ex);
     }
 }
Example #4
0
        public async Task EditFlightBL(FlightBE flight, CancellationToken token)
        {
            try
            {
                if (flight.FkDeparture == null || flight.FkArrival == null || flight.FkUser == null || flight.FkAirCraft == null)
                {
                    throw new ArgumentException();
                }

                await _data.EditFlight(flight, token);
            }
            catch (Exception ex)
            {
                _logError.Log(ex);
            }
        }
Example #5
0
        internal static Flight Map(FlightBE flightBE, Flight result = null)
        {
            if (result == null)
            {
                result = new Flight();
            }

            result.Id                  = flightBE.Id;
            result.FkDeparture         = flightBE.FkDeparture;
            result.FkArrival           = flightBE.FkArrival;
            result.FkUser              = flightBE.FkUser;
            result.FkAircraft          = flightBE.FkAirCraft;
            result.Distance            = flightBE.Distance;
            result.DistanceUnit        = flightBE.DistanceUnit;
            result.TripFuelConsumption = flightBE.TripFuelConsumption;

            return(result);
        }
Example #6
0
        internal static FlightBE Map(Flight flight)
        {
            if (flight == null)
            {
                return(null);
            }

            FlightBE result = new FlightBE();

            result.Id                  = flight.Id;
            result.FkDeparture         = flight.FkDeparture;
            result.FkArrival           = flight.FkArrival;
            result.FkUser              = flight.FkUser;
            result.FkAirCraft          = flight.FkAircraft;
            result.Distance            = flight.Distance;
            result.DistanceUnit        = flight.DistanceUnit;
            result.TripFuelConsumption = flight.TripFuelConsumption;

            return(result);
        }
Example #7
0
        public async Task <IActionResult> EditFlight(FlightViewModel newflightviewmodel, CancellationToken token)
        {
            newflightviewmodel.AirCrafts = await _aircraftBL.GetAircraftsBL();

            FlightBE flightToEdit = new FlightBE();
            double   newDistanceTrip;
            double   newTripfuelConsumption;
            string   idCurrentUserString;

            AirPortBE  newDepartureAirport = new AirPortBE();
            AirPortBE  newArrivalAirPort   = new AirPortBE();
            AirCraftBE newAirCraft         = new AirCraftBE();

            idCurrentUserString = HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;



            newDepartureAirport = await _airportBL.GetAirportByCodeBL(newflightviewmodel.DepartureAirPortCode);

            newArrivalAirPort = await _airportBL.GetAirportByCodeBL(newflightviewmodel.ArrivalAirPortCode);

            newAirCraft = await _aircraftBL.GetAircraftByIdBL(newflightviewmodel.AirCraftId);


            newDistanceTrip = distance(double.Parse(newDepartureAirport.Latitude, System.Globalization.CultureInfo.InvariantCulture), double.Parse(newDepartureAirport.Longitude), double.Parse(newArrivalAirPort.Latitude), double.Parse(newArrivalAirPort.Longitude), 'K');

            newTripfuelConsumption = ((newAirCraft.FuelConsumption * newDistanceTrip) / 1000) + (double)newAirCraft.FuelConsumptionTakeoff;

            flightToEdit.Id                  = newflightviewmodel.Id;
            flightToEdit.FkDeparture         = newDepartureAirport.Id;
            flightToEdit.FkArrival           = newArrivalAirPort.Id;
            flightToEdit.FkUser              = idCurrentUserString;
            flightToEdit.FkAirCraft          = newAirCraft.Id;
            flightToEdit.Distance            = newDistanceTrip;
            flightToEdit.TripFuelConsumption = newTripfuelConsumption;
            flightToEdit.DistanceUnit        = "KM"; // To put in a config file

            await _flightBL.EditFlightBL(flightToEdit, token);

            return(RedirectToAction("Index", "Home"));
        }
Example #8
0
        public async Task <IActionResult> AddFlight(FlightToAddViewModel flightToAddViewModel, CancellationToken token)
        {
            AirPortBE  departureAirport = new AirPortBE();
            AirPortBE  arrivalAirport   = new AirPortBE();
            AirCraftBE aircraftUsed     = new AirCraftBE();

            FlightBE flightToAdd = new FlightBE();

            string idCurrentUserString;
            double distanceTrip;
            double tripfuelConsumption;

            idCurrentUserString = HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;
            departureAirport    = await _airportBL.GetAirportByCodeBL(flightToAddViewModel.CodeFlightDeparture);

            arrivalAirport = await _airportBL.GetAirportByCodeBL(flightToAddViewModel.CodeFlightArrival);

            aircraftUsed = await _aircraftBL.GetAircraftByIdBL(flightToAddViewModel.FkAirCraft);

            /* We are calculating the distance between two airports using the latitude/longitude of those points */
            distanceTrip = distance(double.Parse(departureAirport.Latitude, System.Globalization.CultureInfo.InvariantCulture), double.Parse(departureAirport.Longitude), double.Parse(arrivalAirport.Latitude), double.Parse(arrivalAirport.Longitude), 'K');

            /* We have the information of the consumption of each aircraft in Kilogram by 1000KM in the database,
             *              so we are doing a simple rule of three to have the consomation for the distance traveled,
             *              in addition to that we add the additional fuel consumption during the takeoff for each aircraft */
            tripfuelConsumption = ((aircraftUsed.FuelConsumption * distanceTrip) / 1000) + (double)aircraftUsed.FuelConsumptionTakeoff;

            flightToAdd.FkDeparture         = departureAirport.Id;
            flightToAdd.FkArrival           = arrivalAirport.Id;
            flightToAdd.FkUser              = idCurrentUserString;
            flightToAdd.FkAirCraft          = aircraftUsed.Id;
            flightToAdd.Distance            = distanceTrip;
            flightToAdd.TripFuelConsumption = tripfuelConsumption;
            flightToAdd.DistanceUnit        = "KM"; // To put in a config file

            await _flightBL.AddFlightBL(flightToAdd, token);

            return(RedirectToAction("AllFlights", "Flight"));
        }