Пример #1
0
        public void RunPyScript()
        {
            var content = DbUtil.Db.ContentOfTypePythonScript(Report);
            if (content == null)
                throw new Exception("no script named " + Report);
            if (!CanRunScript(content))
                throw new Exception("Not Authorized to run this script");
            if (!content.Contains("BlueToolbarReport") && !content.Contains("@BlueToolbarTagId"))
                throw new Exception("Missing Call to Query Function 'BlueToolbarReport'");
            if (Id == Guid.Empty)
                throw new Exception("Must be run from the BlueToolbar");

            var pe = new PythonModel(Util.Host);

            pe.DictionaryAdd("BlueToolbarGuid", Id.ToCode());
            foreach (var key in HttpContext.Current.Request.QueryString.AllKeys)
                pe.DictionaryAdd(key, HttpContext.Current.Request.QueryString[key]);

            pe.RunScript(content);
            Results = pe.Output;
        }
Пример #2
0
        public ActionResult PyScriptForm()
        {
            try
            {
                var pe = new PythonModel(Util.Host);
                foreach (var key in Request.Form.AllKeys)
                    pe.DictionaryAdd(key, Request.Form[key]);
                pe.HttpMethod = "post";

                var script = FetchPyScriptForm(pe.Data.pyscript);
                return Content(pe.RunScript(script));
            }
            catch (Exception ex)
            {
                return RedirectShowError(ex.Message);
            }
        }
Пример #3
0
        public ActionResult PyScriptForm(string name)
        {
            try
            {
                var script = FetchPyScriptForm(name);

                if (!script.HasValue())
                    return Message("no script named " + name);
                var pe = new PythonModel(Util.Host);
                foreach (var key in Request.QueryString.AllKeys)
                    pe.DictionaryAdd(key, Request.QueryString[key]);
                pe.Data.pyscript = name;
                pe.HttpMethod = "get";
                pe.RunScript(script);
                return View(pe);
            }
            catch (Exception ex)
            {
                return RedirectShowError(ex.Message);
            }
        }
Пример #4
0
        public ActionResult PyScript(string name, string p1, string p2, string v1, string v2)
        {
            try
            {
                var script = DbUtil.Db.ContentOfTypePythonScript(name);
                if (!script.HasValue())
                    return Message("no script named " + name);

                if (!CanRunScript(script))
                    return Message("Not Authorized to run this script");
                if (script.Contains("model.Form"))
                    return Redirect("/PyScriptForm/" + name);
                script = script.Replace("@P1", p1 ?? "NULL")
                    .Replace("@P2", p2 ?? "NULL")
                    .Replace("V1", v1 ?? "None")
                    .Replace("V2", v2 ?? "None");
                if (script.Contains("@qtagid"))
                {
                    var id = DbUtil.Db.FetchLastQuery().Id;
                    var tag = DbUtil.Db.PopulateSpecialTag(id, DbUtil.TagTypeId_Query);
                    script = script.Replace("@qtagid", tag.Id.ToString());
                }
                var pe = new PythonModel(Util.Host);
                if (script.Contains("@BlueToolbarTagId"))
                {
                    var id = DbUtil.Db.FetchLastQuery().Id;
                    pe.DictionaryAdd("BlueToolbarGuid", id.ToCode());
                }

                foreach (var key in Request.QueryString.AllKeys)
                    pe.DictionaryAdd(key, Request.QueryString[key]);

                pe.RunScript(script);

                ViewBag.report = name;
                ViewBag.url = Request.Url?.PathAndQuery;
                return View(pe);
            }
            catch (Exception ex)
            {
                return RedirectShowError(ex.Message);
            }
        }
Пример #5
0
        public ActionResult PyScript(Guid id, string report)
        {
            var content = DbUtil.Db.ContentOfTypePythonScript(report);
            if (content == null)
                return Content("no script named " + report);
            if (!CanRunScript(content))
                return Message("Not Authorized to run this script");
            if (!content.Contains("BlueToolbarReport") && !content.Contains("@BlueToolbarTagId"))
                return Content("Missing Call to Query Function 'BlueToolbarReport'");
            if (id == Guid.Empty)
                return Content("Must be run from the BlueToolbar");

            var pe = new PythonModel(Util.Host);

            pe.DictionaryAdd("BlueToolbarGuid", id.ToCode());
            foreach (var key in Request.QueryString.AllKeys)
                pe.DictionaryAdd(key, Request.QueryString[key]);

            pe.RunScript(content);

            return View(pe);

        }
Пример #6
0
 public bool TryRunPython(int pid)
 {
     var ev = Organization.GetExtra(DbUtil.Db, OrgId, "OrgMembersPageScript");
     if (!ev.HasValue())
         return false;
     var script = DbUtil.Db.ContentOfTypePythonScript(ev);
     if (!script.HasValue())
         return false;
     var pe = new PythonModel(Util.Host);
     pe.Data.OrgId = OrgId;
     pe.Data.PeopleId = pid;
     Results = pe.RunScript(script);
     return true;
 }