Exemplo n.º 1
0
        /// <summary>
        /// Creacion de usuario
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ValidationModel> AddUserApp(AddUserAppRequest request)
        {
            try
            {
                // return null;
                ApplicationUser appUser = new ApplicationUser()
                {
                    UserName = request.email,
                    Email    = request.email
                };
                var existeUser = await ExisteUsuario(request.email, request.email);

                if (existeUser)
                {
                    request.ValidationResults.Add(new ValidationResult("Usuario existente", new[] { "Usuario Existente" }));
                    return(request);
                }
                return(await CrearUserApp(request));
            }
            catch (CError e)
            {
                var jsonModel = JsonConvert.SerializeObject(request);
                throw _errorManager.AddError("AddUserApp", "UserService_AddUserApp", e, MethodBase.GetCurrentMethod(), jsonModel);
            }
            catch (System.Exception ex)
            {
                var jsonModel = JsonConvert.SerializeObject(request);
                throw _errorManager.AddError("Error metodo AddUserApp", "UserService_AddUserApp", ex, MethodBase.GetCurrentMethod(), jsonModel);
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> CreateUser([FromBody] AddUserAppRequest request)
        {
            try
            {
                var retorno = await _userSrv.AddUserApp(request);

                if (retorno.HasValidationErrors())
                {
                    return(new BadRequestObjectResult(retorno));
                }
                return(Ok(new ApiOkResponse(retorno)));
            }
            catch (CError ce)
            {
                throw ce;
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        private async Task <ValidationModel> CrearUserApp(AddUserAppRequest dto)
        {
            try {
                AddUserResponse _response = new AddUserResponse();
                ApplicationUser appUser   = new ApplicationUser()
                {
                    UserName = dto.email,
                    Email    = dto.email
                };
                // Genera passowrd aleatoria
                string pws     = GetPassword();
                var    _result = await _userManager.CreateAsync(appUser, pws);


                //_responseBase.bOK = _result.Succeeded;
                if (_result.Succeeded)
                {
                    var idUserApp = _userManager.FindByNameAsync(dto.email).Result.Id;
                    //Asociamos el rool al usuario
                    var bRolUser = await AssignUserRole(appUser, dto.idRool);

                    if (bRolUser)
                    {
                        //Insertamos en la tabla SecurityUser
                        await _iunitOfWork.SecurityUserRepository.InsertEntity(new Security_User()
                        {
                            Activo      = true,
                            Fecha_Alta  = DateTime.Now,
                            Username    = appUser.Email,
                            UID_COMPANY = Guid.Parse(dto.uicompany),
                            UID_PERSON  = Guid.Parse(dto.uiPerson),
                            UID_PROFILE = Guid.Parse(dto.idRool),
                            UID         = Guid.Parse(idUserApp)
                        });

                        await _iunitOfWork.SecurityUserRepository.SaverChangeAsyc();

                        // Enviar email.
                        string msj = "El usuario con username :"******" y con password: "******"*****@*****.**", msj, "Creacion usuario app");

                        _response = new AddUserResponse()
                        {
                            IdUser   = appUser.Id,
                            UserName = appUser.UserName,
                            Rol      = dto.idRool
                        };
                    }
                }
                else
                {
                    foreach (var error in _result.Errors)
                    {
                        var jsonModel = JsonConvert.SerializeObject(dto);
                        if (error.Code == "PasswordRequiresNonAlphanumeric")
                        {
                            throw _errorManager.AddError("Las contraseñas deben tener al menos un carácter no alfanumérico.", "CrearUserApp", MethodBase.GetCurrentMethod(), jsonModel);
                        }
                        if (error.Code == "PasswordTooShort")
                        {
                            throw _errorManager.AddError("Las contraseñas deben tener al menos 6 caracteres.", "CrearUserApp", MethodBase.GetCurrentMethod(), jsonModel);
                        }
                        if (error.Code == "PasswordRequiresDigit")
                        {
                            throw _errorManager.AddError("Las contraseñas deben tener al menos un dígito ('0' - '9')", "CrearUserApp", MethodBase.GetCurrentMethod(), jsonModel);
                        }
                    }
                }
                return(_response);
            }
            catch (CError ce)
            {
                var jsonModel = JsonConvert.SerializeObject(dto);
                throw _errorManager.AddError("Error CrearUserApp", "CrearUserApp", ce, MethodBase.GetCurrentMethod(), jsonModel);
            }
            catch (System.Exception ex)
            {
                var jsonModel = JsonConvert.SerializeObject(dto);
                throw _errorManager.AddError("Error CrearUserApp", "CrearUserApp", ex, MethodBase.GetCurrentMethod(), jsonModel);
            }
        }