/// <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); } }
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; } }
/// <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); } }