Beispiel #1
0
        /// <summary>
        /// Devolve dicionário com Coluna (base de dados) e respectivo valor da propriedade
        /// </summary>
        private static Dictionary <string, object> getDicionarioColValores(ModeloBase <M> objModelBase)
        {
            Dictionary <string, object> dicProps = new Dictionary <string, object>();

            PropertyInfo[] props = getObjectProperties();

            // Varre as propriedades do modelo
            foreach (System.Reflection.PropertyInfo prop in props)
            {
                if (prop.PropertyType != null && prop.CanWrite)
                {
                    AtributoPropriedade atbc      = null;
                    object[]            atributos = prop.GetCustomAttributes(typeof(AtributoPropriedade), true);

                    // Utiliza o AtributoPropriedade para obter o nome da coluna na Base de dados
                    foreach (object item in atributos)
                    {
                        if (item is AtributoPropriedade)
                        {
                            atbc = (AtributoPropriedade)item;
                            break;
                        }
                    }

                    object objValue = prop.GetValue(objModelBase);

                    // Se nao tem NomeColuna, o nome é o mesmo da propriedade.
                    if (atbc != null && !string.IsNullOrEmpty(atbc.NomeColuna))
                    {
                        dicProps.Add(atbc.NomeColuna.ToUpper(), objValue);
                    }
                    else
                    {
                        dicProps.Add(prop.Name.ToUpper(), objValue);
                    }
                }
            }

            return(dicProps);
        }
Beispiel #2
0
        protected virtual void ConfiguraColunas(DataGridView grdBase, Type typeModelo)
        {
            // Tamanho
            grdBase.RowTemplate.Height  = 17;
            grdBase.AutoGenerateColumns = false;
            grdBase.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
            grdBase.ScrollBars          = ScrollBars.Both;

            PropertyInfo[] props = typeModelo.GetProperties(BindingFlags.Public | BindingFlags.Instance);

            foreach (PropertyInfo prop in props)
            {
                Attribute atrib = prop.GetCustomAttribute(typeof(AtributoPropriedade), true);
                if (atrib != null)
                {
                    AtributoPropriedade atribProp = (AtributoPropriedade)atrib;

                    if (atribProp.OcultaGrid)
                    {
                        continue;
                    }

                    string sCaption = atribProp.Caption;
                    string sCollumn = prop.Name;

                    grdBase.Columns.Add(sCollumn, sCaption);
                    grdBase.Columns[sCollumn].DataPropertyName = sCollumn;

                    if (atribProp.OrdemGrid > 0)
                    {
                        grdBase.Columns[sCollumn].DisplayIndex = atribProp.OrdemGrid - 1;
                    }
                }
            }

            grdBase.Columns.GetLastColumn(DataGridViewElementStates.Visible, DataGridViewElementStates.None).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
        }
Beispiel #3
0
    /// <summary>
    /// Retorna um dicionário com as propriedades e os atributos customizados.
    /// </summary>
    /// <typeparam name="tPe">Classe que será utilizada para obter as propriedades e atributos.</typeparam>
    /// <returns>Lista com as propriedades e os atributos customizados.</returns>
    /// <remarks>Michel Oliveira @ Prime Team Tecnologia 2015</remarks>
    public static Dictionary <PropertyInfo, AtributoPropriedade> ObterAtributoPropriedades <tPe>()
    {
        Dictionary <PropertyInfo, AtributoPropriedade> propriedadeAtributoClasse = new Dictionary <PropertyInfo, AtributoPropriedade>();

        //
        foreach (var prop in typeof(tPe).GetProperties())
        {
            AtributoPropriedade atrProp = null;
            //
            foreach (var attr in prop.GetCustomAttributes(false))
            {
                atrProp = attr as AtributoPropriedade;
                //
                if (atrProp != null)
                {
                    break;
                }
            }
            //
            propriedadeAtributoClasse.Add(prop, atrProp);
        }
        //
        return(propriedadeAtributoClasse);
    }