Exemple #1
0
        public IdentityResult AddUser(SystemUser user, bool isAdmin = false)
        {
            if (!isAdmin && !CheckDbConnection(user.Server, user.DbName, user.DbUserName, user.DbPassword))
            {
                throw new DBConcurrencyException("Hedef veritabanina baglanilamadi. Lutfen bilgilerinizi kontorl edin. Veritabaninizin uzaktan erisilebilir olduguna emin olun.");
            }
            var pass = user.PasswordHash;
            MarketPlaceDbContext dbContext = null;

            user.PasswordHash = null;
            var role = isAdmin ? "Admin" : "Customer";

            if (!isAdmin)
            {
                var options          = new DbContextOptionsBuilder <MarketPlaceDbContext>();
                var connectionString = string.Format(_configuration.GetConnectionString("DynamicLocalDatabase"), $"db_{user.UserName.ToLower()}");
                options.UseMySql(connectionString);
                dbContext = new MarketPlaceDbContext(options.Options);
                dbContext.Database.Migrate();
                user.Settings = new UserSettings();
            }
            var result = _userManager.CreateAsync(user, pass).Result;

            if (result.Succeeded)
            {
                _userManager.AddToRoleAsync(user, role).Wait();
                SeedStores(dbContext);
            }
            else if (!isAdmin)
            {
                dbContext?.Database.EnsureDeleted();
            }
            return(result);
        }
Exemple #2
0
        public void SyncDatabase(string userName)
        {
            _user = _userManager.FindByNameAsync(userName).Result;
            var connectionString = $"Server={_user.Server}; Database={_user.DbName}; Uid={_user.DbUserName}; Pwd={_user.DbPassword};";

            _connection = new MySqlConnection(connectionString);
            var unformatedConnectionString = _configuration.GetConnectionString("DynamicLocalDatabase");
            var connectionStringByUser     = string.Format(unformatedConnectionString, $"db_{_user.UserName}");
            var options = new DbContextOptionsBuilder <MarketPlaceDbContext>().UseMySql(connectionStringByUser).Options;

            _dbContext = new MarketPlaceDbContext(options);
            SyncDatabase();
        }
Exemple #3
0
        public CommonService(MarketPlaceDbContext dbContext, IHttpContextAccessor httpContextAccessor, UserManager <SystemUser> userManager, IConfiguration configuration)
        {
            if (httpContextAccessor?.HttpContext?.User?.Identity?.Name == null)
            {
                return;
            }
            _dbContext   = dbContext;
            _userManager = userManager;
            _user        = userManager.FindByNameAsync(httpContextAccessor.HttpContext.User.Identity.Name).Result;
            var connectionString = $"Server={_user.Server}; Database={_user.DbName}; Uid={_user.DbUserName}; Pwd={_user.DbPassword};";

            _connection    = new MySqlConnection(connectionString);
            _configuration = configuration;
        }
Exemple #4
0
        private void SeedStores(MarketPlaceDbContext dbContext)
        {
            var stores = new List <Store>
            {
                new Store
                {
                    store_id = 1,
                    name     = "N11",
                    image    = "n11.png",
                    ssl      = "n11_default_ssl",
                    url      = "https://www.n11.com"
                },
                new Store
                {
                    store_id = 2,
                    name     = "Trendyol",
                    image    = "trendyol.png",
                    ssl      = "trendyol_default_ssl",
                    url      = "https://www.trendyol.com"
                },
                new Store
                {
                    store_id = 3,
                    name     = "Hepsiburada",
                    image    = "hepsiburada.png",
                    ssl      = "hepsiburada_default_ssl",
                    url      = "https://www.hepsiburada.com"
                },
                new Store
                {
                    store_id = 4,
                    name     = "Gittigidiyor",
                    image    = "gittigidiyor.png",
                    ssl      = "gittigidiyor_default_ssl",
                    url      = "https://www.gittigidiyor.com"
                },
                new Store
                {
                    store_id = 5,
                    name     = "Cicek Sepeti",
                    image    = "ciceksepeti.png",
                    ssl      = "ciceksepeti_default_ssl",
                    url      = "https://www.ciceksepeti.com"
                },
            };

            dbContext.Stores.AddRange(stores);
            dbContext.SaveChanges();
        }
Exemple #5
0
        public IdentityResult DeleteUser(int userId)
        {
            var user = _accountDbContext.Users.Find(userId);

            if (user.UserName == _httpContextAccessor.HttpContext.User.Identity.Name)
            {
                return(null);
            }
            var isCustomer = _userManager.IsInRoleAsync(user, "Customer").Result;
            var result     = _userManager.DeleteAsync(user).Result;

            if (result.Succeeded && isCustomer)
            {
                var options          = new DbContextOptionsBuilder <MarketPlaceDbContext>();
                var connectionString = string.Format(_configuration.GetConnectionString("DynamicLocalDatabase"), $"db_{user.UserName.ToLower()}");
                options.UseMySql(connectionString);
                var dbContext = new MarketPlaceDbContext(options.Options);
                dbContext.Database.EnsureDeleted();
            }
            return(result);
        }
 public VehicleRepository(MarketPlaceDbContext context)
 {
     this.context = context;
 }
Exemple #7
0
 public ClassifiedAdRepositoryEF(MarketPlaceDbContext dbContext)
 {
     _dbContext = dbContext;
 }
 public FeaturesController(MarketPlaceDbContext context, IMapper mapper)
 {
     this.context = context;
     this.mapper  = mapper;
 }
Exemple #9
0
 public LocalService(MarketPlaceDbContext dbContext, AccountDbContext accountDbContext)
 {
     _dbContext        = dbContext;
     _accountDbContext = accountDbContext;
 }
Exemple #10
0
 public ProductRepository(MarketPlaceDbContext context)
 {
     this.context = context;
 }
Exemple #11
0
 public UserProfileRepositoryEF(MarketPlaceDbContext dbContext)
 => _dbContext = dbContext;
 public ManufacturersController(MarketPlaceDbContext context, IMapper mapper)
 {
     this.context = context;
     this.mapper  = mapper;
 }
Exemple #13
0
 public UnitofWork(MarketPlaceDbContext context)
 {
     this.context = context;
 }
Exemple #14
0
 public PurchaseRepository(MarketPlaceDbContext context)
 {
     this.context = context;
 }
 public AccountController(IAccountService accountService, MarketPlaceDbContext dbContext, ICommonService commonService)
 {
     _accountService = accountService;
     _dbContext      = dbContext;
     _commonService  = commonService;
 }