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; }
public SDataPayload GetRandomPayload(SDataPayloadCollection payloadCollection) { var index = _Random.Next(0, payloadCollection.Count() - 1); return payloadCollection[index]; }