Exemple #1
0
        public object GetGenericItems()
        {
            if (EditedData.NotEmpty())
            {
                var genericDataType = GTypes.First(x => x.Name == EditedData);
                GData = (DBController.DbGenericData.GetGenericData(new GenericDataSearchParameters {
                    FromType = genericDataType
                }) as IList).ToDataTable();

                var att           = GenericData.GetGenericDataFieldAttributes(null, genericDataType, null);
                var propertyInfos = GData.Columns.OfType <DataColumn>().Select(x => x.ColumnName).ToList();
                foreach (var propertyInfo in propertyInfos)
                {
                    var idx = GData.Columns.IndexOf(propertyInfo);
                    var genericFieldInfo = att.FirstOrDefault(x => x.PropertyName == propertyInfo);
                    if (genericFieldInfo == null || genericFieldInfo.DisableGridEdit)
                    {
                        GData.Columns.RemoveAt(idx);
                    }
                    else
                    {
                        var rowsToFormat = GData.Rows.Count;
                        var tmpObject    = Activator.CreateInstance(genericDataType);

                        for (int i = 0; i < rowsToFormat; i++)
                        {
                            var valueToFormat = GData.Rows[i][idx].ToString();
                            if (valueToFormat.NotEmpty())
                            {
                                var formatedVal = (tmpObject as GenericData).GetFormatedValue(genericDataType, valueToFormat, genericFieldInfo, DBController);
                                if (formatedVal.NotEmpty())
                                {
                                    GData.Rows[i][idx] = formatedVal;
                                }
                            }
                        }
                        GData.Columns[idx].ReadOnly = false;
                        try { GData.Columns[idx].ColumnName = genericFieldInfo.FieldName; } catch (Exception) { }
                    }
                }
                return(GData);
            }
            return(null);
        }