示例#1
0
 public virtual IActionResult Run(string command)
 {
     Response.Headers.Add("Cache-Control", "no-cache");
     try
     {
         MDataAdapter da = GetDataAdapter(command);
         if (da == null)
         {
             throw new Exception($@"Дата адаптер ""{command}"" не найден.");
         }
         da.Context = HttpContext;
         // Если в параметрах запроса стоит save=1 то считается что мы имеем дело с сохранением изменений
         if (Request.Query["save"] == "1")
         {
             return(Json(da.Save(Model, Request.Path.Value, Request.QueryString.Value), MJsonDataConverter.GetSettings(Model)));
         }
         if (Request.Query["commands"] == "1")
         {
             return(Json(da.GetCommands(Model), MJsonDataConverter.GetSettings(Model)));
         }
         else
         {
             if (!MJsonDataConverter.IsCached)
             {
                 MJsonDataConverter.Reload();
             }
             return(Json(MJsonData.Create(da.Run(Model, Request.Path.Value, Request.QueryString.Value)), MJsonDataConverter.GetSettings(Model)));
         }
     }
     catch (Exception e)
     {
         MJsonData jd = MJsonData.Create(e);
         return(Json(jd));
     }
 }
示例#2
0
        public static MDataAdapter GetDataAdapter(string name, string folder = "Data")
        {
            name += "adapter";
            MDataAdapter da = MFunc.CreateInstanceByName <MDataAdapter>(name, folder, null);

            if (da == null)
            {
                da = MFunc.CreateInstanceByName <MDataAdapter>("default", folder, null);
            }
            return(da);
        }