private ChallengeViewModel GetChallengerView(int pax, int cargo, long paxWeight, string departure, string arrival, string type, long totalPayment, long distance, string weightUnit, int jobId = 0) { var departureModel = AirportDatabaseFile.FindAirportInfo(departure); var arrivalModel = AirportDatabaseFile.FindAirportInfo(arrival); var model = new ChallengeViewModel() { WeightUnit = GetWeightUnit(Request), ArrivalICAO = arrivalModel.ICAO, DepartureICAO = departureModel.ICAO, Cargo = cargo, Dist = distance, Pax = pax, PaxWeight = paxWeight, Type = type, TotalPayment = totalPayment, JobId = jobId }; switch (type) { case "Civilian": model.Briefing = $@"The biggest soccer team charter an unscheduled flight to participate in the championship. The flight will depart from {departureModel.City} with {pax} players and all team delegation. For the team's luggage and equipment will be loaded {model.Cargo}{weightUnit} in the hold of the plane. The final destination is {arrivalModel.City} airport. The total payment involved is ${model.TotalPayment}. The captain will earn ${model.PaymentCaptain} when complete. The creator of the challenge will earn ${model.PaymentCreator}."; model.WaterMarkImg = "/Content/img/challenger/civilian-water-mark-002.png"; break; case "Military": model.Briefing = $@"The order of crew is transport the Defence Minister and his retinue of peace from {departureModel.City} to {arrivalModel.City} (distance is {model.Dist} NM). For this mission, the aircraft will take {pax} people on board and {model.Cargo}{weightUnit} of cargo (total payload is {model.TotalPayload}{weightUnit}). The total payment involved is ${model.TotalPayment}. The captain will earn ${model.PaymentCaptain} when complete this mission. The creator of the challenge will earn ${model.PaymentCreator}."; model.WaterMarkImg = "/Content/img/challenger/military-water-mark-002.png"; break; case "Rescue": model.Briefing = $@"A group of students are lost in a park at {arrivalModel.City}. The only hope for the group is a speedy air rescue. The rescue aircraft will take off from {departureModel.City} with {pax} doctors and firefighters aboard, and {model.Cargo}{weightUnit} of rescue and fire containment equipment. The total payment involved is ${model.TotalPayment}. The captain will earn ${model.PaymentCaptain} when complete this mission. The creator of the challenge will earn ${model.PaymentCreator}."; model.WaterMarkImg = "/Content/img/challenger/rescue-water-mark-001.png"; break; default: break; } return(model); }
public async Task <HttpResponseMessage> FinishJobMSFS() { var response = Request.CreateResponse(HttpStatusCode.BadRequest, "Server error"); try { string icaoStr = ""; string latitude = Request.Headers.GetValues("Latitude").First(); string longitude = Request.Headers.GetValues("Longitude").First(); var airports = AirportDatabaseFile.FindClosestLocation(Convert.ToDouble(latitude.Replace(",", ".")), Convert.ToDouble(longitude.Replace(",", "."))); if (airports.Count > 0) { icaoStr = airports.First().ICAO; } string payloadStr = Request.Headers.GetValues("Payload").First().Replace(",", "."); string usarIdStr = Request.Headers.GetValues("UserId").First().Replace("\"", ""); string fuelWeightStr = Request.Headers.GetValues("FuelWeight").First().Replace(",", "."); string planeDescriptionStr = Request.Headers.GetValues("PlaneDescription").First().Replace(",", "."); response = FinishJob(icaoStr, payloadStr, usarIdStr, fuelWeightStr, "MSFS", planeDescriptionStr); } catch (Exception e) { ErrorLog.GetDefault(null).Log(new Error(e)); response = Request.CreateResponse(HttpStatusCode.BadRequest, "Process error."); } return(response); }
private void CheckWindowPopup() { if (_simVarsModel != null && ckbPopupParkingBrake.IsChecked.Value) { if (_startJobResponseInfo == null) { if (!_startPopUpShown && !_simVarsModel.ParkingBrakeOn) { Application.Current.MainWindow.WindowState = WindowState.Normal; _startPopUpShown = true; } } else { if (!_finishPopUpShown) { bool isCloseToArrivel = AirportDatabaseFile.CheckClosestLocation(_simVarsModel.Latitude, _simVarsModel.Longitude, _startJobResponseInfo.ArrivalLAT, _startJobResponseInfo.ArrivalLON); if (isCloseToArrivel && _simVarsModel.ParkingBrakeOn) { Application.Current.MainWindow.WindowState = WindowState.Normal; _finishPopUpShown = true; imgStart.Visibility = Visibility.Hidden; imgFinish.Visibility = Visibility.Visible; } } } } }
public ActionResult FboProfile(int airlineId) { var dbContext = new ApplicationDbContext(); var jobsDone = dbContext.JobDbModels.Where(j => j.IsDone); var topArrival = jobsDone.GroupBy(q => q.ArrivalICAO) .OrderByDescending(gp => gp.Count()) .Select(g => g.Key) .Take(8).ToList(); var topAirports = new List <AirportModel>(); topArrival.ForEach(x => topAirports.Add(AirportDatabaseFile.FindAirportInfo(x))); var test = topAirports.Select(t => t.ICAO).ToList(); var fboInDB = dbContext.AirlineFbo.Where(x => test.Contains(x.Icao)).ToList(); var airlineFboView = GetFboView(topAirports, fboInDB); var hiredFBOs = dbContext.AirlineFbo.Where(x => x.Airline.Id == airlineId).ToList(); hiredFBOs.ForEach(x => x.Name = AirportDatabaseFile.FindAirportInfo(x.Icao).Name); airlineFboView.FboHired = new List <AirlineFboDbModel>(); airlineFboView.FboHired.AddRange(hiredFBOs); airlineFboView.CurrentAirline = dbContext.AirlineDbModels.FirstOrDefault(x => x.Id == airlineId); return(PartialView("AirlineFboView", airlineFboView)); }
public ActionResult FilterFboList(string icao, int airlineId) { var dbContext = new ApplicationDbContext(); var airports = AirportDatabaseFile.GetAllAirportInfo().Where(x => x.ICAO.ToLower().StartsWith(icao.ToLower())).ToList(); var temp = airports.Select(t => t.ICAO).ToList(); var fboInDB = dbContext.AirlineFbo.Where(x => temp.Contains(x.Icao)).ToList(); var airlineFboView = GetFboView(airports, fboInDB); airlineFboView.CurrentAirline = dbContext.AirlineDbModels.FirstOrDefault(x => x.Id == airlineId); return(PartialView("FboResultsView", airlineFboView)); }
public int CalcDistance(string departure, string arrival) { var departureInfo = AirportDatabaseFile.FindAirportInfo(departure); var arrivalInfo = AirportDatabaseFile.FindAirportInfo(arrival); if (departureInfo != null && arrivalInfo != null) { var departureCoord = new GeoCoordinate(departureInfo.Latitude, departureInfo.Longitude); var arrivalCoord = new GeoCoordinate(arrivalInfo.Latitude, arrivalInfo.Longitude); var distMeters = departureCoord.GetDistanceTo(arrivalCoord); var distMiles = (int)DataConversion.ConvertMetersToMiles(distMeters); return(distMiles); } return(0); }
public ActionResult AlternativeTips(string destination, int range) { var listTips = new List <SearchJobTipsViewModel>(); if (!string.IsNullOrEmpty(destination) && destination.Length > 2) { var destinationInfo = AirportDatabaseFile.FindAirportInfo(destination); if (destinationInfo == null) { return(null); } var destCoord = new GeoCoordinate(destinationInfo.Latitude, destinationInfo.Longitude); foreach (var airportInfo in AirportDatabaseFile.GetAllAirportInfo().OrderByDescending(x => x.RunwaySize)) { if (airportInfo.ICAO.ToUpper() != destination.ToUpper()) { var airportInfoCoord = new GeoCoordinate(airportInfo.Latitude, airportInfo.Longitude); var distMeters = destCoord.GetDistanceTo(airportInfoCoord); var distMiles = (int)DataConversion.ConvertMetersToMiles(distMeters); if (distMiles < range) { var viewModel = new SearchJobTipsViewModel() { AirportICAO = airportInfo.ICAO, AirportName = airportInfo.Name, Distance = distMiles, AirportElevation = airportInfo.Elevation, AirportRunwaySize = airportInfo.RunwaySize, AirportTrasition = airportInfo.Trasition, }; listTips.Add(viewModel); } } } } else { return(null); } TempData["RangeValue"] = range; return(PartialView("AlternativeTipsPartialView", listTips)); }
public ActionResult HireFbo(string icao) { var dbContext = new ApplicationDbContext(); var airport = AirportDatabaseFile.FindAirportInfo(icao); var fboInDB = dbContext.AirlineFbo.Where(x => x.Icao == icao); if (fboInDB.Count() >= 15) { return(Json(new { error = true, responseText = "This FBO is not available. All contracts were hired." }, JsonRequestBehavior.AllowGet)); } var user = dbContext.Users.FirstOrDefault(u => u.UserName == User.Identity.Name); var userStatistics = dbContext.StatisticsDbModels.FirstOrDefault(x => x.User.Id == user.Id); var airline = dbContext.AirlineDbModels.FirstOrDefault(a => a.Id == userStatistics.Airline.Id && a.UserId == user.Id); if (airline == null) { return(Json(new { error = true, responseText = "You must be the owner of the airline to hire FBOs." }, JsonRequestBehavior.AllowGet)); } if (fboInDB.Any(x => x.Airline.Id == airline.Id)) { return(Json(new { error = true, responseText = "This airline already hired the " + icao + " FBO." }, JsonRequestBehavior.AllowGet)); } var airlineFbo = GetCalcAirlineFbo(airport, 0); airlineFbo.Airline = airline; if (airline.BankBalance < airlineFbo.Price) { return(Json(new { error = true, responseText = "Your airline doesn't have enough money to hire this FBO." }, JsonRequestBehavior.AllowGet)); } airline.BankBalance = airline.BankBalance - airlineFbo.Price; // debito na airline dbContext.AirlineFbo.Add(airlineFbo); dbContext.SaveChanges(); var airlineFboView = new AirlineFboView(); airlineFboView.FboHired = dbContext.AirlineFbo.Where(x => x.Airline.Id == airline.Id).ToList(); airlineFboView.CurrentAirline = airline; return(PartialView("FboAirlineView", airlineFboView)); }
private async void btnStart_Click(object sender, RoutedEventArgs e) { Mouse.OverrideCursor = System.Windows.Input.Cursors.Wait; btnStart.IsEnabled = false; btnFinish.IsEnabled = false; LoadConnect(); Thread.Sleep(500); try { if (_simVarsModel != null) { _simVarsModel.UserId = _userId; _startJobResponseInfo = await _flightJobsConnectorClientAPI.StartJob(_simVarsModel); var arrivalInfo = AirportDatabaseFile.FindAirportInfo(_startJobResponseInfo.ArrivalICAO); _startJobResponseInfo.ArrivalLAT = arrivalInfo.Latitude; _startJobResponseInfo.ArrivalLON = arrivalInfo.Longitude; AddLogMessage(_startJobResponseInfo.ResultMessage, LogMessageTypeEnum.Success); btnFinish.IsEnabled = true; jobListDataGrid.IsEnabled = false; imgStart.Visibility = Visibility.Visible; imgFinish.Visibility = Visibility.Hidden; } else { btnStart.IsEnabled = true; btnFinish.IsEnabled = false; } } catch (Exception ex) { btnStart.IsEnabled = true; btnFinish.IsEnabled = false; AddLogMessage(ex.Message, LogMessageTypeEnum.Warnning); } finally { Mouse.OverrideCursor = System.Windows.Input.Cursors.Arrow; } }
private Dictionary <string, long> GetArrivalRanking(ApplicationDbContext dbContext, bool fromCurrentUser) { var jobsDone = dbContext.JobDbModels.Where(j => j.IsDone); if (fromCurrentUser) { var user = dbContext.Users.FirstOrDefault(u => u.UserName == User.Identity.Name); if (user != null) { jobsDone = jobsDone.Where(j => j.User.Id == user.Id); } } var s = jobsDone.GroupBy(q => q.ArrivalICAO) .OrderByDescending(gp => gp.Count()) .Select(g => g.Key) .Take(10).ToList(); var dic = new Dictionary <string, long>(); s.ForEach(x => dic.Add(x + " - " + AirportDatabaseFile.FindAirportInfo(x).Name, jobsDone.Count(j => j.ArrivalICAO == x))); return(dic); }
public ActionResult ArrivalTips(string departure) { var listTips = new List <SearchJobTipsViewModel>(); if (!string.IsNullOrEmpty(departure) && departure.Length > 2) { /* Get destinations from current departure user jobs */ var departureInfo = AirportDatabaseFile.FindAirportInfo(departure); if (departureInfo == null) { return(null); } var departureCoord = new GeoCoordinate(departureInfo.Latitude, departureInfo.Longitude); var dbContext = new ApplicationDbContext(); var user = dbContext.Users.FirstOrDefault(u => u.UserName == User.Identity.Name); var allUserJobs = FilterJobs(user, ""); var filteredUserJobs = FilterJobs(user, departure); foreach (var job in filteredUserJobs) { var jobAirportInfo = AirportDatabaseFile.FindAirportInfo(job.ArrivalICAO); listTips.Add(new SearchJobTipsViewModel() { IdJob = job.Id, AirportICAO = job.ArrivalICAO, Cargo = job.Cargo, Pax = job.Pax, Pay = job.Pay, Payload = job.Payload, AirportName = jobAirportInfo.Name, AirportElevation = jobAirportInfo.Elevation, AirportRunwaySize = jobAirportInfo.RunwaySize, AirportTrasition = jobAirportInfo.Trasition, Distance = job.Dist }); } var countRandon = new Random(); var indexRandon = new Random(); if (allUserJobs.Count() > 1) { var index = indexRandon.Next(1, allUserJobs.Count() - 1); var count = countRandon.Next(1, allUserJobs.Count() - index); /* Get destinations from all user jobs */ foreach (var job in allUserJobs.GetRange(index, count).Take(7)) { if (!listTips.Exists(x => x.AirportICAO == job.ArrivalICAO) && job.ArrivalICAO != departure) { var jobArrivalAirportInfo = AirportDatabaseFile.FindAirportInfo(job.ArrivalICAO); var arrivalCoord = new GeoCoordinate(jobArrivalAirportInfo.Latitude, jobArrivalAirportInfo.Longitude); var distMeters = departureCoord.GetDistanceTo(arrivalCoord); var distMiles = (int)DataConversion.ConvertMetersToMiles(distMeters); listTips.Add(new SearchJobTipsViewModel() { AirportICAO = job.ArrivalICAO, AirportName = jobArrivalAirportInfo.Name, AirportElevation = jobArrivalAirportInfo.Elevation, AirportRunwaySize = jobArrivalAirportInfo.RunwaySize, AirportTrasition = jobArrivalAirportInfo.Trasition, Distance = distMiles }); } } } /* Random jobs */ var tempListTips = new List <SearchJobTipsViewModel>(); foreach (var airportInfo in AirportDatabaseFile.GetAllAirportInfo()) { if (airportInfo.ICAO.ToUpper() != departureInfo.ICAO.ToUpper()) { var airportInfoCoord = new GeoCoordinate(airportInfo.Latitude, airportInfo.Longitude); var distMeters = departureCoord.GetDistanceTo(airportInfoCoord); var distMiles = (int)DataConversion.ConvertMetersToMiles(distMeters); if (distMiles < 600) { var viewModel = new SearchJobTipsViewModel() { AirportICAO = airportInfo.ICAO, AirportName = airportInfo.Name, Distance = distMiles, AirportElevation = airportInfo.Elevation, AirportRunwaySize = airportInfo.RunwaySize, AirportTrasition = airportInfo.Trasition, }; tempListTips.Add(viewModel); } } } var random = new Random(); var randomListTips = new List <SearchJobTipsViewModel>(); for (int i = tempListTips.Count - 1; i >= 1; i--) { int other = random.Next(0, i + 1); randomListTips.Add(tempListTips[other]); } listTips.AddRange(randomListTips.Take(10)); } else { return(null); } return(PartialView("ArrivalTipsPartialView", listTips)); }
public async Task <HttpResponseMessage> FindClosestLocationTest(string lat, string lon) { var list = AirportDatabaseFile.FindClosestLocation(Convert.ToDouble(lat), Convert.ToDouble(lon)); return(Request.CreateResponse(HttpStatusCode.OK, list.Select(x => x.ICAO))); }
public JsonResult GetMapInfo(string departure, string arrival, string alternative) { /* * { * "lat":53.3539, * "lng":-2.275, * "name":"MANCHESTER", * "icon_url":"/assets/airport-e91142e842d5da7b82cfca5c7c9ef6ad.png", * "icon_center_x":13, * "icon_center_y":13 * }*/ var departureInfo = AirportDatabaseFile.FindAirportInfo(departure); var arrivalInfo = AirportDatabaseFile.FindAirportInfo(arrival); var alternativeInfo = string.IsNullOrEmpty(alternative) ? null : AirportDatabaseFile.FindAirportInfo(alternative); if (departureInfo != null && arrivalInfo != null) { var departureCoord = new GeoCoordinate(departureInfo.Latitude, departureInfo.Longitude); var arrivalCoord = new GeoCoordinate(arrivalInfo.Latitude, arrivalInfo.Longitude); var depJson = new { isRoute = true, lat = departureCoord.Latitude, lng = departureCoord.Longitude, name = departureInfo.Name, info = "Departure airport", icao = departureInfo.ICAO, runway_size = departureInfo.RunwaySize + "ft", elevation = departureInfo.Elevation + "ft", trasition = departureInfo.Trasition + "ft", icon_url = "../Content/img/departing.png", icon_center_x = 13, icon_center_y = 13 }; var arrJson = new { isRoute = true, lat = arrivalCoord.Latitude, lng = arrivalCoord.Longitude, name = arrivalInfo.Name, info = "Arrival airport", icao = arrivalInfo.ICAO, runway_size = arrivalInfo.RunwaySize + "ft", elevation = arrivalInfo.Elevation + "ft", trasition = arrivalInfo.Trasition + "ft", icon_url = "../Content/img/arrival.png", icon_center_x = 13, icon_center_y = 13 }; var jsonList = new List <object>(); jsonList.Add(depJson); jsonList.Add(arrJson); if (alternativeInfo != null) { var alternativeCoord = new GeoCoordinate(alternativeInfo.Latitude, alternativeInfo.Longitude); var altJson = new { isRoute = true, lat = alternativeCoord.Latitude, lng = alternativeCoord.Longitude, name = alternativeInfo.Name, info = "Alternative airport", icao = alternativeInfo.ICAO, runway_size = alternativeInfo.RunwaySize + "ft", elevation = alternativeInfo.Elevation + "ft", trasition = alternativeInfo.Trasition + "ft", icon_url = "../Content/img/alternative.png", icon_center_x = 13, icon_center_y = 13 }; jsonList.Add(altJson); } var userJobsSessionKey = "USER_JOBS_ICAOS"; var userJobsIcaos = new List <string>(); if (Session[userJobsSessionKey] != null) { userJobsIcaos = (List <string>)Session[userJobsSessionKey]; } else { using (var dbContext = new ApplicationDbContext()) { var user = dbContext.Users.FirstOrDefault(u => u.UserName == User.Identity.Name); if (user != null) { TimeSpan t = new TimeSpan(); var allUserJobs = FilterJobs(user, null, ref t); userJobsIcaos = allUserJobs.Select(x => x.DepartureICAO).ToList(); userJobsIcaos.AddRange(allUserJobs.Select(x => x.ArrivalICAO)); Session.Add(userJobsSessionKey, userJobsIcaos.Distinct().ToList()); } } } foreach (var icao in userJobsIcaos.Distinct()) { var favDptInfo = AirportDatabaseFile.FindAirportInfo(icao); var favDptCoord = new GeoCoordinate(favDptInfo.Latitude, favDptInfo.Longitude); var favDptAirport = new { isRoute = false, lat = favDptCoord.Latitude, lng = favDptCoord.Longitude, name = favDptInfo.Name, info = icao, icao = icao, runway_size = favDptInfo.RunwaySize + "ft", elevation = favDptInfo.Elevation + "ft", trasition = favDptInfo.Trasition + "ft", icon_url = "../Content/img/favorite.png", icon_center_x = 8, icon_center_y = 8 }; jsonList.Add(favDptAirport); } return(Json(jsonList, JsonRequestBehavior.AllowGet)); } return(new JsonResult()); }
internal IList <JobListModel> GenerateBoardJobs(JobSerachModel model, StatisticsDbModel statistics) { IList <JobListModel> listBoardJobs = new List <JobListModel>(); try { var weightUnit = GetWeightUnit(Request); var dep = AirportDatabaseFile.FindAirportInfo(model.Departure); var arrival = AirportDatabaseFile.FindAirportInfo(model.Arrival); var depCoord = new GeoCoordinate(dep.Latitude, dep.Longitude); var randomPob = new Random(); var randomCargo = new Random(); int id = 0; bool validGaProfit = false; var arrCoord = new GeoCoordinate(arrival.Latitude, arrival.Longitude); var distMeters = depCoord.GetDistanceTo(arrCoord); var distMiles = (int)DataConversion.ConvertMetersToMiles(distMeters); // if (distMiles >= model.MinRange && distMiles <= model.MaxRange && arrival.ICAO.ToUpper() != dep.ICAO.ToUpper() && // arrival.ICAO.ToUpper() == model.Arrival.ToUpper()) if (arrival.ICAO.ToUpper() != dep.ICAO.ToUpper() && arrival.ICAO.ToUpper() == model.Arrival.ToUpper()) { var customCapacity = model.CustomPlaneCapacity; if (GetWeightUnit(Request) == DataConversion.UnitPounds) { customCapacity.CustomCargoCapacityWeight = DataConversion.ConvertPoundsToKilograms(customCapacity.CustomCargoCapacityWeight); } int index = randomPob.Next(14, 25); if (model.AviationType == "GeneralAviation" && model.UseCustomPlaneCapacity) { validGaProfit = customCapacity.CustomCargoCapacityWeight < 3000 && customCapacity.CustomPassengerCapacity < 30; } long gePobCount = 0, auxCargoCount = 0; for (int i = 0; i < index; i++) { long pob = 0; long cargo = 0; long profit = 0; bool isFisrtClass = Convert.ToBoolean(randomPob.Next(2)); var flightType = model.AviationType.Trim(); int alternateCargo = randomPob.Next(2); bool isCargo = alternateCargo == 0 || flightType == "Cargo"; if (isCargo) { int minCargo = 5; int maxCargo = 160; if (flightType == "AirTransport") { minCargo = 100; maxCargo = 3000; } ; if (flightType == "Cargo") { minCargo = 80; maxCargo = 3500; } if (flightType == "HeavyAirTransport") { minCargo = 800; maxCargo = 6000; } if (model.UseCustomPlaneCapacity) { var cargoCapacity = customCapacity.CustomCargoCapacityWeight; if (cargoCapacity < minCargo) { cargoCapacity = minCargo + 1; } cargo = randomCargo.Next(minCargo, cargoCapacity); if (auxCargoCount + cargo > cargoCapacity) { cargo = cargoCapacity - auxCargoCount; if (cargo == 0) { continue; } auxCargoCount = cargoCapacity; } else { auxCargoCount += cargo; } } else { cargo = randomCargo.Next(minCargo, maxCargo); } if (flightType == "GeneralAviation") { if (validGaProfit) { profit = Convert.ToInt32(taxCargoGE * distMiles * cargo); profit += (140 / customCapacity.CustomCargoCapacityWeight); } else { profit = Convert.ToInt32(taxCargo * distMiles * cargo); } } else if (flightType == "AirTransport") { profit = Convert.ToInt32(taxCargo * distMiles * cargo); } else if (flightType == "Cargo") { profit = Convert.ToInt32((taxCargo + 0.0005) * distMiles * cargo); } else // HeavyAirTransport { profit = Convert.ToInt32(taxCargo * distMiles * cargo); } } else { int minPob = 1; int maxPob = 12; if (flightType == "AirTransport") { minPob = 10; maxPob = 80; } ; if (flightType == "HeavyAirTransport") { minPob = 50; maxPob = 140; } if (model.UseCustomPlaneCapacity) { if (customCapacity.CustomPassengerCapacity < minPob) { customCapacity.CustomPassengerCapacity = minPob + 1; } pob = randomPob.Next(minPob, customCapacity.CustomPassengerCapacity); if (gePobCount + pob > customCapacity.CustomPassengerCapacity) { pob = customCapacity.CustomPassengerCapacity - gePobCount; if (pob == 0) { continue; } gePobCount = customCapacity.CustomPassengerCapacity; } else { gePobCount += pob; } } else { pob = randomPob.Next(minPob, maxPob); } if (flightType == "GeneralAviation") { isFisrtClass = true; /// Always premium for GA if (validGaProfit) { profit = Convert.ToInt32(taxFirstGE * distMiles * pob); profit += ((distMiles * 2) / customCapacity.CustomPassengerCapacity); } else { profit = Convert.ToInt32(taxFirstC * distMiles * pob); } } else if (flightType == "AirTransport") { profit = isFisrtClass ? Convert.ToInt32(taxFirstC * distMiles * pob) : Convert.ToInt32(taxEcon * distMiles * pob); } else // HeavyAirTransport { profit = isFisrtClass ? Convert.ToInt32(taxFirstC * distMiles * pob) : Convert.ToInt32(taxEcon * distMiles * pob); } } cargo = GetWeight(Request, cargo, statistics); listBoardJobs.Add(new JobListModel() { Id = id++, Departure = dep, Arrival = arrival, Dist = distMiles, Pax = pob, Cargo = cargo, PayloadLabel = (isCargo) ? "[Cargo] " : (isFisrtClass) ? "[Full price] " : "[Promo] ", PayloadView = (isCargo) ? cargo + weightUnit : (isFisrtClass) ? pob + " Pax" : pob + " Pax", Pay = profit, FirstClass = isFisrtClass, AviationType = model.AviationType, IsCargo = isCargo }); } } } catch (Exception ex) { ModelState.AddModelError("error", ex.Message); } return(listBoardJobs.OrderBy(j => j.Arrival).ThenBy(x => x.PayloadLabel).ToList()); }