Beispiel #1
0
        public async Task DeleteAircraft(AirCraftBE aircraft, CancellationToken token)
        {
            var existingAircraft = await _flightplanner_entities.Aircraft.Where(x => x.Id == aircraft.Id).FirstOrDefaultAsync();

            if (existingAircraft != null)
            {
                _flightplanner_entities.Aircraft.Remove(existingAircraft);
                await Save(token);
            }
        }
Beispiel #2
0
 public async Task DeleteAircraftBL(AirCraftBE aircraft, CancellationToken token)
 {
     try
     {
         await _data.DeleteAircraft(aircraft, token);
     }
     catch (Exception ex)
     {
         _logError.Log(ex);
     }
 }
Beispiel #3
0
        internal static Aircraft Map(AirCraftBE aircraftBE, Aircraft result = null)
        {
            if (result == null)
            {
                result = new Aircraft();
            }

            result.Id                     = aircraftBE.Id;
            result.Model                  = aircraftBE.Model;
            result.FuelConsumption        = aircraftBE.FuelConsumption;
            result.FuelConsumptionTakeoff = aircraftBE.FuelConsumptionTakeoff;
            result.ConsumptionUnit        = aircraftBE.ConsumptionUnit;

            return(result);
        }
Beispiel #4
0
        public async Task EditAircraftBL(AirCraftBE aircraft, CancellationToken token)
        {
            try
            {
                if (string.IsNullOrEmpty(aircraft.Model) || aircraft.FuelConsumption == null)
                {
                    throw new ArgumentException();
                }

                await _data.EditAircraft(aircraft, token);
            }
            catch (Exception ex)
            {
                _logError.Log(ex);
            }
        }
Beispiel #5
0
        internal static AirCraftBE Map(Aircraft aircraft)
        {
            if (aircraft == null)
            {
                return(null);
            }

            AirCraftBE result = new AirCraftBE();

            result.Id                     = aircraft.Id;
            result.Model                  = aircraft.Model;
            result.FuelConsumption        = aircraft.FuelConsumption;
            result.FuelConsumptionTakeoff = aircraft.FuelConsumptionTakeoff;
            result.ConsumptionUnit        = aircraft.ConsumptionUnit;

            return(result);
        }
Beispiel #6
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"));
        }
Beispiel #7
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"));
        }
Beispiel #8
0
 public async Task AddAircraft(AirCraftBE aircraft, CancellationToken token)
 {
     _flightplanner_entities.Aircraft.Add(AirCraftMap.Map(aircraft));
     await Save(token);
 }