/// <summary> /// Realiza el proceso de creación de un usuario en la base de datos /// </summary> /// <param name="usuario">Información del usuario que se desea crear</param> public override void Crear(DTOUsuarios usuario) { try { String Message = String.Empty; Message = this.ValidaUsuario(usuario, usuario.Cliente); if (String.IsNullOrEmpty(Message)) { ManagerDb db = new ManagerDb(); DataTable tbl = db.ObtenerDatos("SELECT 1 FROM USUARIOS WHERE USU_USUARIO = @USUARIO", new SqlParameter("@USUARIO", usuario.Usuario)); if (tbl.Rows.Count > 0) { throw new CustomException("<li>El nombre de usuario ingresado ya se encuentra registrado en la base de datos, por favor corrigalo e intentelo de nuevo"); } else { String query = "INSERT INTO USUARIOS (USU_USUARIO, USU_PASSWORD, USU_NOMBRES, USU_APELLIDOS, USU_CORREO, USU_ROL)"; query += "VALUES (@USU_USUARIO, @USU_PASSWORD, @USU_NOMBRES, @USU_APELLIDOS, @USU_CORREO, @USU_ROL);"; db.Ejecutar(query, new SqlParameter("@USU_USUARIO", usuario.Usuario), new SqlParameter("@USU_PASSWORD", Encriptar.EncriptaContrasena(usuario.Password)), new SqlParameter("@USU_NOMBRES", usuario.Nombres), new SqlParameter("@USU_APELLIDOS", usuario.Apellidos), new SqlParameter("@USU_CORREO", usuario.Correo), new SqlParameter("@USU_ROL", usuario.Rol)); if (usuario.Rol == 2) { int codigoUsuario = db.ObtenerDatos("SELECT IDENT_CURRENT('USUARIOS')").AsEnumerable().Select(x => Convert.ToInt32(x.Field <Object>(0))).FirstOrDefault(); query = "INSERT INTO CLIENTES (CLI_DOCUMENTO, CLI_TIPODOCUMENTO, CLI_FECHANACIMIENTO, USU_CODIGO)"; query += "VALUES (@CLI_DOCUMENTO, @CLI_TIPODOCUMENTO, @CLI_FECHANACIMIENTO, @USU_CODIGO)"; db.Ejecutar(query, new SqlParameter("@CLI_DOCUMENTO", usuario.Cliente.Documento), new SqlParameter("@CLI_TIPODOCUMENTO", usuario.Cliente.TipoDocumento), new SqlParameter("@CLI_FECHANACIMIENTO", usuario.Cliente.FechaNacimiento), new SqlParameter("@USU_CODIGO", codigoUsuario)); } } } else { throw new CustomException("<ul>" + Message + "</ul>"); } } catch (CustomException ex) { throw new CustomException(ex.Message); } catch (Exception ex) { Exception ex1 = ex; while (ex1.InnerException != null) { ex1 = ex1.InnerException; } throw new Exception(ex1.Message); } }