protected void Refresh(string name, MEDMSql model, XmlNode xrequest, XmlNode xresponse) { if (name == "empty") { XmlNode xrow = XFunc.Append(xresponse, "row", "id", "0"); return; } MEDMDefClass dc = MEDMDefModel.MainDef.Find(name); if (dc != null) { if (dc.BaseClass == "MEDMObj") { Type t = dc.GetClassType(); if (t != null) { List <MObj> list = new List <MObj>(); if (dc.ClassType == "edm") { RunRefreshSelect(list, dc, name, model, xrequest, xresponse); } else if (dc.ClassType == "session") { MObj o = model.CreateObject(t, Session.Id.ToString()); list.Add(o); /* Если объекты хранятся в кеше то в сессии их запоминать не к чему * string id = XFunc.GetText(xrequest.SelectSingleNode("param[@name='id']"), Session.Id); * model.SelectFromXML(list, t, Session.GetString(name), id); * if (list.Count == 0) * { * MObj o = model.CreateObject(t, Session.Id.ToString()); * list.Add(o); * model.Save(Session); * } */ } else { throw new Exception($"Для автоматической генерации Refresh тип источника данных {dc.ClassType} не определен или задан неправильно."); } PutRefreshResult(list, dc, name, model, xrequest, xresponse); } } else { throw new Exception($"Для автоматической генерации Refresh класс источника данных {name} должен быть порожден от MEDMObj"); } } else { List <MObj> list = new List <MObj>(); RunRefreshSelect(list, dc, name, model, xrequest, xresponse); PutRefreshResult(list, dc, name, model, xrequest, xresponse); } }
public static void ParmsToObj(XmlNode xparms, MObj obj) { foreach (XmlNode xparm in xparms.SelectNodes("descendant::param")) { string name = XFunc.GetAttr(xparm, "name", ""); string value = XFunc.GetText(xparm, ""); if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(value)) { obj.SetValue(name, value); } } }
private static string CallWMI(string WMIProperty) { string ret = null; ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM CIM_OperatingSystem"); try { foreach (ManagementObject MObj in mos.Get()) { ret = MObj.GetPropertyValue(WMIProperty).ToString(); } } catch (Exception ex) { ErrorMessage = ex.Message; } return(ret); }
protected XmlNode RefreshRow(string name, object id, MEDMSql model, XmlNode xrequest, XmlNode xresponse) { XmlNode xrow = null; MEDMDefClass dc = MEDMDefModel.MainDef.Find(name); if (dc != null) { if (dc.BaseClass == "MEDMObj") { Type t = dc.GetClassType(); if (t != null) { List <MObj> list = new List <MObj>(); if (dc.ClassType == "edm") { model.Select(list, t, $"select * from [{dc.Name}] (nolock) where id!=@p1 and id=@p2", "p1", dc.GetIdPropery().GetDefaultValue(), "p2", id); } else if (dc.ClassType == "session") { MObj o = model.CreateObject(t, Session.Id.ToString()); list.Add(o); /* Если объекты хранятся в кеше то в сессии их запоминать не к чему * model.SelectFromXML(list, t, Session.GetString(name), id); */ } else { throw new Exception($"Для автоматической генерации RefreshRow тип источника данных {dc.ClassType} не определен или задан неправильно."); } PutRefreshResult(list, dc, name, model, xrequest, xresponse); } } else { throw new Exception($"Для автоматической генерации RefreshRow класс источника данных {name} должен быть порожден от MEDMObj"); } } return(xrow); }
protected virtual void PutRowResult(MObj obj, XmlNode xrow, MEDMDefClass dc, string name, MEDMSql model, XmlNode xrequest, XmlNode xresponse) { }