public decimal?CalculatedPrice(CalculationEntities houseInfo, ref List <Estate> estates)
        {
            IDatabase db         = new DatabaseProxy();
            decimal?  averageSqm = 0;

            estates = GetEstatesBasedOn_ZipCodeAndHousetype(houseInfo.ZipCode, houseInfo.TypeID, houseInfo.RemodelYear);
            int estatesINcalculation = 0;

            foreach (var item in estates)
            {
                if (db.GetPriceHistory(item.EstateId).Count != 0)
                {
                    averageSqm += db.GetPriceHistory(item.EstateId).Last().Price / item.Areal;
                    estatesINcalculation++;
                }
            }
            averageSqm /= estatesINcalculation;

            decimal?ListingPrice = averageSqm * houseInfo.SquareMeters;

            ListingPrice *= (1 + (houseInfo.Condition / 100));

            if (houseInfo.BathAmount > 1)
            {
                ListingPrice += 75000;
            }
            return(Math.Round(Convert.ToDecimal(ListingPrice)));
        }
 public decimal?CalculatedPrice(CalculationEntities houseInfo, ref List <Estate> estates)
 {
     return(calculator.CalculatedPrice(houseInfo, ref estates));
 }