コード例 #1
0
        public static DataTableActionResult <T> Create <T>(DataTableResponseDataModel <T> responseData, ResponseOptionModel <T> responseOption = null) where T : class, new()
        {
            var result = new DataTableActionResult <T>(responseData);

            var dictionaryTransform = DataTableTypeInfo <T> .ToDictionary(responseOption);

            result.Data =
                result
                .Data
                .Transform(dictionaryTransform)
                .Transform <Dictionary <string, object>, Dictionary <string, object> >(StringTransformers.StringifyValues);

            result.Data = ApplyOutputRules(result.Data, responseOption);

            return(result);
        }
コード例 #2
0
        public static ColumnModel[] GetColumns(this Type t)
        {
            var propInfos = DataTableTypeInfo.Properties(t);

            var columnList = new List <ColumnModel>();

            foreach (var dataTablesPropertyInfo in propInfos)
            {
                var colDef = new ColumnModel(dataTablesPropertyInfo.PropertyInfo.Name, dataTablesPropertyInfo.PropertyInfo.PropertyType);

                foreach (var att in dataTablesPropertyInfo.Attributes)
                {
                    att.ApplyTo(colDef, dataTablesPropertyInfo.PropertyInfo);
                }

                columnList.Add(colDef);
            }
            return(columnList.ToArray());
        }
コード例 #3
0
        public static Dictionary <string, object> MergeTransformValuesIntoDictionary <TInput, TTransform>(Func <TInput, TTransform> transformInput, TInput tInput)
        {
            // Get the the properties from the input as a dictionary
            var dict = DataTableTypeInfo <TInput> .ToDictionary(tInput);

            // Get the transform object
            var transform = transformInput(tInput);

            if (transform == null)
            {
                return(dict);
            }

            foreach (var propertyInfo in transform.GetType().GetTypeInfo().GetProperties())
            {
                dict[propertyInfo.Name] = propertyInfo.GetValue(transform, null);
            }

            return(dict);
        }