Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
 public CommentData()
 {
     Writer = new UserData();
 }