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 { } } }
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()); }
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(); } }
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(); }
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(); } } }
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!"); }
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!"); }
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); }
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); }
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("."); } }
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(); }
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("-"); } }
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(); }
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}"); } }
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()); }
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()); }
private static void GetAveragePriceForSquareMeter(RealEstatesDbContext context) { IPropertiesService propertiesService = new PropertiesService(context); Console.WriteLine($"{propertiesService.AveragePricePerSquareMeter():f2}€/m²"); }
private static void AveragePricePerSquareMeter(RealEstatesDbContext dbContext) { var service = new PropertiesService(dbContext); Console.WriteLine($"Average price per square meter is {service.GetAveragePricePerSquareMeter():F2}€/m²"); }
public DistrictsService(RealEstatesDbContext db) { this.db = db; }
public PropertiesService(RealEstatesDbContext context) { this.context = context; }
public PropertiesService(RealEstatesDbContext db) { this.db = db; mapper = InitMapper(); }
public PropertiesService(RealEstatesDbContext dbContext) { this.dbContext = dbContext; }
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; }