Exemplo n.º 1
0
        public async Task <OperationResult> AddUserAsync(InpAddUser Input)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(Input.Email))
                {
                    throw new ArgumentNullException("Email cant be null.");
                }

                if (string.IsNullOrWhiteSpace(Input.PhoneNumber))
                {
                    throw new ArgumentNullException("PhoneNumber cant be null.");
                }

                if (string.IsNullOrWhiteSpace(Input.FirstName))
                {
                    throw new ArgumentNullException("FirstName cant be null.");
                }

                if (string.IsNullOrWhiteSpace(Input.LastName))
                {
                    throw new ArgumentNullException("LastName cant be null.");
                }

                if (string.IsNullOrWhiteSpace(Input.Password))
                {
                    throw new ArgumentNullException("Password cant be null.");
                }

                tblUsers tUser = new tblUsers()
                {
                    Date          = DateTime.Now,
                    Email         = Input.Email,
                    FirstName     = Input.FirstName,
                    LastName      = Input.LastName,
                    AccessLevelId = Guid.Parse(await _AccesslevelApplication.GetIdByNameAsync("Users")),
                    IsActive      = true,
                    PhoneNumber   = Input.PhoneNumber,
                    UserName      = Input.Email
                };

                var Result = await _UserRepository.CreateUserAsync(tUser, Input.Password);

                if (Result.Succeeded)
                {
                    if (_UserRepository.RequireConfirmedEmail())
                    {
                        return(new OperationResult().Succeeded(1, tUser.Id.ToString()));
                    }
                    else
                    {
                        return(new OperationResult().Succeeded("UserCreatedSuccessfully"));
                    }
                }
                else
                {
                    return(new OperationResult().Failed(string.Join(", ", Result.Errors.Select(a => a.Description))));
                }
            }
            catch (Exception ex)
            {
                _Logger.Error(ex);
                return(new OperationResult().Failed("Error500"));
            }
        }
        public async Task <OperationResult> AddUserAsync(InpAddUser input)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(input.Email))
                {
                    throw new ArgumentNullException("Email cant be null.");
                }

                if (string.IsNullOrWhiteSpace(input.PhoneNumber))
                {
                    throw new ArgumentNullException("PhoneNumber cant be null.");
                }

                if (string.IsNullOrWhiteSpace(input.FirstName))
                {
                    throw new ArgumentNullException("FirstName cant be null.");
                }

                if (string.IsNullOrWhiteSpace(input.LastName))
                {
                    throw new ArgumentNullException("LastName cant be null.");
                }

                if (string.IsNullOrWhiteSpace(input.Password))
                {
                    throw new ArgumentNullException("Password cant be null.");
                }

                TblUser tUser = new TblUser()
                {
                    Date          = DateTime.Now,
                    Email         = input.Email,
                    FirstName     = input.FirstName,
                    LastName      = input.LastName,
                    AccessLevelId = Guid.Parse(await _accesslevelApplication.GetIdByNameAsync("Users")),
                    IsActive      = true,
                    PhoneNumber   = input.PhoneNumber,
                    UserName      = input.Email
                };
                var result = await _userRepository.CreateUserAsync(tUser, input.Password);

                if (result.Succeeded)
                {
                    if (_userRepository.RequireConfirmEmail())
                    {
                        /*
                         * code = 1
                         * یعنی کاربر ثبت نام کرده و باید ایمیلش هم تایید کند
                         */
                        return(new OperationResult().Succeed(1, tUser.Id.ToString()));
                    }
                    else
                    {
                        //کاربر نیاز به تایید ایمیل ندارد
                        return(new OperationResult().Succeed("UserCreatedSuccessfully"));
                    }
                }
                else
                {
                    return(new OperationResult().Failed(string.Join(", ", result.Errors.Select(x => x.Description))));
                }
            }
            catch (Exception ex)
            {
                _logger.Error(ex);
                return(new OperationResult().Failed("Error500"));
            }
        }