TheAirline.Models.Airlines.Airline.GetValue C# (CSharp) Method

GetValue() public method

public GetValue ( ) : long
return long
        public long GetValue()
        {
            double value = 0;
            value += Money;

            var fleet =
                new List<FleetAirliner>(Fleet.FindAll(f => f.Purchased != FleetAirliner.PurchasedType.Leased));

            value = fleet.Aggregate(value, (current, airliner) => current + airliner.Airliner.GetPrice());

            var facilities = new List<AirlineFacility>(Facilities);
            value += facilities.Sum(facility => facility.Price);

            var airports = new List<Airport>(Airports);
            value += airports.SelectMany(airport => new List<AirlineAirportFacility>(airport.GetAirportFacilities(this))).Sum(facility => facility.Facility.Price);

            lock (Loans)
            {
                var loans = new List<Loan>(Loans);
                value = loans.Aggregate(value, (current, loan) => current - loan.PaymentLeft);
            }
            var subs = new List<SubsidiaryAirline>(Subsidiaries);
            value = subs.Aggregate(value, (current, subAirline) => current + subAirline.GetValue());

            value = value/1000000;

            if (double.IsNaN(value))
            {
                return 0;
            }
            return Convert.ToInt64(value);
        }

Usage Example

 //returns the max loan sum for an airline
 public static double GetMaxLoanAmount(Airline airline)
 {
     return airline.GetValue()*500000;
 }
All Usage Examples Of TheAirline.Models.Airlines.Airline::GetValue