Exemple #1
0
        public static PriceEstimation EstimateHousePrice(BovetaSearch search, double minConfScore, string connectionString = "")
        {
            AnalysisResults analysisResults = new AnalysisResults();

            var houses  = DatabaseConnector.GetSurroundingHouses(search, 20000, connectionString);
            var results = AnalyticsEngine.AnalyzeSurroundingHouses(houses, search);

            if (results.ConfidenceScore > minConfScore)
            {
                analysisResults = results;
            }

            var priceEstimate = new PriceEstimation()
            {
                searchRadius     = analysisResults.SearchRadius,
                estimatedValue   = (int)((analysisResults.EstimatedValue + 500) / 1000) * 1000,
                estimatorVersion = versionString,
                datapointsUsed   = analysisResults.NumDatapointsUsed
            };

            // TODO: Add log entry here
            return(priceEstimate);
        }
Exemple #2
0
        public static void AddPriceEstimateToLog(PriceEstimation priceEstimation, BovetaSearch search)
        {
            MySqlConnection conn;

            System.Configuration.Configuration rootWebConfig =
                System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/");

            var myConnectionString = rootWebConfig.ConnectionStrings.ConnectionStrings[GetConnectionString(search.Country)];

            try
            {
                conn = new MySqlConnection();
                conn.ConnectionString = myConnectionString.ConnectionString;
                conn.Open();

                // Prepare statement. Make rough sort on geographical region to speed things up
                string stm = "INSERT INTO search_logs (SearchTime, SearchRadius, PriceEstimatorVersion, Address, City, ObjectType, SizeSQM, EstimateValue)";
                stm += " VALUES ('" + DateTime.Now + "', ";
                stm += priceEstimation.searchRadius + ", ";
                stm += "'" + priceEstimation.estimatorVersion + "', ";
                stm += "'" + search.Address + "', ";
                stm += "'" + search.City + "', ";
                stm += "'" + search.ObjectType + "', ";
                stm += search.Size.ToString().Replace(",", ".") + ", ";
                stm += priceEstimation.estimatedValue + ")";

                MySqlCommand cmd = new MySqlCommand(stm, conn);
                cmd.ExecuteNonQuery();
            }
            catch (MySqlException ex)
            {
            }
            catch (Exception ex)
            {
            }
        }