コード例 #1
0
        /// <summary>
        /// Добавляет заданного пользователя в хранилище данных
        /// и возвращает идентификатор добавленного пользователя.
        /// </summary>
        /// <param name="user">Экземпляр пользователя для добавления.</param>
        /// <returns>Идентификатор пользователя.</returns>
        public async Task <IdentityResult> AddUser(Common.Models.User.User user)
        {
            //user.AccountLevel = _userAccountLevelService.GetUserAccountLevel(1);
            var dbUser = Mapper.Map <DbUser>(user);

            dbUser.Id = Guid.NewGuid().ToString();

            var DbUserProfile = new DbUserProfile()
            {
                Email = new Collection <DbEmail>()
                {
                    new DbEmail()
                    {
                        Name = "emptyEmail",
                    }
                },
            };

            dbUser.DbUserProfile = DbUserProfile;

            dbUser.Email             = "emptyEmail";
            dbUser.PhoneNumber       = "emptyPhoneNumber";
            dbUser.TwoFactorEnabled  = false;
            dbUser.LockoutEnabled    = false;
            dbUser.AccessFailedCount = 0;

            var result = await _usermanager.CreateAsync(dbUser)
                         .ConfigureAwait(false);

            return(result);

            throw new InvalidOperationException(result.Errors.Aggregate((a, b) => $"{a} {b}"));
        }
コード例 #2
0
        /// <summary>
        /// Добавляет заданного пользователя в хранилище данных
        /// и возвращает идентификатор добавленного пользователя.
        /// </summary>
        /// <param name="user">Экземпляр пользователя для добавления.</param>
        /// <returns>Идентификатор пользователя.</returns>
        public async Task <IdentityResult> AddUser(Common.Models.User.User user)
        {
            var dbUser = Mapper.Map <DbUser>(user);

            dbUser.Id = Guid.NewGuid().ToString();

            var DbUserProfile = new DbUserProfile()
            {
                Email = new Collection <DbEmail>()
                {
                    new DbEmail()
                    {
                        Name = "emptyEmail",
                    }
                },
            };

            dbUser.DbUserProfile = DbUserProfile;

            dbUser.Email             = "emptyEmail";
            dbUser.PhoneNumber       = "emptyPhoneNumber";
            dbUser.TwoFactorEnabled  = false;
            dbUser.LockoutEnabled    = false;
            dbUser.AccessFailedCount = 0;

            var result = await _usermanager.CreateAsync(dbUser)
                         .ConfigureAwait(false);

            return(result);
        }
コード例 #3
0
        /// <summary>
        /// Добавляет заданного пользователя в хранилище данных
        /// и возвращает идентификатор добавленного пользователя.
        /// </summary>
        /// <param name="user">Экземпляр пользователя для добавления.</param>
        /// <returns>Идентификатор пользователя.</returns>
        public async Task <IdentityResult> AddUser(Common.Models.User.User user)
        {
            var dbUser = Mapper.Map <DbUser>(user);

            dbUser.Id = Guid.NewGuid().ToString();

            var dbUserProfile = new DbUserProfile
            {
                Email = new Collection <DbEmail>
                {
                    new DbEmail
                    {
                        Name = Resources.EMPTY_EMAIL_DATA,
                    }
                }
            };

            dbUser.TwoFactorEnabled  = false;
            dbUser.LockoutEnabled    = false;
            dbUser.AccessFailedCount = 0;
            dbUser.DbUserProfile     = dbUserProfile;
            dbUser.UserName          = user.AccountLevel.Name;
            dbUser.Email             = Resources.EMPTY_EMAIL_DATA;
            dbUser.PhoneNumber       = Resources.EMPTY_PHONE_DATA;

            var result = await _usermanager.CreateAsync(dbUser, user.Password)
                         .ConfigureAwait(false);

            return(result);
        }
コード例 #4
0
        /// <summary>
        /// Обновляет информацию заданного пользователя в хранилище данных.
        /// </summary>
        /// <param name="user">Экземпляр пользователя для обновления.</param>
        /// <returns> Task </returns>
        public async Task UpdateUser(Common.Models.User.User user)
        {
            var dbUser = Mapper.Map <DbUser>(user);

            var result = await _usermanager.UpdateAsync(dbUser).ConfigureAwait(false);

            if (result.Succeeded)
            {
                return;
            }

            throw new InvalidOperationException(result.Errors.Aggregate((a, b) => $"{a} {b}"));
        }
コード例 #5
0
        /// <summary>
        /// Добавляет заданного пользователя в хранилище данных
        /// и возвращает идентификатор добавленного пользователя.
        /// </summary>
        /// <param name="user">Экземпляр пользователя для добавления.</param>
        /// <returns>Идентификатор пользователя.</returns>
        public async Task <string> AddUser(Common.Models.User.User user)
        {
            user.AccountLevel = _userAccountLevelService.GetUserAccountLevel(1);
            var dbUser = Mapper.Map <DbUser>(user);
            var result = await _usermanager.CreateAsync(dbUser, user.Password)
                         .ConfigureAwait(false);

            if (result.Succeeded)
            {
                // set user role
                await _usermanager.AddToRoleAsync(dbUser.Id, "user").ConfigureAwait(false);

                // add user claims
                var claim = new Claim("", "");
                await _usermanager.AddClaimAsync(dbUser.Id, claim);

                return(dbUser.Id);
            }

            throw new InvalidOperationException(result.Errors.Aggregate((a, b) => $"{a} {b}"));
        }
コード例 #6
0
 /// <summary>
 /// После добавление пользователя в репозитарий
 /// генерирует ссылку, по которой пользователь
 /// в случае получения уведомлении об активации, может
 /// активировать аккаунт.
 /// </summary>
 /// <param name="user">Экземпляр пользователя.</param>
 /// <returns>Ссылку для активации аккаунта.</returns>
 public string CreateConfirmationLink(Common.Models.User.User user)
 {
     // todo надо сделать реализацию, после того, как "прорастут" вьюхи.
     return(string.Empty);
 }
コード例 #7
0
        /// <summary>
        /// Проверяем формат и другие условия валидации данных модели пользователя.
        /// </summary>
        /// <param name="user">Экземпляр пользователя.</param>
        /// <returns>Возвращает истинно, если проверка прошла успешно.</returns>
        public bool UserValidateOnAdditionCheckLogicAndFormat(Common.Models.User.User user)
        {
            UserValidatorLogicAndFormat validator = new UserValidatorLogicAndFormat();

            return(validator.Validate(user).IsValid);
        }
コード例 #8
0
        /// <summary>
        /// Проверяем наличие обязательных полей в модели.
        /// </summary>
        /// <param name="user">Экземпляр пользователя.</param>
        /// <returns>Возвращает истинно, если проверка прошла успешно.</returns>
        public bool UserValidateOnAdditionCheckRequiredFields(Common.Models.User.User user)
        {
            UserValidatorCheckRequiredFields validator = new UserValidatorCheckRequiredFields();

            return(validator.Validate(user).IsValid);
        }
コード例 #9
0
 /// <summary>
 /// Валидирует (проверяем) экземпляр пользователя
 /// при его (вернее, перед) изменением.
 /// </summary>
 /// <param name="user">Экземпляр пользователя, который проверяется.</param>
 /// <returns>Возвращает <see langword='true'/>, если проверка завершена успешно.</returns>
 public bool UserValidateOnUpdating(Common.Models.User.User user)
 {
     return(true);
 }
コード例 #10
0
 /// <summary>
 /// Валидирует (проверяет) экземпляр пользователя
 /// при его (вернее, перед) добавлении (регистрации) в хранилище данных.
 /// Минимальный набор данных.
 /// </summary>
 /// <param name="user">Экземпляр пользователя, который проверяется.</param>
 /// <returns>Возвращает <see langword='true'/>, если проверка завершена успешно.</returns>
 public bool UserValidateOnAddition(Common.Models.User.User user)
 {
     return(UserValidateOnAdditionCheckRequiredFields(user) &&
            UserValidateOnAdditionCheckLogicAndFormat(user));
 }
コード例 #11
0
        /// <summary>
        /// получение инфы о платеже.
        /// </summary>
        /// <param name="user">Экземпляр пользователя, для которого ищем инфу о платеже.</param>
        /// <returns>Платеж пользователя</returns>
        public UserPayment GetUserPayment(Common.Models.User.User user)
        {
            var dbPayment = _unitOfWork.UserPaymentRepository.Get(p => p.UserId == user.Id);

            return(Mapper.Map <UserPayment>(dbPayment));
        }
コード例 #12
0
 /// <summary>
 /// После добавление пользователя в репозитарий
 /// генерирует ссылку, по которой пользователь
 /// в случае получения уведомлении об активации, может
 /// активировать аккаунт.
 /// </summary>
 /// <param name="user">Экземпляр пользователя.</param>
 /// <returns>Ссылку для активации аккаунта.</returns>
 public string CreateConfirmationLink(Common.Models.User.User user)
 {
     // todo надо сделать реализацию, после того, как "прорастут" вьюхи.
     throw new NotImplementedException();
 }