public static List<HistoryReputacion> getAllCalifiedToMeByParametersLike(Usuario user, HistoryReputacionFilters filters)
        {
            var param = new List<SPParameter> { new SPParameter("idUsuario", user.ID),
                    new SPParameter("Codigo_Calificacion", filters.Codigo ?? (object)DBNull.Value),
                    new SPParameter("Descripcion", filters.Descripcion ?? (object)DBNull.Value),
                    new SPParameter("Cantidad_Estrellas", filters.Cantidad ?? (object)DBNull.Value),
                    new SPParameter("Nombre", filters.Nombre ?? (object)DBNull.Value)

            };
            var sp = new StoreProcedure(DataBaseConst.Calificacion.SPGetHistoryCalificacionesRecibidasByParametersLike, param);
            return sp.ExecuteReader<HistoryReputacion>();
        }
        private void LblBuscar_Click(object sender, EventArgs e)
        {
            try
                {
                    #region Validations

                    var filtersSetted = false;
                    var exceptionMessage = string.Empty;

                    if (!TypesHelper.IsEmpty(txtCodigo.Text))
                    {
                        filtersSetted = true;
                        if (!TypesHelper.IsNumeric(txtCodigo.Text))
                            exceptionMessage += Environment.NewLine + "El código debe ser numérico.";
                    }
                    if (!TypesHelper.IsEmpty(txtDesc.Text))
                    {
                        filtersSetted = true;
                    }

                    if (!TypesHelper.IsEmpty(txtCantidad.Text))
                    {
                        filtersSetted = true;
                        if (!TypesHelper.IsNumeric(txtCantidad.Text))
                            exceptionMessage += Environment.NewLine + "La cantidad debe ser numérica.";

                    }

                    if (!TypesHelper.IsEmpty(txtNombre.Text))
                    {
                        filtersSetted = true;
                    }

                    if (!filtersSetted)
                        exceptionMessage = "No se puede realizar la busqueda ya que no se informó ningún filtro";

                    if (!TypesHelper.IsEmpty(exceptionMessage))
                        throw new Exception(exceptionMessage);

                    #endregion

                    var filters = new HistoryReputacionFilters
                    {
                        Codigo = (!TypesHelper.IsEmpty(txtCodigo.Text)) ? Convert.ToInt32(txtCodigo.Text) : (int?)null,
                        Descripcion = (!TypesHelper.IsEmpty(txtDesc.Text)) ? txtDesc.Text : null,
                        Cantidad = (!TypesHelper.IsEmpty(txtCantidad.Text)) ? Convert.ToInt32(txtCantidad.Text) : (int?)null,
                        Nombre = (!TypesHelper.IsEmpty(txtNombre.Text)) ? txtNombre.Text : null
                    };

                    var historyReputacion = (cBExact.Checked) ? CalificacionPersistance.getAllCalifiedToMeByParameters(SessionManager.CurrentUser, filters) : CalificacionPersistance.getAllCalifiedToMeByParametersLike(SessionManager.CurrentUser, filters);

                    if (historyReputacion == null || historyReputacion.Count == 0)
                        throw new Exception("No se encontraron calificaciones según los filtros informados.");

                    RefreshSources(historyReputacion);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Atención");
                    ClearFiltersAndTable();
                }
        }