示例#1
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;
            var db = new RealEstateDBContext();

            db.Database.Migrate();

            IPropertiesService propertiesService = new PropertiesService(db);
        }
示例#2
0
        private static void MostExpensiveDistricts(RealEstateDBContext db)
        {
            Console.Write("Districts count:");
            int count = int.Parse(Console.ReadLine());
            IDistrictsService districtsService = new DistrictsService(db);

            var districts = districtsService.GetMostExpenciveDistricts(count);

            foreach (var district in districts)
            {
                Console.WriteLine($"{district.Name} => {district.AveragePricePerSquareKilometer:0.00}€/m² ({district.PropertiesCount})");
            }
        }
示例#3
0
        static void Main(string[] args)
        {
            var db         = new RealEstateDBContext();
            var newServise = new PropertiesService(db);

            var json = File.ReadAllText("imot.bg-raw-data-2020-07-23.json");
            var data = JsonSerializer.Deserialize <JsonProperty[]>(json);

            foreach (var item in data)
            {
                newServise.Create(item.District, item.Size, item.Year, item.Price, item.Type, item.BuildingType, item.Floor, item.TotalFloors);
            }
        }
示例#4
0
        public static void ImportJsonFile(string fileName)
        {
            var dbContext = new RealEstateDBContext();
            IPropertiesService propertiesService = new PropertiesService(dbContext);
            var properties = JsonSerializer.Deserialize <IEnumerable <PropertyAsJson> >(
                File.ReadAllText(fileName));

            foreach (var jsonProp in properties)
            {
                propertiesService.Add(jsonProp.District, jsonProp.Price, jsonProp.Floor,
                                      jsonProp.TotalFloors, jsonProp.Size, jsonProp.YardSize,
                                      jsonProp.Year, jsonProp.Type, jsonProp.BuildingType);
                Console.Write(".");
            }
        }
示例#5
0
        static void Main(string[] args)
        {
            var db = new RealEstateDBContext();


            Console.OutputEncoding = Encoding.Unicode;

            db.Database.Migrate();

            while (true)
            {
                Console.Clear();
                Console.WriteLine("Choose an option:");
                Console.WriteLine("1. Property search");
                Console.WriteLine("2. Most expensive districts");
                Console.WriteLine("3. Average price per square meter");
                Console.WriteLine("0. EXIT");
                bool parsed = int.TryParse(Console.ReadLine(), out int option);
                if (parsed && option == 0)
                {
                    break;
                }

                if (parsed && option >= 1 && option <= 3)
                {
                    switch (option)
                    {
                    case 1:
                        PropertySearch(db);
                        break;

                    case 2:
                        MostExpensiveDistricts(db);
                        break;

                    case 3:
                        AveragePricePerSquareMeter(db);
                        break;
                    }

                    Console.WriteLine("Press any key to continue...");
                    Console.ReadKey();
                }
            }
        }
示例#6
0
        private static void PropertySearch(RealEstateDBContext db)
        {
            Console.Write("Min price:");
            int minPrice = int.Parse(Console.ReadLine());

            Console.Write("Max price:");
            int maxPrice = int.Parse(Console.ReadLine());

            Console.Write("Min size:");
            int minSize = int.Parse(Console.ReadLine());

            Console.Write("Max size:");
            int maxSize = int.Parse(Console.ReadLine());

            IPropertiesService service = new PropertiesService(db);
            var properties             = service.Search(minPrice, maxPrice, minSize, maxSize);

            foreach (var property in properties)
            {
                Console.WriteLine($"{property.Name} => {property.Price}€ => {property.Size}m²");
            }
        }
示例#7
0
        private static void AveragePricePerSquareMeter(RealEstateDBContext dbContext)
        {
            IPropertiesService propertiesService = new PropertiesService(dbContext);

            Console.WriteLine($"Average price per square meter: {propertiesService.AveragePricePerSquareMeter():0.00}€/m²");
        }
 public PropertiesService(RealEstateDBContext db)
 {
     this.db = db;
 }
 public DistrictService(RealEstateDBContext db)
 {
     this.db = db;
 }
示例#10
0
 public PropertiesService(RealEstateDBContext context)
 {
 }
示例#11
0
 public DistrictsService(RealEstateDBContext dbContext)
 {
     this.dbContext = dbContext;
 }
示例#12
0
 public PropertiesService(RealEstateDBContext contextInput)
 {
     dbContext = contextInput;
 }