public async Task <UserGetFullApiModel> Login(string login, string password, UserContactTypeEnum contactType) { var contact = login.ToLower(); var hash = _passwordManager.GetHash(password); User user = await _repository.FirstOrDefaultAsync(x => x.Email == contact && x.Password == hash); if (user == null) { throw new ArgumentException($"Login or password is not valid"); } var userModel = _dataMapper.Parse <User, UserGetFullApiModel>(user); return(userModel); }
public async Task <UserGetFullApiModel> Registration(string login, string password, string userName, UserContactTypeEnum contactType, UserProfileAddApiModel userProfile) { if (await _repository.AnyAsync(x => x.Email == login)) { throw new ArgumentException($"User with this email already exist"); } if (await _repository.AnyAsync(x => x.UserName == userName)) { throw new ArgumentException($"User with this userName already exist"); } var contact = login.ToLower(); var hash = _passwordManager.GetHash(password); User user = await CreateByEmail(contact, hash); user.SetId(); user.UserName = userName; user.UserProfile = _dataMapper.Parse <UserProfileAddApiModel, UserProfile>(userProfile); user.UserProfileId = user.Id; user.UserProfile.Id = user.Id; user.UserProfile.Created = DateTime.UtcNow; user.UserProfile.Updated = user.UserProfile.Created; await _repository.Add(user); user.UserRoles = (await _userRoleRepository.AddRoles(user.Id, RoleHelper.Current.User.Id)).ToList(); var userModel = _dataMapper.Parse <User, UserGetFullApiModel>(user); return(userModel); }