Exemplo n.º 1
0
        public void AddColumnToShow(Expression <Func <T, object> > column, string columnHeaderName, string stringFormat, SearcherTextAlignment textAlignment)
        {
            var propertyName = ExpressionsHelper.GetPropertyName <T>(column);

            var columnName = string.IsNullOrEmpty(columnHeaderName) ? propertyName : columnHeaderName;

            var binding = new SearcherDataBinding()
            {
                HeaderName    = columnName,
                PropertyName  = propertyName,
                StringFormat  = stringFormat,
                TextAlignment = textAlignment
            };

            _DataGridColumnsNamesBinding.Add(binding);
            //var col = new Microsoft.Windows.Controls.DataGridTextColumn()
            //{
            //    Header = columnName,
            //    IsReadOnly = true,
            //    Binding = new Binding(propertyName)
            //};
            //col.Binding.StringFormat = stringFormat;

            ////_View.SearchItemsDataGridView.Columns.Add(col);
            //_UIColumns.Add(col);
        }
Exemplo n.º 2
0
        public static DataTable ToDataTable <T>(this IEnumerable <T> data, string tableName, params Expression <Func <T, object> >[] includeOnly)
        {
            PropertyDescriptorCollection props = TypeDescriptor.GetProperties(typeof(T));
            DataTable table = new DataTable();

            if (includeOnly.Length == 0)
            {
                for (int i = 0; i < props.Count; i++)
                {
                    PropertyDescriptor prop = props[i];
                    table.Columns.Add(prop.Name, prop.PropertyType);
                }

                object[] values = new object[props.Count];

                foreach (T item in data)
                {
                    for (int i = 0; i < values.Length; i++)
                    {
                        values[i] = props[i].GetValue(item);
                    }
                    table.Rows.Add(values);
                }
            }
            else
            {
                foreach (var property in includeOnly)
                {
                    var propertyName = ExpressionsHelper.GetPropertyName <T>(property);

                    //propertyList.Add(propertyName);
                    table.Columns.Add(propertyName);
                }

                foreach (T item in data)
                {
                    var row = table.NewRow();

                    foreach (DataColumn col in table.Columns)
                    {
                        row[col.ColumnName] = props[col.ColumnName].GetValue(item);
                    }

                    table.Rows.Add(row);
                }
            }

            table.TableName = tableName;

            return(table);
        }
Exemplo n.º 3
0
        private static async Task EnsureIndexes(IDbContext dbContext)
        {
            var clientIdField = new StringFieldDefinition <ClientEntity>(ExpressionsHelper.GetPropertyName <ClientEntity>(c => c.ClientId));
            var clientIdIndex = new IndexKeysDefinitionBuilder <ClientEntity>().Ascending(clientIdField);
            await dbContext.Clients.Indexes.CreateOneAsync(clientIdIndex, new CreateIndexOptions()
            {
                Unique = true
            });

            var refreshTokenIdField = new StringFieldDefinition <RefreshTokenEntity>(ExpressionsHelper.GetPropertyName <RefreshTokenEntity>(c => c.RefreshTokenId));
            var refreshTokenIdIndex = new IndexKeysDefinitionBuilder <RefreshTokenEntity>().Ascending(refreshTokenIdField);
            await dbContext.RefreshTokens.Indexes.CreateOneAsync(refreshTokenIdIndex, new CreateIndexOptions()
            {
                Unique = true
            });
        }