コード例 #1
0
        private void SeedUsers(GmiContext context)
        {
            context.Roles.AddOrUpdate(a => a.Id, new Role()
            {
                Name = "Admin",
                Id   = "Admin",
            });


            string password = new PasswordHasher().HashPassword("1122");
            string userId   = "E428D8D6-4C5E-4D33-9437-569195B3B80A".ToLower();

            context.Users.AddOrUpdate(a => a.Id,
                                      new User()
            {
                Id            = userId.ToLower(),
                UserName      = "******",
                Email         = "*****@*****.**",
                FirstName     = new LocalizableTextRequired("User", "User"),
                LastName      = new LocalizableTextRequired("User", "User"),
                MiddleName    = new LocalizableText("User", "User"),
                PasswordHash  = password,
                PhoneNumber   = "0533333271",
                SecurityStamp = Guid.NewGuid().ToString("D")
            });
        }
コード例 #2
0
        public virtual IEnumerable <TEntity> Get <TEntity>(
            Expression <Func <TEntity, bool> > filter = null,
            Func <IQueryable <TEntity>, IOrderedQueryable <TEntity> > orderBy = null,
            string[] includeProperties = null, int?maxSize = null) where TEntity : class, new()
        {
            GmiContext context = _context ?? new GmiContext();

            var dbSet = context.Set <TEntity>();

            IQueryable <TEntity> query = dbSet;

            if (filter != null)
            {
                query = query.Where(filter);
            }

            if (includeProperties != null)
            {
                foreach (var includeProperty in includeProperties)
                {
                    query = query.Include(includeProperty);
                }
            }

            if (orderBy != null)
            {
                if (maxSize.HasValue)
                {
                    query = orderBy(query);
                }
                else
                {
                    query = orderBy(query);
                }
            }
            else
            {
                if (maxSize.HasValue)
                {
                    query = query.Take(maxSize.Value);
                }
            }

            var result = query.ToList();

            if (_context == null)
            {
                context.Dispose();
            }

            return(result);
        }
コード例 #3
0
        public List <Role> GetRoles()
        {
            GmiContext context = _context ?? new GmiContext();

            var result = context.Roles.ToList();

            if (_context == null)
            {
                context.Dispose();
            }

            return(result);
        }
コード例 #4
0
        public virtual SearchResult <User> SearchUser(SearchCriteria <User> searchCriteria, params string[] includes)
        {
            GmiContext context = _context ?? new GmiContext();

            var dbSet = context.Set <User>();



            IQueryable <User> query = dbSet;

            if (includes != null)
            {
                foreach (var includeProperty in includes)
                {
                    query = query.Include(includeProperty);
                }
            }

            if (searchCriteria.FilterExpression != null)
            {
                query = query.Where(searchCriteria.FilterExpression);
            }

            if (searchCriteria.SortExpression != null)
            {
                query = searchCriteria.SortExpression(query);
            }
            else
            {
                query = query.OrderByDescending(entity => entity.Id);
            }

            SearchResult <User> result = new SearchResult <User>(searchCriteria)
            {
                TotalResultsCount = query.Count(),
            };

            query = query.Skip(searchCriteria.StartIndex).Take(searchCriteria.PageSize);

            result.Result = query.ToList();


            if (_context == null)
            {
                context.Dispose();
            }


            return(result);
        }
コード例 #5
0
        public User GetByID(string userId)
        {
            GmiContext context = _context ?? new GmiContext();

            var result = context.Users
                         .Include(a => a.Roles)
                         .Where(a => a.Id == userId).FirstOrDefault();

            if (_context == null)
            {
                context.Dispose();
            }

            return(result);
        }
コード例 #6
0
        public virtual void Delete <TEntity>(object id) where TEntity : class, new()
        {
            GmiContext context = _context ?? new GmiContext();

            var dbSet = context.Set <TEntity>();

            var found = dbSet.Find(id);

            dbSet.Remove(found);

            if (_context == null)
            {
                context.SaveChanges();
                context.Dispose();
            }
        }
コード例 #7
0
        private static CHRSUserManager CreateUserManagerDefaultSettings(GmiContext context)
        {
            var provider = new DpapiDataProtectionProvider("CHRSDataProtection");
            var manager  = new CHRSUserManager(new CHRSUserStore <User>(context));



            // Configure validation logic for usernames
            manager.UserValidator = new UserValidator <Domain.Models.User>(manager)
            {
                AllowOnlyAlphanumericUserNames = false,
                RequireUniqueEmail             = true
            };

            // Configure validation logic for passwords
            manager.PasswordValidator = new PasswordValidator
            {
                RequiredLength          = 4,
                RequireNonLetterOrDigit = false,
                RequireDigit            = false,
                RequireLowercase        = false,
                RequireUppercase        = false,
            };



            // Configure user lockout defaults
            manager.UserLockoutEnabledByDefault          = true;
            manager.DefaultAccountLockoutTimeSpan        = TimeSpan.FromMinutes(5);
            manager.MaxFailedAccessAttemptsBeforeLockout = 5;

            // Register two factor authentication providers. This application uses Phone and Emails as a step of receiving a code for verifying the user
            // You can write your own provider and plug it in here.
            manager.RegisterTwoFactorProvider("Phone Code", new PhoneNumberTokenProvider <Domain.Models.User>
            {
                MessageFormat = "Your security code is {0}"
            });
            manager.RegisterTwoFactorProvider("Email Code", new EmailTokenProvider <Domain.Models.User>
            {
                Subject    = "Security Code",
                BodyFormat = "Your security code is {0}"
            });
            manager.UserTokenProvider = new DataProtectorTokenProvider <Domain.Models.User>(provider.Create("EmailConfirmationForCHRSRegistered"));

            //manager.EmailService = new EmailService();
            return(manager);
        }
コード例 #8
0
        public virtual int Count <TEntity>() where TEntity : class, new()
        {
            GmiContext context = _context ?? new GmiContext();

            var dbSet = context.Set <TEntity>();

            int count;

            count = dbSet.Count();

            if (_context == null)
            {
                context.Dispose();
            }

            return(count);
        }
コード例 #9
0
        public virtual AccountSearchResult <TEntity> Search <TEntity>(AccountSearchCriteria <TEntity> searchCriteria, bool all = false) where TEntity : class, new()
        {
            GmiContext context = _context ?? new GmiContext();

            var dbSet = context.Set <TEntity>();

            IQueryable <TEntity> query = dbSet;


            if (searchCriteria.FilterExpression != null)
            {
                query = query.Where(searchCriteria.FilterExpression);
            }

            if (searchCriteria.SortExpression != null)
            {
                query = searchCriteria.SortExpression(query);
            }


            AccountSearchResult <TEntity> result = new AccountSearchResult <TEntity>(searchCriteria)
            {
                TotalResultsCount = query.Count(),
            };

            if (!all)
            {
                query = query.Skip(searchCriteria.StartIndex).Take(searchCriteria.PageSize);
            }


            result.Result = query.ToList();


            if (_context == null)
            {
                context.Dispose();
            }


            return(result);
        }
コード例 #10
0
        public virtual TEntity Create <TEntity>(TEntity entity) where TEntity : class, new()
        {
            GmiContext context = _context ?? new GmiContext();

            var dbSet = context.Set <TEntity>();

            //if (entity is AuditableEntity<User>)
            //    (entity as AuditableEntity).InsertAudit();


            dbSet.Add(entity);

            if (_context == null)
            {
                context.SaveChanges();
                context.Dispose();
            }

            return(entity);
        }
コード例 #11
0
        public virtual AccountSearchResult <TEntity> SearchUser <TEntity>(AccountSearchCriteria <TEntity> searchCriteria) where TEntity : User, new()
        {
            GmiContext context = _context ?? new GmiContext();

            var dbSet = context.Set <TEntity>();

            IQueryable <TEntity> query = dbSet;


            if (searchCriteria.FilterExpression != null)
            {
                query = query.Where(searchCriteria.FilterExpression);
            }

            if (searchCriteria.SortExpression != null)
            {
                query = searchCriteria.SortExpression(query);
            }
            else
            {
                query = query.OrderByDescending(entity => entity.Id);
            }

            AccountSearchResult <TEntity> result = new AccountSearchResult <TEntity>(searchCriteria)
            {
                TotalResultsCount = query.Count(),
            };

            query = query.Skip(searchCriteria.StartIndex).Take(searchCriteria.PageSize);

            result.Result = query.ToList();


            if (_context == null)
            {
                context.Dispose();
            }


            return(result);
        }
コード例 #12
0
        public virtual void Delete(User entityToDelete)
        {
            GmiContext context = _context ?? new GmiContext();



            var dbSet = context.Set <User>();

            if (context.Entry(entityToDelete).State == EntityState.Detached)
            {
                dbSet.Attach(entityToDelete);
            }

            dbSet.Remove(entityToDelete);

            if (_context == null)
            {
                context.SaveChanges();
                context.Dispose();
            }
        }
コード例 #13
0
 public AccountRepository(GmiContext context)
 {
     this._context = context;
 }
コード例 #14
0
 public static CHRSUserManager Initialize(GmiContext context)
 {
     return(CreateUserManagerDefaultSettings(context));
 }
コード例 #15
0
 public CHRSUserStore(GmiContext context) : base(context)
 {
 }