/// <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}")); }
/// <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); }
/// <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); }
/// <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}")); }
/// <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}")); }
/// <summary> /// После добавление пользователя в репозитарий /// генерирует ссылку, по которой пользователь /// в случае получения уведомлении об активации, может /// активировать аккаунт. /// </summary> /// <param name="user">Экземпляр пользователя.</param> /// <returns>Ссылку для активации аккаунта.</returns> public string CreateConfirmationLink(Common.Models.User.User user) { // todo надо сделать реализацию, после того, как "прорастут" вьюхи. return(string.Empty); }
/// <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); }
/// <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); }
/// <summary> /// Валидирует (проверяем) экземпляр пользователя /// при его (вернее, перед) изменением. /// </summary> /// <param name="user">Экземпляр пользователя, который проверяется.</param> /// <returns>Возвращает <see langword='true'/>, если проверка завершена успешно.</returns> public bool UserValidateOnUpdating(Common.Models.User.User user) { return(true); }
/// <summary> /// Валидирует (проверяет) экземпляр пользователя /// при его (вернее, перед) добавлении (регистрации) в хранилище данных. /// Минимальный набор данных. /// </summary> /// <param name="user">Экземпляр пользователя, который проверяется.</param> /// <returns>Возвращает <see langword='true'/>, если проверка завершена успешно.</returns> public bool UserValidateOnAddition(Common.Models.User.User user) { return(UserValidateOnAdditionCheckRequiredFields(user) && UserValidateOnAdditionCheckLogicAndFormat(user)); }
/// <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)); }
/// <summary> /// После добавление пользователя в репозитарий /// генерирует ссылку, по которой пользователь /// в случае получения уведомлении об активации, может /// активировать аккаунт. /// </summary> /// <param name="user">Экземпляр пользователя.</param> /// <returns>Ссылку для активации аккаунта.</returns> public string CreateConfirmationLink(Common.Models.User.User user) { // todo надо сделать реализацию, после того, как "прорастут" вьюхи. throw new NotImplementedException(); }