private void FetchFromSharesNode(XmlReader reader, IHasShares item) { reader.MoveToContent(); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case "Share": { using (var subtree = reader.ReadSubtree()) { var share = GetShareFromNode(subtree); if (share != null) { item.Shares.Add(share); } } break; } default: reader.Skip(); break; } } } }
private void FetchFromSharesNode(XmlReader reader, IHasShares item) { var list = new List <Share>(); reader.MoveToContent(); reader.Read(); // Loop through each element while (!reader.EOF && reader.ReadState == ReadState.Interactive) { if (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case "Share": { if (reader.IsEmptyElement) { reader.Read(); continue; } using (var subReader = reader.ReadSubtree()) { var child = GetShare(subReader); if (child != null) { list.Add(child); } } break; } default: { reader.Skip(); break; } } } else { reader.Read(); } } item.Shares = list.ToArray(); }
public static void AddShares(IHasShares item, StringBuilder builder) { builder.Append("<Shares>"); foreach (var share in item.Shares) { builder.Append("<Share>"); builder.Append("<UserId>" + SecurityElement.Escape(share.UserId) + "</UserId>"); builder.Append("<CanEdit>" + SecurityElement.Escape(share.CanEdit.ToString().ToLower()) + "</CanEdit>"); builder.Append("</Share>"); } builder.Append("</Shares>"); }
public static void AddShares(IHasShares item, XmlWriter writer) { writer.WriteStartElement("Shares"); foreach (var share in item.Shares) { writer.WriteStartElement("Share"); writer.WriteElementString("UserId", share.UserId); writer.WriteElementString("CanEdit", share.CanEdit.ToString().ToLower()); writer.WriteEndElement(); } writer.WriteEndElement(); }
private void FetchFromSharesNode(XmlReader reader, IHasShares item) { reader.MoveToContent(); reader.Read(); // Loop through each element while (!reader.EOF && reader.ReadState == ReadState.Interactive) { if (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case "Share": { if (reader.IsEmptyElement) { reader.Read(); continue; } using (var subtree = reader.ReadSubtree()) { var share = GetShareFromNode(subtree); if (share != null) { item.Shares.Add(share); } } break; } default: reader.Skip(); break; } } else { reader.Read(); } } }
/// <summary> /// Add shares. /// </summary> /// <param name="item">The item.</param> /// <param name="writer">The xml writer.</param> /// <returns>The task object representing the asynchronous operation.</returns> private static async Task AddSharesAsync(IHasShares item, XmlWriter writer) { await writer.WriteStartElementAsync(null, "Shares", null).ConfigureAwait(false); foreach (var share in item.Shares) { await writer.WriteStartElementAsync(null, "Share", null).ConfigureAwait(false); await writer.WriteElementStringAsync(null, "UserId", null, share.UserId).ConfigureAwait(false); await writer.WriteElementStringAsync( null, "CanEdit", null, share.CanEdit.ToString(CultureInfo.InvariantCulture).ToLowerInvariant()).ConfigureAwait(false); await writer.WriteEndElementAsync().ConfigureAwait(false); } await writer.WriteEndElementAsync().ConfigureAwait(false); }