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(); ; }