Example #1
0
        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;
                    }
                }
            }
        }
Example #2
0
        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();
        }
Example #3
0
        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>");
        }
Example #4
0
        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();
        }
Example #5
0
        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();
                }
            }
        }
Example #6
0
        /// <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);
        }