public async override Task <string> AddAsync(UserAddApiModel model) { if (await _repository.AnyAsync(x => x.Email.ToLower() == model.Email.ToLower())) { throw new ArgumentException($"User with this Email already exist"); } if (await _repository.AnyAsync(x => x.Phone == model.Phone)) { throw new ArgumentException($"User with this Phone already exist"); } var passwordHash = AppHelper.Current.GetCryptoHash(model.Password); User user = new User(); user.Email = model.Email; user.Phone = model.Phone; user.UserName = model.UserName; user.Password = passwordHash; user.ActivityStatus = model.ActivityStatus; var userProfile = model.UserProfile; UserProfileHelper.Current.SetUserProfileDefaultDataForEntity(ref userProfile); user.SetId(); user.UserProfile = _dataMapper.Parse <UserProfileAddApiModel, UserProfile>(userProfile); user.UserProfileId = user.Id; user.UserProfile.Id = user.Id; user.UserProfile.ActivityStatus = user.ActivityStatus; user.UserProfile.FileEntityId = user.UserProfile.FileEntityId ?? "default-user"; await _repository.AddAsync(user); var roles = model.Roles.Select(x => x.Id).ToArray(); await _userRoleRepository.AddRolesAsync(user.Id, roles); return(user.Id); }
public async Task <UserGetFullApiModel> RegistrationAsync(string login, string password, ContactTypeEnum contactType, UserProfileAddApiModel userProfile) { var contact = login.ToLower(); var hash = AppHelper.Current.GetCryptoHash(password); User user = await CreateDefaultUserEntityAsync(contact, hash, contactType); UserProfileHelper.Current.SetUserProfileDefaultDataForRegistration(ref userProfile); user.SetId(); user.UserProfileId = user.Id; user.UserProfile = _dataMapper.Parse <UserProfileAddApiModel, UserProfile>(userProfile); user.UserProfile.Id = user.Id; await _userRepository.AddAsync(user); user.UserRoles = (await _userRoleRepository.AddRolesAsync(user.Id, RoleHelper.Current.User.Id)).ToList(); var userModel = _dataMapper.Parse <User, UserGetFullApiModel>(user); return(userModel); }