예제 #1
0
 public Advert Get(int id)
 {
     using (AdvertContext db = new AdvertContext())
     {
         return(db.Advert.Find(id));
     }
 }
예제 #2
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            //Set up identity
            app.UseAuthentication();

            //// Store app services on startup
            IocContainer.Provider = app.ApplicationServices;

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }

            // ensure DB is created
            using (var context = new AdvertContext())
            {
                context.Database.EnsureCreated();
                context.SaveChanges();
            }

            // set the logger
            SetUpLogger();

            // register cors
            app.UseCors("AllowAdvertsUI");
            app.UseHttpsRedirection();
            app.UseMvc();
        }
 /// <summary>
 /// Constructor, sets up the controller
 /// </summary>
 /// <param name="mapper">AutoMapper to be injected</param>
 /// <param name="context">DbContext to be injected</param>
 /// <param name="userManager">UserManager to be injected</param>
 public RealEstateController(IMapper mapper, AdvertContext context, UserManager <User> userManager)
 {
     _mapper     = mapper ?? throw new ArgumentNullException();
     _unitOfWork = context == null ?
                   throw new ArgumentNullException() : new UnitOfWork(context);
     _userManager = userManager ?? throw new ArgumentNullException(nameof(userManager));
 }
예제 #4
0
 public IEnumerable <Advert> Get()
 {
     using (AdvertContext db = new AdvertContext())
     {
         return(db.Advert.ToList());
     }
 }
예제 #5
0
 public IEnumerable <User> Get()
 {
     using (AdvertContext db = new AdvertContext())
     {
         return(db.Users.ToList());
     }
 }
예제 #6
0
        public static BindingList <Advert> GetAdverts()
        {
            BindingList <Advert> adverts = new BindingList <Advert>();

            try
            {
                AdvertContext db = new AdvertContext(options);
                db.Advert.Load();
                adverts = db.Advert.Local.ToBindingList();
                var tasks = new List <Task>();
                Parallel.ForEach(adverts, el => {
                    tasks.Add(Task.Run(() =>
                    {
                        el.Advert_Picture = new Picture();
                        el.Advert_Picture.PictureString = el.Advert_Image;
                        el.Advert_ImageSource           = ImageConverter.ImageSourceFromBitmap(el.Advert_Picture.Source);
                        el.Advert_ImageSource.Freeze();
                    }));
                });
                Task t = Task.WhenAll(tasks);
                t.Wait();
                return(adverts);
            }

            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                return(adverts);
            }
        }
예제 #7
0
 public void DeleteUser(int id)
 {
     using (AdvertContext db = new AdvertContext())
     {
         User user = db.Users.Find(id);
         if (user != null)
         {
             db.Users.Remove(user);
         }
         db.SaveChanges();
     }
 }
예제 #8
0
 public static void DeleteAdvert(Advert ad)
 {
     try
     {
         AdvertContext db = new AdvertContext(options);
         db.Advert.Remove(ad);
         db.SaveChanges();
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Message);
     }
 }
예제 #9
0
 public void DeleteAdvert(int id, string phone, string password)
 {
     ValidateUser(phone, password);
     using (AdvertContext db = new AdvertContext())
     {
         Advert advert = db.Advert.Find(id);
         if (advert != null)
         {
             db.Advert.Remove(advert);
         }
         db.SaveChanges();
     }
 }
예제 #10
0
 /// <summary>
 /// Constructor, sets up the controller
 /// </summary>
 /// <param name="mapper">AutoMapper to be injected</param>
 /// <param name="context">DbContext to be injected</param>
 /// <param name="userManager">UserManager, to be injected</param>
 public CommentController(IMapper mapper, AdvertContext context, UserManager <User> userManager)
 {
     _mapper      = mapper ?? throw new ArgumentNullException(nameof(mapper));
     _userManager = userManager ?? throw new ArgumentNullException(nameof(userManager));
     if (context == null)
     {
         throw new ArgumentNullException(nameof(context));
     }
     else
     {
         _unitOfWork = new UnitOfWork(context);
     }
 }
예제 #11
0
        public PictureRepositoryTests()
        {
            // Arrange
            dbSetPictureMock = new MockedDbSet <Picture>(testPictures);

            var builder     = new DbContextOptionsBuilder <AdvertContext>();
            var contextMock = new Mock <AdvertContext>(builder.Options);

            contextMock.Setup(c => c.Set <Picture>()).Returns(dbSetPictureMock.Object);
            contextMock.Setup(c => c.Pictures).Returns(dbSetPictureMock.Object);

            repo    = new PictureRepository(contextMock.Object);
            context = contextMock.Object;
        }
예제 #12
0
        public async Task <User> Authenticate(string username, string password)
        {
            using (var db = new AdvertContext())
            {
                var user = await db.Users.SingleOrDefaultAsync(x => x.Username == username && x.Password == password);

                if (user == null)
                {
                    return(null);
                }

                return(user.WithoutPassword());
            }
        }
예제 #13
0
 public static void EditAdvert(int id, string name, int animalAge, decimal animalWeight, string kindOfAnimal, string description, string pictureString)
 {
     try
     {
         AdvertContext db = new AdvertContext(options);
         Advert        ad = new Advert(id, name, animalAge, animalWeight, kindOfAnimal, description, pictureString, DateTime.Now);
         db.Advert.Update(ad);
         db.SaveChanges();
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Message);
     }
 }
예제 #14
0
        public void CreateUser(CreateUserRequest request)
        {
            User user = new User(
                request.Name,
                request.Surname,
                request.Phone,
                request.Password);

            using (AdvertContext db = new AdvertContext())
            {
                db.Users.Add(user);
                db.SaveChanges();
            }
        }
예제 #15
0
 public User Get(string phone, string password)
 {
     using (AdvertContext db = new AdvertContext())
     {
         IEnumerable <User> users = db.Users.ToList();
         foreach (var u in users)
         {
             if (u.Phone.Equals(phone) && u.Password.Equals(password))
             {
                 return(u);
             }
         }
     }
     return(null);
 }
예제 #16
0
        public AdvertRepositoryTests()
        {
            var dbObtions = new DbContextOptionsBuilder <AdvertContext>()
                            .UseInMemoryDatabase(databaseName: "AdvertTest")
                            .Options;

            _context = new AdvertContext(dbObtions);


            _context.Database.EnsureDeleted();
            _context.Database.EnsureCreated();
            #region SeedData
            //Some mock adverts;
            var adverts = new[]
            {
                new Advert
                {
                    Id = 1, Title = "Audi A4 Avant", Fuel = FuelType.Diesel, Price = 15000, IsNew = false, Mileage = 35000,
                    FirstRegistration = new DateTime(2015, 10, 1)
                },
                new Advert
                {
                    Id = 2, Title = "Audi A3", Fuel = FuelType.Diesel, Price = 5000, IsNew = false, Mileage = 135000,
                    FirstRegistration = new DateTime(2015, 10, 1)
                },
                new Advert
                {
                    Id = 3, Title = "Audi A2", Fuel = FuelType.Gasoline, Price = 3000, IsNew = false, Mileage = 235000,
                    FirstRegistration = new DateTime(2013, 10, 1)
                },
                new Advert
                {
                    Id = 4, Title = "Audi A5", Fuel = FuelType.Diesel, Price = 25000, IsNew = false, Mileage = 5000,
                    FirstRegistration = new DateTime(2012, 10, 1)
                },
                new Advert
                {
                    Id = 5, Title = "Volkswagen Golf", Fuel = FuelType.Diesel, Price = 15000, IsNew = false, Mileage = 1000,
                    FirstRegistration = new DateTime(2011, 10, 1)
                }
            }.ToList();

            _context.Adverts.AddRange(adverts);
            _context.SaveChanges();
            #endregion
            _advertRepository = new AdvertRepository(_context);
        }
        public ControllerTestsBase(IntegrationTestsWebApplicationFactory <TestStartup> factory,
                                   string baseUri)
        {
            _factory = factory;

            _mapper = _factory.Services.GetRequiredService <IMapper>();

            context = ConfigureTestDbContext();
            context.Database.Migrate();
            db = new UnitOfWork(context);

            if (!String.IsNullOrEmpty(baseUri))
            {
                _factory.ClientOptions.BaseAddress = new Uri(baseUri);
            }

            _client = _factory.CreateClient();
        }
예제 #18
0
        public IEnumerable <Advert> GetU(long phone)
        {
            List <Advert> adverts;
            List <Advert> radverts = new List <Advert>();

            using (AdvertContext db = new AdvertContext())
            {
                adverts = db.Advert.ToList();
            }
            foreach (var advert in adverts)
            {
                if (advert.OwnerPhone == phone)
                {
                    radverts.Add(advert);
                }
            }
            return(radverts);
        }
예제 #19
0
        public async Task <bool> Register(string username, string password)
        {
            using (var db = new AdvertContext())
            {
                var user = await db.Users.SingleOrDefaultAsync(x => x.Username == username && x.Password == password);

                if (user == null)
                {
                    // добавляем пользователя в бд
                    db.Users.Add(new User {
                        Email = username, Password = password
                    });
                    await db.SaveChangesAsync();

                    return(true);
                }
            }

            return(false);
        }
예제 #20
0
        private void ValidateUser(string phone, string password)
        {
            List <User> users;

            using (AdvertContext db = new AdvertContext())
            {
                users = db.Users.ToList();
            }
            int i = 0;

            foreach (var u in users)
            {
                if (phone.Equals(u.Phone) && password.Equals(u.Password))
                {
                    i++;
                }
            }
            if (i != 1)
            {
                throw new UnauthorizedAccessException();
            }
        }
예제 #21
0
        public void CreateAdvert(CreateAdvertRequest request)
        {
            ValidateUser(request.Phone, request.Password);
            Advert advert = new Advert
            {
                District    = request.District,
                Street      = request.Street,
                HouseNumber = request.HouseNumber,
                Area        = request.Area,
                Floor       = request.Floor,
                Rooms       = request.Rooms,
                Description = request.Description,
                Price       = request.Price,
                OwnerName   = request.OwnerName,
                OwnerPhone  = request.OwnerPhone
            };

            using (AdvertContext db = new AdvertContext())
            {
                db.Advert.Add(advert);
                db.SaveChanges();
            }
        }
예제 #22
0
 public AdvertRepository(AdvertContext advertContext)
 {
     _context = advertContext;
 }
예제 #23
0
 public CampaignQueryService(AdvertContext context)
 {
     _context = context;
 }
예제 #24
0
 public AdvertsController(AdvertContext context)
 {
     _context = context;
 }
예제 #25
0
 public SqlUserService(AdvertContext advertContext)
 {
     _advertContext = advertContext;
 }
 // Constructor
 public WebParserController(AdvertContext context)
 {
     _context = context;
 }
 public NotificationRepository(AdvertContext context)
 {
     _context = context;
 }
예제 #28
0
 public PictureRepository(AdvertContext context) : base(context)
 {
 }
예제 #29
0
 public RealEstateRepository(AdvertContext context) : base(context)
 {
 }
예제 #30
0
 public ClientRepository(AdvertContext context)
 {
     _context = context;
 }