Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
 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);
         }
     }
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
 protected virtual void PutRowResult(MObj obj, XmlNode xrow, MEDMDefClass dc, string name, MEDMSql model, XmlNode xrequest, XmlNode xresponse)
 {
 }