コード例 #1
0
ファイル: ServiceRequest.cs プロジェクト: vadimart92/Services
        private BodyTreeArray GetStructuredArray(ServiceParameter parameter, object structuredValueCollection,
                                                 IDataExtractor dataExtractor)
        {
            var array = new BodyTreeArray {
                Parameter = parameter
            };

            foreach (object item in (IEnumerable)structuredValueCollection)
            {
                var treeValue = GetParameterValue <BodyTreeObject>(parameter, item, dataExtractor);
                array.Add(treeValue);
            }
            return(array);
        }
コード例 #2
0
ファイル: ServiceRequest.cs プロジェクト: vadimart92/Services
        private IBodyTreeItem GetParameterValue(ServiceParameter parameter, object value)
        {
            IBodyTreeItem result;

            if (parameter.IsArray)
            {
                if (value is IStructuredValue structuredValue)
                {
                    object structuredValueCollection = structuredValue.Value;
                    var    dataExtractor             = structuredValue.DataExtractor;
                    result = GetStructuredArray(parameter, structuredValueCollection, dataExtractor);
                }
                else
                {
                    if (value is IEnumerable collection)
                    {
                        var array = new BodyTreeArray {
                            Parameter = parameter
                        };
                        result = array;
                        foreach (object item in collection)
                        {
                            var treeItem = CreateSimpleTreeNode(parameter, item);
                            array.Add(treeItem);
                        }
                    }
                    else
                    {
                        result = CreateSimpleTreeNode(parameter, value);
                    }
                }
            }
            else if (value is IStructuredValue structuredValue)
            {
                result = GetParameterValue <BodyTreeNode>(parameter, structuredValue.Value, structuredValue.DataExtractor);
            }
            else
            {
                result = CreateSimpleTreeNode(parameter, value);
            }
            return(result);
        }