示例#1
0
        public async Task DeleteAirport(AirPortBE airport, CancellationToken token)
        {
            var existingAirport = await _flightplanner_entities.Airport.Where(x => x.Id == airport.Id).FirstOrDefaultAsync();

            if (existingAirport != null)
            {
                _flightplanner_entities.Airport.Remove(existingAirport);
                await Save(token);
            }
        }
示例#2
0
 public async Task DeleteAirportBL(AirPortBE airport, CancellationToken token)
 {
     try
     {
         await _data.DeleteAirport(airport, token);
     }
     catch (Exception ex)
     {
         _logError.Log(ex);
     }
 }
示例#3
0
        public async Task EditAirportBL(AirPortBE airport, CancellationToken token)
        {
            try
            {
                if (string.IsNullOrEmpty(airport.Name) || string.IsNullOrEmpty(airport.CountryName))
                {
                    throw new ArgumentException();
                }

                await _data.EditAirport(airport, token);
            }
            catch (Exception ex)
            {
                _logError.Log(ex);
            }
        }
示例#4
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"));
        }
示例#5
0
        internal static Airport Map(AirPortBE airportBE, Airport result = null)
        {
            if (result == null)
            {
                result = new Airport();
            }

            result.Id          = airportBE.Id;
            result.Code        = airportBE.Code;
            result.Name        = airportBE.Name;
            result.CityCode    = airportBE.CityCode;
            result.CityName    = airportBE.CityName;
            result.CountryName = airportBE.CountryName;
            result.CountryCode = airportBE.CountryCode;
            result.TimeZone    = airportBE.TimeZone;
            result.Lat         = airportBE.Latitude;
            result.Lon         = airportBE.Longitude;
            result.NumAirports = airportBE.NumAirports;
            result.City        = airportBE.City;

            return(result);
        }
示例#6
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"));
        }
示例#7
0
        internal static AirPortBE Map(Airport airport)
        {
            if (airport == null)
            {
                return(null);
            }

            AirPortBE result = new AirPortBE();

            result.Id          = airport.Id;
            result.Code        = airport.Code;
            result.Name        = airport.Name;
            result.CityCode    = airport.CityCode;
            result.CityName    = airport.CityName;
            result.CountryName = airport.CountryName;
            result.CountryCode = airport.CountryCode;
            result.TimeZone    = airport.TimeZone;
            result.Latitude    = airport.Lat;
            result.Longitude   = airport.Lon;
            result.NumAirports = airport.NumAirports;
            result.City        = airport.City;

            return(result);
        }
示例#8
0
 public async Task AddAirport(AirPortBE airport, CancellationToken token)
 {
     _flightplanner_entities.Airport.Add(AirPortMap.Map(airport));
     await Save(token);
 }