Sage.SData.Client.Extensions.SDataPayload.LoadItem C# (CSharp) Метод

LoadItem() приватный Метод

private LoadItem ( string name, IEnumerable items, XmlNamespaceManager manager ) : bool
name string
items IEnumerable
manager System.Xml.XmlNamespaceManager
Результат bool
        private bool LoadItem(string name, IEnumerable<XPathNavigator> items, XmlNamespaceManager manager)
        {
            object value;

            if (items.Count() > 1)
            {
                var collection = new SDataPayloadCollection();

                if (!collection.Load(items, manager))
                {
                    return false;
                }

                value = collection;
            }
            else
            {
                var item = items.First();

                switch (InferItemType(item))
                {
                    case ItemType.Property:
                    {
                        string nilValue;

                        if (item.TryGetAttribute("nil", Framework.Common.XSI.Namespace, out nilValue) && XmlConvert.ToBoolean(nilValue))
                        {
                            value = null;
                        }
                        else
                        {
                            value = item.Value;
                        }

                        break;
                    }
                    case ItemType.Object:
                    {
                        var obj = new SDataPayload();

                        if (!obj.Load(item, manager))
                        {
                            return false;
                        }

                        value = obj;
                        break;
                    }
                    case ItemType.PayloadCollection:
                    {
                        var collection = new SDataPayloadCollection();

                        if (!collection.Load(item, manager))
                        {
                            return false;
                        }

                        value = collection;
                        break;
                    }
                    case ItemType.SimpleCollection:
                    {
                        var collection = new SDataSimpleCollection();

                        if (!collection.Load(item))
                            return false;

                        value = collection;
                        break;
                    }
                    default:
                        return false;
                }
            }

            Values.Add(name, value);
            return true;
        }