public static Calculation CalculateTariff(int hours, int km, string carType) { Calculation result = new Calculation(); result.SumTotal = decimal.MaxValue; result.Subscription = "occasional"; //default try { var filteredTariffs = Tariff.GetAllTariffs().Where(x => x.TypeVehicle.Vehicle.ToLower().Equals(carType.ToLower())); foreach (var item in filteredTariffs) { decimal sum = item.PriceHour * hours + item.PriceKm * km + item.TypeSubscription.PerMonth ?? 0; if (sum < result.SumTotal) { result.SumTotal = sum; result.Subscription = item.TypeSubscription.Subscription; } } } catch (Exception ex) { throw new Exception(ex.Message); } return(result); }