public string CreateUsuario(UsuarioViewModel model) { var rolesList = model.ArrayRoles != null?model.ArrayRoles.Split(',').ToList() : new List <string>(); if (ValidarUsuario(model)) { try { Random r = new Random(); int randNum = r.Next(1000000); string sixDigitNumber = randNum.ToString("D6"); var encripted_password = Encrypter.Encryption(sixDigitNumber, Parametro.GetValue("3DESKey")); _logger.LogInformation("Contraseña encriptada correctamente."); var usuario = new Usuario() { Apellido = model.Apellido, Nombre = model.Nombre, Email = model.Email, Contrasena = encripted_password }; var result = _uow.UsuarioRepository.Create(usuario); _uow.UsuarioRepository.Save(); foreach (var rol in rolesList) { var usuarioRol = new UsuarioRol() { RolId = int.Parse(rol), UsuarioId = result.UsuarioId }; _uow.UsuarioRolRepository.Create(usuarioRol); _uow.UsuarioRolRepository.Save(); } var tokenGuid = Guid.NewGuid().ToString(); var token = new UsuarioToken() { UsuarioId = result.UsuarioId, FechaExpiracion = DateTime.Now.AddMinutes(Convert.ToDouble(Helper.Parametro.GetValue("TiempoExpiracionTokenMail"))), Usado = false, Token = tokenGuid }; MailUsuarioModel mailModel = new MailUsuarioModel() { TokenUrl = tokenGuid, Password = sixDigitNumber, UsuarioApellido = result.Apellido, UsuarioNombre = result.Nombre, Email = result.Email, Usuario = result.Email, EsAdministrador = _uow.UsuarioRolRepository.AllIncluding(x => x.Rol).Any(x => x.UsuarioId == result.UsuarioId && x.Rol.Codigo == Helper.EstadosHelper.UsuarioDefault.ADM.ToString()) }; sender.SendMailNewUsuario(mailModel); var tokenCreated = _uow.UsuarioTokenRepository.Create(token); _uow.UsuarioRepository.Save(); _logger.LogInformation("Envio de email correctamente"); _logger.LogInformation("Usuario creado correctamente. Nombre de usuario: <{0}> - Roles asignados: <{1}>.", model.Nombre + " " + model.Apellido, rolesList); return("Usuario creado correctamente."); } catch (Exception ex) { _logger.LogErrorException(ex, "Ocurrió un error al crear usuario. Nombre de usuario: <{0}> - Roles asignados: <{1}>.", model.Nombre + " " + model.Apellido, rolesList.ToString()); throw new CreateRecordException("Ocurrió un error al crear el usuario", ex); } } else { _logger.LogError( "[ERROR VALIDACION EN SERVER] - Ocurrió un error al crear usuario. Uno o mas datos son incorrectos."); return("FailModel"); } }