예제 #1
0
        private void SeedAppUsers(UnitOfWork db)
        {
            var testDataDeserializer = new TestDataDeserializer();
            var testDataDeacons      = testDataDeserializer.DeserializeDeaconsTestData();

            // Get users from external source and add to list.
            foreach (var testDataDeacon in testDataDeacons)
            {
                if (string.IsNullOrEmpty(testDataDeacon.SharepointEmail) ||
                    string.IsNullOrEmpty(testDataDeacon.FamDistrictDeacon))
                {
                    continue;
                }

                var names = GetTestAppUserNames(testDataDeacon.FamDistrictDeacon);
                int?ccgId = GetTestCcgId(testDataDeacon.GroupName, db);

                _appUsers.Add(new CCGAppUser
                {
                    Email        = testDataDeacon.SharepointEmail,
                    UserName     = testDataDeacon.SharepointEmail,
                    LastName     = names["Last Name"],
                    FirstName    = names["First Name"],
                    CcgId        = ccgId,
                    EmailAddress = testDataDeacon.Email,
                    PhoneNumber  = GetRandomPhoneNumber(),
                });
            }

            // Add users to data store
            foreach (var appUser in _appUsers)
            {
                var dbSet = _dbContext.Set <CCGAppUser>();


                using (var userStore = new UserStore <CCGAppUser>(_dbContext))
                    using (var userManager = new ApplicationUserManager(userStore))
                    {
                        // if user exists, update
                        if (dbSet.Any(u => u.UserName.Equals(appUser.UserName)))
                        {
                            var user = userManager.Users.SingleOrDefault(u => u.UserName.Equals(appUser.UserName));
                            user.Email        = appUser.Email;
                            user.UserName     = appUser.UserName;
                            user.LastName     = appUser.LastName;
                            user.FirstName    = appUser.FirstName;
                            user.CcgId        = appUser.CcgId;
                            user.EmailAddress = appUser.EmailAddress;
                            user.PhoneNumber  = appUser.PhoneNumber;

                            _dbContext.Entry(user).State = EntityState.Modified;

                            userManager.Update(user);
                        }
                        else
                        {
                            // else add user
                            if (appUser != null)
                            {
                                userManager.Create(appUser);
                            }
                        }
                    }
            }
        }
 public virtual void Update(TEntity entity)
 {
     context.Entry(entity).State = EntityState.Modified;
     Save(context);
 }