示例#1
0
        static void Main(string[] args)
        {
            var json       = File.ReadAllText("imot.bg-raw-data-2020-07-23.json");
            var properties = JsonSerializer.Deserialize <IEnumerable <JsonProperty> >(json);
            var db         = new RealEstateDbContext();
            IPropertiesService propertiesService = new PropertiesService(db);

            foreach (var property in properties.Where(p => p.Price > 1000))
            {
                try
                {
                    propertiesService.Create(
                        property.District,
                        property.Size,
                        property.Year,
                        property.Price,
                        property.Type,
                        property.BuildingType,
                        property.Floor,
                        property.TotalFloors);
                }
                catch
                {
                }
            }
        }
示例#2
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;

            var db = new RealEstateDbContext();

            db.Database.Migrate();

            // Top districts by AvgPrice
            IDistrictsService districtsService = new DistrictService(db);
            var districts = districtsService.GetTopDistrictsByAveragePrice();

            foreach (var district in districts)
            {
                Console.WriteLine($"{district.Name} => Average price: {district.AveragePrice:0.00} ({district.MinPrice} - {district.MaxPrice}) => {district.PropertiesCount} properties.");
            }



            // Search by price
            IPropertiesService propertiesService = new PropertyService(db);

            Console.Write("Enter min price: ");
            int minPrice = int.Parse(Console.ReadLine());

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

            var properties = propertiesService.SearchByPrice(minPrice, maxPrice);

            foreach (var property in properties)
            {
                Console.WriteLine($"{property.District}, Тип имот: {property.PropertyType}, Строеж: {property.BuildingType}, Етаж: {property.Floor},  Размер: {property.Size}m2, Година: {property.Year}г., Цена: {property.Price}лв.");
            }
        }
示例#3
0
        public static void Main(string[] args)
        {
            var db = new RealEstateDbContext();

            using (db)
            {
                db.Database.Migrate();

                IPropertiesService propertiesService = new PropertiesService(db);

                //propertiesService.Create("Dianabad", "5-Rooms", "Brick", 2019, 210000, 100, 5, 12);

                //propertiesService.UpdateTags(2);
                //propertiesService.UpdateTags(3);

                IDistrictsService districtsService = new DistrictsService(db);

                var districts = districtsService.GetTopDistrictsByAveragePrice();

                foreach (var district in districts)
                {
                    Console.WriteLine($"{district.Name} => {district.AveragePrice:f2} ({district.MinPrice} - {district.MaxPrice}) => {district.PropertiesCount} properties");
                }
            }
        }
示例#4
0
        public override bool IsValid(object value)
        {
            var username  = (string)value;
            var dbContext = new RealEstateDbContext();

            return(!dbContext.Users.Any(u => u.UserName == username));
        }
示例#5
0
 private static void RestoreDatabase(RealEstateDbContext db)
 {
     db.Database.EnsureDeleted();
     Console.WriteLine("Database is successfully deleted!");
     db.Database.EnsureCreated();
     Console.WriteLine("Database is successfully created!");
 }
示例#6
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;

            var db = new RealEstateDbContext();

            db.Database.Migrate();

            IPropertiesService propertiesService = new PropertiesService(db);

            Console.Write("Min price: ");
            int minPrice = int.Parse(Console.ReadLine());

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

            var properties = propertiesService.SearchByPrice(minPrice, maxPrice);

            foreach (var property in properties)
            {
                Console.WriteLine($"{property.District}, fl. {property.Floor}, {property.Size} m², {property.Year}, {property.Price}€, {property.PropertyType}, {property.BuildingType}");
            }
            //IDistrictsService districtService = new DistrictsService(db);
            //var districts = districtService.GetTopDistrictsByAveragePrice();

            //foreach (var district in districts)
            //{
            //    Console.WriteLine($"{district.Name} => Price: {district.AveragePrice} ({district.MinPrice} - {district.MaxPrice}) => {district.PropertiesCount} properties");
            //}
        }
 public PropertyService(RealEstateDbContext dbContext)
 {
     this._db            = dbContext;
     this._districts     = new List <District>();
     this._buildingTypes = new List <BuildingType>();
     this._propertyTypes = new List <PropertyType>();
 }
示例#8
0
        public EntityGetAllServiceNormalStrategy(RealEstateDbContext context, int?language = null
                                                 , IQueryable <TEntity> baseFilter         = null)
        {
            if (baseFilter is null)
            {
                baseFilter = context.Set <TEntity>();
            }
            var filterSystem = new DefaultFilter <TEntity>();

            if (IsVirtualDelete())
            {
                var    d1       = typeof(VirtualDeleteFilter <>);
                Type[] typeArgs = { typeof(TEntity) };
                var    o        = Activator.CreateInstance(d1.MakeGenericType(typeArgs));
                filterSystem.SetNext((IGetFilter <IQueryable <TEntity> >)o);
            }
            if (IsTranslatable())
            {
                filterSystem.SetNext(new TranslateFilter <TEntity>(language));
            }
            if (IsResultCache())
            {
                filterSystem.SetNext(new CacheFilter <TEntity>());
            }
            Queryable = filterSystem.Run(baseFilter);
        }
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;

            var db = new RealEstateDbContext();

            db.Database.Migrate();

            IPropertiesService propertiesService = new PropertiesService(db);
            var properties = propertiesService.SearchByPrice(0, 200000);

            foreach (var property in properties.Take(3))
            {
                Console.WriteLine($"District: {property.District}, Floor: {property.Floor},Size: {property.Size}, Year: {property.Year}, {property.BuildingType}, {property.PropertyType}");
            }

            //propertiesService.Create(2000, 3, 10, "Manastirski livadi", "mesonet", "brich", 2020, 5000000);
            //propertiesService.UpdateTags(1);

            //IDistrictsService districtService = new DistrictService(db);
            //var districts = districtService.GetTopDistrictsByAveragePrice();

            //foreach (var district in districts)
            //{
            //    Console.WriteLine($"{district.Name} - {district.AveragePrice} ,{district.MinPrice}, {district.MaxPrice}");

            //}
        }
示例#10
0
        public override bool IsValid(object value)
        {
            var email     = (string)value;
            var dbContext = new RealEstateDbContext();

            return(!dbContext.Users.Any(u => u.Email == email));
        }
示例#11
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;

            var db = new RealEstateDbContext();
            //db.Database.Migrate();

            IPropertiesService propertiesService = new PropertiesService(db);
            //propertiesService.Create("Dianabad", 100, 2019, 322000000, "4-Staen", "Panelka", 17, 21);

            IDistrictsService districtsService = new DistrictsService(db);

            //var districts = districtsService.GetTopDisctrictsByAveragePrice();
            //foreach (var district in districts)
            //{
            //    Console.WriteLine($"{district.Name} => Price: {district.AveragePrice} ({district.MinPrice} - {district.MaxPrice}) => properties: {district.PropertiesCount}");
            //}
            Console.Write("Min price: ");
            int minPrice = int.Parse(Console.ReadLine());

            Console.Write("Max price: ");
            int maxPrice   = int.Parse(Console.ReadLine());
            var properties = propertiesService.SearchByPrice(minPrice, maxPrice);

            foreach (var property in properties)
            {
                Console.WriteLine($"{property.Price}");
            }
        }
示例#12
0
        static void Main(string[] args)
        {
            string data = File.ReadAllText(@"./ImportData/imot.bg-raw-data-2020-07-23.json");

            List <PropertyDTO> properties = JsonConvert
                                            .DeserializeObject <List <PropertyDTO> >(data);
            RealEstateDbContext db = new RealEstateDbContext();

            IPropertiesService propService = new PropertyService(db);

            foreach (var prop in properties)
            {
                propService.Create(
                    prop.Size,
                    prop.Floor,
                    prop.TotalFloors,
                    prop.District,
                    prop.Type,
                    prop.BuildingType,
                    prop.Year,
                    prop.Price
                    );
            }

            propService.SaveChanges();
        }
示例#13
0
 public IEntityGetService <TEntity> Create(RealEstateDbContext context, IQueryable <TEntity> baseFilter = null)
 {
     if (!_accessService.GetAccess)
     {
         return(new EntityGetServiceAccessDeniedStrategy <TEntity>());
     }
     return(new EntityGetServiceNormalStrategy <TEntity>(_entityGetAllFactory.Create(context, baseFilter)));
 }
示例#14
0
 public IEntityCreateService <TEntity> Create(RealEstateDbContext context)
 {
     //if (!_accessService.CreateAccess)
     //    return new EntityCreateServiceAccessDenied<TEntity>();
     //if (IsForbiddenCreate<TEntity>())
     //    return new EntityCreateServiceForbidden<TEntity>();
     return(new EntityCreateServiceNormalStrategy <TEntity>(context));
 }
示例#15
0
 public HolidayServices(RealEstateDbContext dbContext
                        , NotificationServices notificationServices
                        , UserServices userServices)
 {
     this.dbContext            = dbContext;
     this.notificationServices = notificationServices;
     this.userServices         = userServices;
 }
示例#16
0
 public ReportServices(RealEstateDbContext dbContext, ApplicationUserManager userManager, WebPlatformServices webPlatformServices, NoReplyMailService noReplayMail, INotificationCreator notificationCreator)
 {
     _dbContext           = dbContext;
     _userManager         = userManager;
     _webPlatformServices = webPlatformServices;
     _noReplayMail        = noReplayMail;
     _notificationCreator = notificationCreator;
 }
示例#17
0
 public IEntityGetAllService <TEntity> Create(RealEstateDbContext context, IQueryable <TEntity> baseFilter = null)
 {
     if (!_accessService.GetAccess)
     {
         return(new EntityGetAllServiceAccessDeniedStrategy <TEntity>());
     }
     return(new EntityGetAllServiceNormalStrategy <TEntity>(context, _userProvider.LanguageId, baseFilter));
 }
 public UserRepository(UserManager <ApplicationUser> userManager, SignInManager <ApplicationUser> signInManager, IMapper mapper, RealEstateDbContext appDbContext, IRealEstateService realEstateService, IConfiguration configuration)//:base(RealEstateDbContext)
 {
     _userManager       = userManager;
     _signInManager     = signInManager;
     _mapper            = mapper;
     _appDbContext      = appDbContext;
     _realEstateService = realEstateService;
     _configuration     = configuration;
 }
 public NotifierJob(IDispatcher dispatcher, IServiceProvider provider, IUpdateSignaler signaler
                    , IOptions <AppSetting> appSettings)
 {
     _dispatcher = dispatcher;
     _signaler   = signaler;
     _appSetting = appSettings.Value;
     _scope      = provider.CreateScope();
     _context    = _scope.ServiceProvider.GetRequiredService <RealEstateDbContext>();
 }
示例#20
0
 public UserService(UserManager <AppUser> userManager, SignInManager <AppUser> signInManager,
                    RoleManager <AppRole> roleManager, IStorageService storageService, IConfiguration config, RealEstateDbContext context)
 {
     _userManager    = userManager;
     _signInManager  = signInManager;
     _roleManager    = roleManager;
     _storageService = storageService;
     _config         = config;
     _context        = context;
 }
示例#21
0
        private static void AddCustomPropertiesToDatabase(RealEstateDbContext db)
        {
            IPropertiesService propertiesService = new PropertiesService(db);

            propertiesService.Create(125, 6, 6, "Дианабад", "4-СТАЕН", "Tyxла", 2021, 2000000);

            propertiesService.UpdateTags(1);
            propertiesService.UpdateTags(2);
            propertiesService.UpdateTags(3);
        }
示例#22
0
        private bool GetAuthorizedController(string controllerName, string ActionName)
        {
            using (RealEstateDbContext _dbContext = new RealEstateDbContext())
            {
                var find = _dbContext.Apicontroller.Where(item =>
                                                          item.ControllerName.Trim().ToLower() == controllerName.Trim().ToLower() &&
                                                          item.ActionName.Trim().ToLower() == ActionName.Trim().ToLower()).ToList();

                return(find.Count > 0 ? true : false);
            };
        }
示例#23
0
 public IEntityUpdateService <TEntity> Create(RealEstateDbContext context)
 {
     //if (!_accessService.UpdateAccess)
     //    return new EntityUpdateServiceAccessDeniedStrategy<TEntity>();
     //if (IsForbiddenUpdate<TEntity>())
     //    return new EntityUpdateServiceForbiddenStrategy<TEntity>();
     if (IsVirtualDelete <TEntity>()) //TODO: user id should add here
     {
         return(new EntityUpdateServiceVirtualStrategy <TEntity>(context, null));
     }
     return(new EntityUpdateServiceNormalStrategy <TEntity>(context));
 }
示例#24
0
        private static void PrintTopDistrictsByAveragePrice(RealEstateDbContext db)
        {
            IDistrictService districtService = new DistrictService(db);
            var districts = districtService.GetTopDistrictsByAveragePPrice();

            foreach (var district in districts)
            {
                var propertyCount = district.PropertiesCount == 1 ? "property" : "properties";
                Console.WriteLine(
                    $"{district.Name} => Price: {district.AveragePrice:f2} € ({district.MinPrice} € <-> {district.MaxPrice} €) => {district.PropertiesCount} {propertyCount}");
            }
        }
示例#25
0
        static void Main(string[] args)
        {
            var db = new RealEstateDbContext();

            //RestoreDatabase(db);
            db.Database.Migrate();

            //AddCustomPropertiesToDatabase(db);

            //PrintTopDistrictsByAveragePrice(db);

            //SearchPropertiesInPriceRange(db);
        }
示例#26
0
        public static int GetNewNotificationsCount(this IIdentity identity)
        {
            if (!identity.IsAuthenticated)
            {
                return(0);
            }

            var userId    = identity.GetUserId();
            var dbContext = new RealEstateDbContext();

            return(dbContext.Notifications
                   .Count(n => (!n.IsSeen && n.UserId == userId) ||
                          (n.UserCreatorId != userId && n.UserCreatorId != null && n.UsersSawNotifications.All(u => u.Id != userId))));
        }
        public IEnumerable <ValidationResult> Validate(ValidationContext validationContext)
        {
            var dbContext = new RealEstateDbContext();

            if (dbContext.PropertyTypes
                .Count(pt => UnitTypeIds.Any(ut => pt.PropertyTypeId == ut)) != UnitTypeIds.Count)
            {
                yield return(new ValidationResult("Някои от избраните типове имоти е грешен! Свържете се с администратор!", new [] { "UnitTypeIds" }));
            }

            if (!dbContext.Cities.Any(c => c.CityId == CityId))
            {
                yield return(new ValidationResult("Избраният град не съществува!", new[] { "CityId" }));
            }
        }
示例#28
0
 public IEntityDeleteService <TEntity> Create(RealEstateDbContext context)
 {
     if (!_accessService.DeleteAccess)
     {
         return(new EntityDeleteServiceAccessDeniedStrategy <TEntity>());
     }
     if (IsForbiddenDelete <TEntity>())
     {
         return(new EntityDeleteServiceForbiddenStrategy <TEntity>());
     }
     if (IsVirtualDelete <TEntity>())
     {
         return(new EntityDeleteServiceVirtualStrategy <TEntity>(context, _userProvider.Id));
     }
     return(new EntityDeleteServiceNormalStrategy <TEntity>(context));
 }
示例#29
0
        public async Task AddContactMessage(ContactMessageViewModel messageTo)
        {
            ContactMessages message = new ContactMessages
            {
                Name        = messageTo.Name,
                Email       = messageTo.Email,
                Title       = messageTo.Subject,
                PhoneNumber = messageTo.PhoneNumber,
                Message     = messageTo.Message
            };

            RealEstateDbContext.ContactMessages.Add(message);
            await RealEstateDbContext.SaveChangesAsync();

            await EmailsManager.SendHtmlEmailAsync(message.Email, "Съобщение изпратено до sProperties", "Благодаря за обратната връзка, която ни пратихте. Оценяваме времето, което отделихте. Поздрави, sProperties.");
        }
示例#30
0
 public EntityService(RealEstateDbContext context,
                      IEntityGetFactory <TEntity> entityGetFactory,
                      IEntityGetAllFactory <TEntity> entityGetAllFactory,
                      IEntityDeleteFactory <TEntity> entityDeleteFactory,
                      IEntityUpdateFactory <TEntity> entityUpdateFactory,
                      IEntityCreateFactory <TEntity> entityCreateFactory)
 {
     DbContext            = context;
     _entityGetFactory    = entityGetFactory;
     _entityGetAllFactory = entityGetAllFactory;
     _entityGetAllService = entityGetAllFactory.Create(context);
     _getService          = entityGetFactory.Create(context);
     _deleteService       = entityDeleteFactory.Create(context);
     _updateService       = entityUpdateFactory.Create(context);
     _createService       = entityCreateFactory.Create(context);
 }
        //public RealEstatesService(IGenericRepository<RealEstateModel> realEstatesRepo)
        //{
        //    this.realEstateModel = realEstatesRepo;
        //}

        public RealEstatesService()
        {
            var db = new RealEstateDbContext();
            this.realEstateModel = new GenericRepository<RealEstateModel>(db);
        }
 public CommentsService()
 {
     var db = new RealEstateDbContext();
     this.comments = new GenericRepository<Comment>(db);
     this.user = new GenericRepository<User>(db);
 }
示例#33
0
 public Top()
 {
     var db = new RealEstateDbContext();
     this.user = new GenericRepository<User>(db);
     this.ratings = new GenericRepository<Rating>(db);
 }