FromXml() static private method

static private FromXml ( System.Xml.Linq.XElement element ) : WorkingFolder
element System.Xml.Linq.XElement
return WorkingFolder
Ejemplo n.º 1
0
        internal static Workspace FromXml(RepositoryService versionControl, XElement element)
        {
            string computer = element.Attribute("computer").Value;
            string name     = element.Attribute("name").Value;
            string owner    = element.Attribute("owner").Value;
            //bool isLocal = Convert.ToBoolean(element.Attribute("islocal").Value);

            string   comment        = element.Element(XmlNamespaces.GetMessageElementName("Comment")).Value;
            DateTime lastAccessDate = DateTime.Parse(element.Element(XmlNamespaces.GetMessageElementName("LastAccessDate")).Value);
            var      folders        = new List <WorkingFolder>(element.Element(XmlNamespaces.GetMessageElementName("Folders"))
                                                               .Elements(XmlNamespaces.GetMessageElementName("WorkingFolder"))
                                                               .Select(el => WorkingFolder.FromXml(el)));

            return(new Workspace(versionControl, name, owner, comment, folders, computer)
            {
                LastAccessDate = lastAccessDate
            });
        }
Ejemplo n.º 2
0
        internal static Workspace FromXml(Repository repository, XmlReader reader)
        {
            string elementName = reader.Name;

            string computer = reader.GetAttribute("computer");
            string name     = reader.GetAttribute("name");
            string owner    = reader.GetAttribute("owner");

            string               comment        = "";
            DateTime             lastAccessDate = DateTime.Now;
            List <WorkingFolder> folders        = new List <WorkingFolder>();

            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.EndElement && reader.Name == elementName)
                {
                    break;
                }

                if (reader.NodeType == XmlNodeType.Element)
                {
                    switch (reader.Name)
                    {
                    case "WorkingFolder":
                        folders.Add(WorkingFolder.FromXml(repository, reader));
                        break;

                    case "Comment":
                        comment = reader.ReadString();
                        break;

                    case "LastAccessDate":
                        lastAccessDate = reader.ReadElementContentAsDateTime();
                        break;
                    }
                }
            }

            Workspace w = new Workspace(repository.VersionControlServer, name, owner, comment, folders.ToArray(), computer);

            w.lastAccessDate = lastAccessDate;
            return(w);
        }