Ejemplo n.º 1
0
        public string CreateProcessAgentDescriptor(int agentId, ProcessAgent agent, SystemSupport ss)
        {
            XmlWriterSettings settings = new XmlWriterSettings();
            settings.Indent = true;
            settings.OmitXmlDeclaration = true;
            settings.NewLineOnAttributes = true;
            settings.CheckCharacters = true;

            StringBuilder stringBuilder = new StringBuilder();
            XmlWriter xmlWriter = XmlWriter.Create(stringBuilder, settings);

            if (agent != null)
            {
                // write root element
                xmlWriter.WriteStartElement("processAgentDescriptor");
                //xmlWriter.WriteAttributeString("xmlns", "ns", null, nameSpace);

                xmlWriter.WriteElementString("agentGuid", agent.agentGuid);
                xmlWriter.WriteElementString("type", agent.type);
                xmlWriter.WriteElementString("agentName", agent.agentName);
                xmlWriter.WriteElementString("domainGuid", agent.domainGuid);
                xmlWriter.WriteElementString("codeBaseUrl", agent.codeBaseUrl);
                xmlWriter.WriteElementString("webServiceUrl", agent.webServiceUrl);
                if (ss != null)
                    xmlWriter.WriteRaw(ss.ToXML());
                if(agent.type.Equals(ProcessAgentType.LAB_SERVER)){
                    int lssId = brokerDb.FindProcessAgentIdForAgent(agentId, ProcessAgentType.LAB_SCHEDULING_SERVER);
                    if(lssId > 0){
                        ProcessAgent lss = brokerDb.GetProcessAgent(lssId);
                        if(lss != null){

                            xmlWriter.WriteElementString("lssGuid",lss.agentGuid);
                        }
                    }
                }

                Hashtable resourceTags = brokerDb.GetResourceStringTags(agentId, 1);
                if (resourceTags != null && resourceTags.Count > 0)
                {
                    xmlWriter.WriteStartElement("resources");
                    foreach (string s in resourceTags.Keys)
                    {
                        xmlWriter.WriteStartElement("resource");
                        xmlWriter.WriteAttributeString("key", s);
                        xmlWriter.WriteAttributeString("value",((IntTag)resourceTags[s]).tag);
                        xmlWriter.WriteEndElement();
                    }
                    xmlWriter.WriteEndElement();

                }
                xmlWriter.WriteEndElement();
                xmlWriter.Flush();
            }
            return stringBuilder.ToString(); ;
        }