1. public ContentResult CheckUpdates(string id)
  2. {
  3. List<string> list = new List<string>();
  4. var db = new BariumUpdateServerdbDataContext();
  5.  
  6. var q = from cw in db.ClientWorkers
  7. from c in db.Clients
  8. from w in db.Workers
  9. where cw.ClientId == c.Id
  10. where cw.WorkerId == w.Id
  11. where c.ClientGuid == id
  12. select w.WorkerId;
  13. var xdoc = new XmlDocument();
  14. XmlElement elem = xdoc.CreateElement("Workers");
  15. xdoc.AppendChild(elem);
  16. XmlElement time = xdoc.CreateElement("LastUpdate");
  17. XmlText timeValue = xdoc.CreateTextNode(DateTime.Now.ToString());
  18. elem.AppendChild(time);
  19. time.AppendChild(timeValue);
  20. foreach (var i in q)
  21. {
  22. list.Add(i);
  23. foreach (string xelement in list)
  24. {
  25. XmlElement ele = xdoc.CreateElement("Worker");
  26. XmlText xTxt = xdoc.CreateTextNode(i);
  27. elem.AppendChild(ele);
  28. ele.AppendChild(xTxt);
  29. }
  30. var q1 = from w in db.Workers
  31. where w.WorkerId == i
  32. select w.Id;
  33. foreach (var p in q1)
  34. {
  35. var q2 = (from wp in db.WorkerParameters
  36. where wp.Id == p
  37. select new { wp.Type, wp.KeyName });
  38. foreach (var item in q2)
  39. {
  40. XmlElement param = xdoc.CreateElement("Paramters");
  41. XmlElement paramText = xdoc.CreateElement(item.KeyName);
  42. XmlAttribute Type = xdoc.CreateAttribute(item.Type);
  43. elem.AppendChild(param);
  44. param.AppendChild(paramText);
  45. paramText.SetAttributeNode(Type);
  46. }
  47.  
  48. }
  49. }
  50. return Content(xdoc.InnerXml.ToString(), "text/xml");
  51. }