Пример #1
0
        private static void ParseComponent(EdmEntityObject entity, ComponentHelpClass item, object value)
        {
            int i = 0;

            EdmStructuredObject actualEntity = entity;

            for (i = 0; i < item.Depth - 1; i++)
            {
                var    componentName = item.SplitedComponents[i];
                object local         = null;
                actualEntity.TryGetPropertyValue(componentName, out local);
                if (local == null)
                {
                    var declaredProperty = actualEntity.ActualEdmType.DeclaredProperties.FirstOrDefault(w => w.Name == componentName);
                    var edmComplexObject = new EdmComplexObject(declaredProperty.Type.AsComplex());

                    actualEntity.TrySetPropertyValue(componentName, edmComplexObject);
                    actualEntity = edmComplexObject;
                }
                else
                {
                    actualEntity = (EdmStructuredObject)local;
                }
            }

            var propertyName = item.SplitedComponents[item.Depth - 1];

            actualEntity.TrySetPropertyValue(propertyName, value);
        }
Пример #2
0
        private Dictionary <string, ComponentHelpClass> BuildMap(IDictionary <string, object> row)
        {
            if (row == null)
            {
                throw new ArgumentNullException(nameof(row));
            }

            Dictionary <string, ComponentHelpClass> dictionary = new Dictionary <string, ComponentHelpClass>();

            foreach (var column in row)
            {
                if (column.Key.Contains(_separator))
                {
                    ComponentHelpClass expandoObject = new ComponentHelpClass();
                    expandoObject.SplitedComponents = column.Key.Split(_separator);
                    expandoObject.Depth             = expandoObject.SplitedComponents.Length;

                    dictionary.Add(column.Key, expandoObject);
                }
            }

            return(dictionary);
        }