Ejemplo n.º 1
0
        private AirlineFboView GetFboView(List <AirportModel> airports, List <AirlineFboDbModel> fboInDB)
        {
            var airlineFboView = new AirlineFboView();

            airlineFboView.FboResults = new List <AirlineFboDbModel>();
            foreach (var airport in airports)
            {
                var countFbosInDB = fboInDB.Count(f => f.Icao == airport.ICAO);

                airlineFboView.FboResults.Add(GetCalcAirlineFbo(airport, countFbosInDB));
            }
            return(airlineFboView);
        }
Ejemplo n.º 2
0
        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));
        }