/// <summary> /// Crea un objeto solicitud y se lo envía el método insertarSolicitud de la capa de Datos /// </summary> /// <param name="asunto"></param> /// <param name="descripcion"></param> /// <param name="login"></param> public bool crearSolicitud(String asunto, String descripcion, String login, String usuario) { Solicitud solicitud = new Solicitud(); solicitud.Asunto = asunto; solicitud.Descripcion = descripcion; solicitud.PostBy = usuario; solicitud.Login = login; solicitud.Solicitante = _ldap.obtenerNombrePersona(login); return _manejoBD.insertarSolicitud(solicitud); }
/// <summary> /// Recupera de la BD todas las solicitudes en estado "Pendiente" /// </summary> /// <returns>Lista con los datos de las solicitudes pendientes</returns> public List<Solicitud> recuperarSolicitudesPendientes() { List<Solicitud> resultado = new List<Solicitud>(); SqlCommand buscar = new SqlCommand("SP_SOL_RecuperarSolicitudesPendientes", _conexion); buscar.CommandType = CommandType.StoredProcedure; if (_conexion.State == ConnectionState.Closed) _conexion.Open(); try { SqlDataReader reader = buscar.ExecuteReader(); while (reader.Read()) { Solicitud _solicitud = new Solicitud(); _solicitud.ID = reader.GetInt32(0); _solicitud.FechaSolicitud = reader.GetDateTime(1); _solicitud.Solicitante = reader.GetString(2); _solicitud.Asunto = reader.GetString(3); _solicitud.Descripcion = reader.GetString(4); _solicitud.PostBy = reader.GetString(5); resultado.Add(_solicitud); } _conexion.Close(); } catch (Exception) { if (_conexion.State == ConnectionState.Open) _conexion.Close(); } return resultado; }
/// <summary> /// Recupera de la BD todas las solicitudes no pendientes de un usuario /// </summary> /// <param name="usuario">login del usuario</param> /// <returns>Lista de solicitudes</returns> public List<Solicitud> recuperarSolicitudesUsuario(String usuario) { List<Solicitud> resultado = new List<Solicitud>(); SqlCommand buscar = new SqlCommand("SP_SOL_RecuperarSolicitudesPorUsuario", _conexion); buscar.CommandType = CommandType.StoredProcedure; SqlParameter[] parametros = new SqlParameter[1]; parametros[0] = new SqlParameter("@login", SqlDbType.VarChar); parametros[0].Value = usuario; buscar.Parameters.AddRange(parametros); if (_conexion.State == ConnectionState.Closed) _conexion.Open(); try { SqlDataReader reader = buscar.ExecuteReader(); while (reader.Read()) { Solicitud _solicitud = new Solicitud(); _solicitud.ID = reader.GetInt32(0); //ID de la solicitud _solicitud.Asunto = reader.GetString(1); //Asunto de la solicitud _solicitud.Descripcion = reader.GetString(2); //Descripción de la solicitud _solicitud.FechaSolicitud = reader.GetDateTime(3); //Fecha de la solicitud _solicitud.PostBy = reader.GetString(4); //Postby de la solicitud _solicitud.Estado = reader.GetString(5); //Estado de la solicitud _solicitud.Responsable = reader.GetString(6); //Responsable de la solicitud resultado.Add(_solicitud); } _conexion.Close(); } catch (Exception) { if (_conexion.State == ConnectionState.Open) _conexion.Close(); } return resultado; }
/// <summary> /// Método que ejecuta el SP que agrega una solicitud a la BD /// </summary> /// <param name="solicitud">Objeto solicitud </param> /// <returns>boolean que indica si la inserción fue exitosa o no</returns> /// public Boolean insertarSolicitud(Solicitud solicitud) { Boolean resultado = false; SqlCommand agregar = new SqlCommand("SP_SOL_InsertarSolicitud", _conexion); agregar.CommandType = CommandType.StoredProcedure; SqlParameter[] parametros = new SqlParameter[5]; parametros[0] = new SqlParameter("@solicitante", SqlDbType.VarChar); parametros[0].Value = solicitud.Solicitante; parametros[1] = new SqlParameter("@asunto", SqlDbType.VarChar); parametros[1].Value = solicitud.Asunto; parametros[2] = new SqlParameter("@descripcion", SqlDbType.NText); parametros[2].Value = solicitud.Descripcion; parametros[3] = new SqlParameter("@PostBy", SqlDbType.NText); parametros[3].Value = solicitud.PostBy; parametros[4] = new SqlParameter("@loginSolicitante", SqlDbType.VarChar); parametros[4].Value = solicitud.Login; agregar.Parameters.AddRange(parametros); if (_conexion.State == ConnectionState.Closed) _conexion.Open(); try { SqlDataReader reader = agregar.ExecuteReader(); reader.Read(); resultado = !(reader.HasRows); _conexion.Close(); resultado = true; } catch (Exception) { if (_conexion.State == ConnectionState.Open) _conexion.Close(); resultado = false; } return resultado; }