void IAccountService.Create(UserData data, bool isExternal) { var users = _userRepository.Query(o => o.UserName == data.UserName); if (users.Any()) throw new ArgumentException("Пользователь с таким именем существует."); users = _userRepository.Query(o => o.Email == data.Email); if (users.Any()) throw new ArgumentException("Пользователь с такой электронной почтой существует."); var user = new User { UserName = data.UserName, Email = data.Email, Password = GetHashingPassword(data.Password), CreateDate = data.CreateDate, IsActive = data.IsActive, LastActivity = data.LastActivity, }; if (isExternal) { if (data.UserExternalInfo == null) throw new ArgumentException("Данные о провайдере и внешнем ключе отсутсвуют."); var userExternalInfo = new UserExternalInfo { ProviderKey = data.UserExternalInfo.ProviderKey, ProviderName = data.UserExternalInfo.ProviderName, User = user }; _userExternalInfoRepository.Add(userExternalInfo); } var role = _roleRepository.Query(o => o.Id == (int)RoleEnum.User).SingleOrDefault(); if (role == null) throw new ArgumentNullException(string.Format("role")); user.Role = role; _userRepository.Add(user); UnitOfWork.Commit(); }
public CommentData() { Writer = new UserData(); }