예제 #1
0
        public Tenant GetTenantById(int id)
        {
            using (var context = ApplicationUserDbContext <ApplicationUser> .Create())
            {
                var tenant = context.Tenants.Where(x => x.Id == id).SingleOrDefault();

                return(tenant);
            }
        }
예제 #2
0
        public Tenant GetTenantByName(string name)
        {
            using (var context = ApplicationUserDbContext <ApplicationUser> .Create())
            {
                var tenant = context.Tenants.Where(x => x.Name.Equals((name == null || name == string.Empty ? "System" : name), StringComparison.InvariantCultureIgnoreCase)).SingleOrDefault();

                return(tenant);
            }
        }
예제 #3
0
        public async Task <Tenant> SaveTenantAsync(Tenant tenant)
        {
            using (var context = ApplicationUserDbContext <ApplicationUser> .Create())
            {
                context.Tenants.Add(tenant);
                await context.SaveChangesAsync();

                return(tenant);
            }
        }
예제 #4
0
        public ApplicationUser FindTenantUser(string tenant, string username, string password)
        {
            var context = ApplicationUserDbContext <ApplicationUser> .Create();

            var user = context.Users
                       .Include(x => x.Tenant)
                       .Where(x => x.UserName.Equals(username, StringComparison.InvariantCultureIgnoreCase))
                       .SingleOrDefault(x => x.Tenant.Name.Equals(tenant, StringComparison.InvariantCultureIgnoreCase));

            return(user);
        }
예제 #5
0
        /// <summary>
        /// Find out user 1. System Admin / 2. Normal user under tenant
        /// </summary>
        public async Task <ApplicationUser> FindTenantUserAsync(string tenant, string username, string password)
        {
            var context = ApplicationUserDbContext <ApplicationUser> .Create();

            ApplicationUser user = null;;

            user = tenant == null
                ? await context.Users
                   .Include(x => x.Tenant)
                   .Where(x => x.UserName.Equals(username, StringComparison.InvariantCultureIgnoreCase))
                   .SingleOrDefaultAsync()
                : await context.Users
                   .Include(x => x.Tenant)
                   .Where(x => x.UserName.Equals(username, StringComparison.InvariantCultureIgnoreCase))
                   .Where(x => x.Tenant.Name.Equals(tenant, StringComparison.InvariantCultureIgnoreCase))
                   .SingleOrDefaultAsync();

            if (await CheckPasswordAsync(user, password))
            {
                return(user);
            }

            return(null);
        }