Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            var    db   = new RealEstatesDbContext();
            string json = File.ReadAllText("imot.bg-raw-data-2020-07-23.json");
            var    importedProperties = JsonConvert.DeserializeObject <IEnumerable <ImportInfoDTO> >(json);

            var propService = new PropertiesService(db);

            foreach (var prop in importedProperties)
            {
                try
                {
                    propService.Create
                    (
                        prop.Size,
                        prop.Floor,
                        prop.TotalFloors,
                        prop.District,
                        prop.Year,
                        prop.Type,
                        prop.BuildingType,
                        prop.Price
                    );
                }
                catch
                {
                }
            }
        }
Ejemplo n.º 2
0
        private static void PropertySearch(RealEstatesDbContext context)
        {
            Console.Write("Min price:");
            var minPrice = int.Parse(Console.ReadLine());

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

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

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

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

            var serializer = new XmlSerializer(typeof(List <PropertyInfoDto>), new XmlRootAttribute("Properties"));

            var namespacesSettings = new XmlSerializerNamespaces();

            namespacesSettings.Add("", "");

            var textWriter = new StringWriter();

            serializer.Serialize(textWriter, properties, namespacesSettings);

            Console.WriteLine(textWriter.ToString().TrimEnd());
        }
Ejemplo n.º 3
0
        public void Run()
        {
            Console.OutputEncoding = Encoding.Unicode;
            var context = new RealEstatesDbContext();

            context.Database.Migrate();

            while (true)
            {
                Console.Clear();
                Console.WriteLine("Choose an option:");
                Console.WriteLine("0. EXIT");
                Console.WriteLine("1. Property search");
                Console.WriteLine("2. Most expensive districts");
                Console.WriteLine("3. Average price per square meter");
                Console.WriteLine("4. Add tag");
                Console.WriteLine("5. Bulk tags to properties");
                Console.WriteLine("6. Get full data about properties");

                var parsed = int.TryParse(Console.ReadLine(), out var option);

                if (parsed && option == 0)
                {
                    break;
                }

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

                    case 2:
                        MostExpensiveDistricts(context);
                        break;

                    case 3:
                        AveragePricePerSquareMeter(context);
                        break;

                    case 4:
                        AddTag(context);
                        break;

                    case 5:
                        BulkTagsToProperties(context);
                        break;

                    case 6:
                        GetFullDataAboutProperties(context);
                        break;
                    }
                }

                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }
        }
Ejemplo n.º 4
0
        private static void PropertySearch(RealEstatesDbContext context)
        {
            Console.WriteLine("min price:");
            int minPrice = int.Parse(Console.ReadLine());

            Console.WriteLine("max price:");
            int maxPrice = int.Parse(Console.ReadLine());

            Console.WriteLine("min size:");
            int minSize = int.Parse(Console.ReadLine());

            Console.WriteLine("max size:");
            int maxSize = int.Parse(Console.ReadLine());

            IPropertiesService propertiesService = new PropertiesService(context);

            var properties = propertiesService.Search(minPrice, maxPrice, minSize, maxSize);

            var writer = new StringWriter();

            var serializer = new XmlSerializer(typeof(PropertyInfoDto[]), new XmlRootAttribute("Properties"));

            serializer.Serialize(writer, properties);

            Console.WriteLine(writer.ToString());

            writer.Close();
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            Console.InputEncoding  = Encoding.Unicode;
            Console.OutputEncoding = Encoding.Unicode;

            var context = new RealEstatesDbContext();

            context.Database.Migrate();

            while (true)
            {
                Console.Clear();
                Console.WriteLine("Choose an option:");
                Console.WriteLine("1. Search property");
                Console.WriteLine("2. Most expensive district");
                Console.WriteLine("3. Average price per square meter");
                Console.WriteLine("4. Add tag");
                Console.WriteLine("5. Add tags to properties");
                Console.WriteLine("6. Property Full Info");
                Console.WriteLine("0. EXIT");

                int option = int.Parse(Console.ReadLine());
                if (option == 0)
                {
                    Environment.Exit(0);
                }

                if (option > 0 && option <= 6)
                {
                    if (option == 1)
                    {
                        PropertySearch(context);
                    }
                    else if (option == 2)
                    {
                        SearchMostExpensiveDistricts(context);
                    }
                    else if (option == 3)
                    {
                        GetAveragePriceForSquareMeter(context);
                    }
                    else if (option == 4)
                    {
                        AddTag(context);
                    }
                    else if (option == 5)
                    {
                        AddTagsToProperty(context);
                    }
                    else if (option == 6)
                    {
                        GetPropertyFullInfo(context);
                    }

                    Console.WriteLine("Press any key to continue...");
                    Console.ReadKey();
                }
            }
        }
Ejemplo n.º 6
0
        private static void BulkTagsToProperties(RealEstatesDbContext context)
        {
            Console.WriteLine("Bulk operation started...");
            var propertyService = new PropertiesService(context);
            var service         = new TagsService(context, propertyService);

            service.BulkTagToProperties();
            Console.WriteLine("Bulk operation finished successfully!");
        }
Ejemplo n.º 7
0
        private static void AddTagsToProperty(RealEstatesDbContext context)
        {
            Console.WriteLine("Adding tags to properties started!");
            IPropertiesService propertiesService = new PropertiesService(context);
            ITagsService       tagsService       = new TagsService(context, propertiesService);

            tagsService.BulkAddTagsToProperty();
            Console.WriteLine("Adding tags to properties finished!");
        }
Ejemplo n.º 8
0
        private static void AddTag(RealEstatesDbContext context)
        {
            Console.WriteLine("Tag name:");
            string tagName = Console.ReadLine();

            Console.WriteLine("Importance (optional):");
            int importance = int.Parse(Console.ReadLine());

            IPropertiesService propertiesService = new PropertiesService(context);
            ITagsService       tagsService       = new TagsService(context, propertiesService);

            tagsService.Add(tagName, importance);
        }
Ejemplo n.º 9
0
        private static void AddTag(RealEstatesDbContext context)
        {
            Console.Write("Tag name:");
            var name = Console.ReadLine();

            Console.Write("Importance (optional):");
            var parsed = int.TryParse(Console.ReadLine(), out var importance);

            var propertyService = new PropertiesService(context);
            var service         = new TagsService(context, propertyService);

            var tagImportance = parsed ? importance : (int?)null;

            service.Add(name, tagImportance);
        }
Ejemplo n.º 10
0
        private static void ImportJsonFile(string fileName)
        {
            var context         = new RealEstatesDbContext();
            var propertyService = new PropertiesService(context);

            var properties = JsonSerializer.Deserialize <IEnumerable <PropertyAsJson> >(
                File.ReadAllText(fileName));

            foreach (var jsonProp in properties)
            {
                propertyService.Add(jsonProp.District, jsonProp.Price, jsonProp.Floor, jsonProp.TotalFloors, jsonProp.Size,
                                    jsonProp.YardSize, jsonProp.Year, jsonProp.Type, jsonProp.BuildingType);
                Console.Write(".");
            }
        }
Ejemplo n.º 11
0
        private static void GetPropertyFullInfo(RealEstatesDbContext context)
        {
            Console.WriteLine("Count:");
            int count = int.Parse(Console.ReadLine());
            IPropertiesService propertiesService = new PropertiesService(context);
            var properties = propertiesService.GetPropertyFullData(count);

            var serializee = new XmlSerializer(typeof(PropertyFullInfoDTO[]), new XmlRootAttribute("Properties"));

            var writer = new StringWriter();

            serializee.Serialize(writer, properties);

            Console.WriteLine(writer.ToString());

            writer.Close();
        }
Ejemplo n.º 12
0
        public static void ImportJsonFile(string fileName)
        {
            var context = new RealEstatesDbContext();

            IPropertiesService propertiesService = new PropertiesService(context);

            var jsonConverter = JsonSerializer.Deserialize <IEnumerable <PropertyAsJson> >(
                File.ReadAllText(fileName));

            foreach (var item in jsonConverter)
            {
                propertiesService.Add(item.Size, item.YardSize, item.Floor,
                                      item.TotalFloors, item.District, item.Year,
                                      item.Type, item.BuildingType, item.Price);
                System.Console.Write("-");
            }
        }
Ejemplo n.º 13
0
        private static void SearchMostExpensiveDistricts(RealEstatesDbContext context)
        {
            Console.WriteLine("Press districts count:");
            int count = int.Parse(Console.ReadLine());

            IDistrictsService districtsService = new DistrictsService(context);

            var districts = districtsService.MostExpensiveDistricts(count);

            var writer = new StringWriter();

            var serializer = new XmlSerializer(typeof(DistrictInfoDTO[]), new XmlRootAttribute("Districts"));

            serializer.Serialize(writer, districts);

            Console.WriteLine(writer.ToString());

            writer.Close();
        }
Ejemplo n.º 14
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;

            RealEstatesDbContext db = new RealEstatesDbContext();

            db.Database.Migrate();

            var propService = new PropertiesService(db);

            //Console.Write("Min year:");
            //var minYear = int.Parse(Console.ReadLine());
            //Console.Write("Max year:");
            //var maxYear = int.Parse(Console.ReadLine());
            //Console.Write("Min size:");
            //var minSize = int.Parse(Console.ReadLine());
            //Console.Write("Max size:");
            //var maxSize = int.Parse(Console.ReadLine());

            //var properties = propService.Search(minYear, maxYear, minSize, maxSize);

            //Console.Write("Min price:");
            //var minPrice = int.Parse(Console.ReadLine());
            //Console.Write("Max price:");
            //var maxPrice = int.Parse(Console.ReadLine());

            //var sortedPropsByPrice = propService.SearchByPrice(minPrice, maxPrice);

            //foreach (var prop in sortedPropsByPrice)
            //{
            //    Console.WriteLine($"{prop.DistrictName} => {prop.Year} - {prop.Size}m2 Type: {prop.PropertyType} Floor: {prop.Floor} Price: {prop.Price}€");
            //}

            var districtsService = new DistrictsService(db);

            var districts = districtsService.GetTopDistrictByPropertiesCount(15);

            foreach (var d in districts)
            {
                Console.WriteLine($"{d.Name}  [{d.MinPrice:F2} - {d.MaxPrice:F2}] -> {d.AveragePrice:F2} ==> {d.PropertiesCount}");
            }
        }
Ejemplo n.º 15
0
        private static void MostExpensiveDistricts(RealEstatesDbContext context)
        {
            Console.Write("Districts count:");
            var count = int.Parse(Console.ReadLine());

            var service   = new DistrictsService(context);
            var districts = service.GetMostExpensiveDistricts(count);

            var serializer = new XmlSerializer(typeof(List <DistrictInfoDto>), new XmlRootAttribute("Districts"));

            var namespacesSettings = new XmlSerializerNamespaces();

            namespacesSettings.Add("", "");

            var textWriter = new StringWriter();

            serializer.Serialize(textWriter, districts, namespacesSettings);

            Console.WriteLine(textWriter.ToString().TrimEnd());
        }
Ejemplo n.º 16
0
        private static void GetFullDataAboutProperties(RealEstatesDbContext context)
        {
            Console.Write("Property count:");
            var count = int.Parse(Console.ReadLine());

            var service        = new PropertiesService(context);
            var propertiesInfo = service.GetFullData(count);

            var serializer = new XmlSerializer(typeof(List <PropertyFullInfoDto>), new XmlRootAttribute("Properties"));

            var namespacesSettings = new XmlSerializerNamespaces();

            namespacesSettings.Add("", "");

            var textWriter = new StringWriter();

            serializer.Serialize(textWriter, propertiesInfo, namespacesSettings);

            Console.WriteLine(textWriter.ToString().TrimEnd());
        }
Ejemplo n.º 17
0
        private static void GetAveragePriceForSquareMeter(RealEstatesDbContext context)
        {
            IPropertiesService propertiesService = new PropertiesService(context);

            Console.WriteLine($"{propertiesService.AveragePricePerSquareMeter():f2}€/m²");
        }
Ejemplo n.º 18
0
        private static void AveragePricePerSquareMeter(RealEstatesDbContext dbContext)
        {
            var service = new PropertiesService(dbContext);

            Console.WriteLine($"Average price per square meter is {service.GetAveragePricePerSquareMeter():F2}€/m²");
        }
Ejemplo n.º 19
0
 public DistrictsService(RealEstatesDbContext db)
 {
     this.db = db;
 }
Ejemplo n.º 20
0
 public PropertiesService(RealEstatesDbContext context)
 {
     this.context = context;
 }
Ejemplo n.º 21
0
 public PropertiesService(RealEstatesDbContext db)
 {
     this.db = db;
     mapper  = InitMapper();
 }
Ejemplo n.º 22
0
 public PropertiesService(RealEstatesDbContext dbContext)
 {
     this.dbContext = dbContext;
 }
Ejemplo n.º 23
0
 public DistrictsService(RealEstatesDbContext dbContext)
 {
     this.dbContext = dbContext;
 }
 public TagsService(RealEstatesDbContext context, IPropertiesService propertiesService)
 {
     this.context           = context;
     this.propertiesService = propertiesService;
 }
 public DistrictsService(RealEstatesDbContext context)
 {
     this.context = context;
 }