public ContentResult CheckUpdates(string id)
{
List<string> list =
new List<string>
();
var db =
new BariumUpdateServerdbDataContext
();
var q = from cw in db.ClientWorkers
from c in db.Clients
from w in db.Workers
where cw.ClientId == c.Id
where cw.WorkerId == w.Id
where c.ClientGuid == id
select w.WorkerId;
var xdoc =
new XmlDocument
();
XmlElement elem = xdoc.CreateElement("Workers");
xdoc.AppendChild(elem);
XmlElement time = xdoc.CreateElement("LastUpdate");
XmlText timeValue = xdoc.CreateTextNode(DateTime.Now.ToString());
elem.AppendChild(time);
time.AppendChild(timeValue);
foreach (var i in q)
{
list.Add(i);
foreach (string xelement in list)
{
XmlElement ele = xdoc.CreateElement("Worker");
XmlText xTxt = xdoc.CreateTextNode(i);
elem.AppendChild(ele);
ele.AppendChild(xTxt);
}
var q1 = from w in db.Workers
where w.WorkerId == i
select w.Id;
foreach (var p in q1)
{
var q2 = (from wp in db.WorkerParameters
where wp.Id == p
select
new { wp.
Type, wp.
KeyName });
foreach (var item in q2)
{
XmlElement param = xdoc.CreateElement("Paramters");
XmlElement paramText = xdoc.CreateElement(item.KeyName);
XmlAttribute Type = xdoc.CreateAttribute(item.Type);
elem.AppendChild(param);
param.AppendChild(paramText);
paramText.SetAttributeNode(Type);
}
}
}
return Content(xdoc.InnerXml.ToString(), "text/xml");
}