public string SetProperties(string json_params) { Dersa.Common.CachedObjects.ClearCache(); IParameterCollection Params = Util.DeserializeParams(json_params); string key = "-1"; //string procName = ""; AttributeOwnerType ownerType = AttributeOwnerType.Entity; if (Params.Contains("entity")) { key = Params["entity"].Value.ToString(); //procName = "ENTITY$SetAttribute"; ownerType = AttributeOwnerType.Entity; Params.Remove("entity"); if (Params.Count < 1) { return("no data"); } } if (Params.Contains("relation")) { key = Params["relation"].Value.ToString(); //procName = "RELATION$SetAttribute"; ownerType = AttributeOwnerType.Relation; Params.Remove("relation"); if (Params.Count < 1) { return("no data"); } } DersaSqlManager DM = new DersaSqlManager(); foreach (IParameter Param in Params) { try { if (Param.Value != null) { string strVal = Param.Value.ToString().Replace("$lt$", "<").Replace("$gt$", ">"); Param.Value = strVal; } SetAttribute(DM, ownerType, key, Param.Name, Param.Value?.ToString(), 0); } catch { throw; } } return(""); }
public string CreateTextFile(string json_params) { IParameterCollection Params = Util.DeserializeParams(json_params); if (Params.Contains("file_name") && Params.Contains("file_body")) { string userName = HttpContext.Current.User.Identity.Name; string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "user_resources", userName, Params["file_name"].Value.ToString()); StreamWriter SW = File.CreateText(path); SW.Write((string)Params["file_body"].Value); SW.Flush(); SW.Close(); return("OK"); } return("no parameters"); }
public string OpenHtml(string json_params) { IParameterCollection Params = Util.DeserializeParams(json_params); if (Params.Contains("html")) { string Id = PutString(Params["html"].Value.ToString()); var result = new { action = "window.open('Query/GetHtml?Id=" + Id + "','user html', 'width=400,height=400,status=1,menubar=1');" }; return(JsonConvert.SerializeObject(result)); } if (Params.Contains("URL")) { var result = new { action = "window.open('" + Params["URL"].Value.ToString() + "');" }; return(JsonConvert.SerializeObject(result)); } return(null); }
public ActionResult GetViewById(string cshtmlId) { IParameterCollection Params = (new QueryControllerAdapter()).GetViewParams(cshtmlId); if (Params.Contains("view_name")) { string view_name = Params["view_name"].Value.ToString(); return(GetViewByName(view_name, Params)); } return(null); }
public ActionResult Report(string proc_name, string parameters) { DersaSqlManager M = new DersaSqlManager(); IParameterCollection Params = Util.DeserializeParams(parameters); if (Params.Contains("proc_name") || !string.IsNullOrEmpty(proc_name)) { if (Params.Contains("proc_name")) { proc_name = Params["proc_name"].Value.ToString(); Params.Remove("proc_name"); } System.Data.DataTable T = M.ExecuteSPWithParams(proc_name, Params); return(View(T)); } else { throw new System.Exception("procedure for report is not defined!"); } }
public ActionResult GetView(string json_params) { IParameterCollection Params = Util.DeserializeParams(json_params); if (!Params.Contains("cshtml")) { return(null); } string view_name = (new QueryControllerAdapter()).GetViewName(Params["cshtml"].Value.ToString()); return(GetViewByName(view_name, Params)); }
public string GetText(string json_params) { IParameterCollection Params = Util.DeserializeParams(json_params); if (Params.Contains("entity") && Params.Contains("attr_name") && Params.Contains("method_name")) { try { string entityId = Params["entity"].Value.ToString(); string methodName = Params["method_name"].Value.ToString(); string res = (new NodeControllerAdapter()).ExecMethodResult(int.Parse(entityId), methodName).ToString(); var result = new { entityId = entityId, attrName = Params["attr_name"].Value, attrValue = res }; return(JsonConvert.SerializeObject(result)); } catch (Exception exc) { return(exc.Message); } } else if (Params.Contains("entity") && Params.Contains("attr_name")) { string userName = HttpContext.Current.User.Identity.Name; string entityId = Params["entity"].Value.ToString(); string attrName = Params["attr_name"].Value.ToString(); string attrValue = (new QueryExecuteService()).GetAttrValue(attrName, entityId, userName); var result = new { entityId = entityId, attrName = attrName, attrValue = attrValue }; return(JsonConvert.SerializeObject(result)); } return(""); }
public IParameterCollection GetViewParams(string cshtmlId) { string json_params = GetString(cshtmlId, false); IParameterCollection Params = Util.DeserializeParams(json_params); if (Params.Contains("cshtml")) { string view_name = GetViewName(Params["cshtml"].Value.ToString()); Params.Remove("cshtml"); Params.Add("view_name", view_name); } return(Params); }
public string GetActionForParams(string json_params) { IParameterCollection Params = Util.DeserializeParams(json_params); if (Params.Contains("method_name") && Params.Contains("objectid")) { object[] extParams = new object[] { json_params }; try { string result = GetAction(Params["method_name"].Value.ToString(), int.Parse(Params["objectid"].Value.ToString()), JsonConvert.SerializeObject(extParams)); if (Params.Contains("result_is_already_formatted")) { return(result); } var actionObject = new { action = result }; return(JsonConvert.SerializeObject(actionObject)); } catch (Exception exc) { Logger.LogStatic(exc.Message); } } return(null); }
public string ObjectUpdateOrInsert(string class_name, string json_params) { try { DersaUserSqlManager M = new DersaUserSqlManager(); IParameterCollection Params = Util.DeserializeParams(json_params); bool doInsert = Params[class_name.ToLower()].Value.ToString() == ""; string keyName = class_name.ToLower(); if (!Params.Contains(keyName)) { return("no key"); } System.Data.DataTable T = M.ExecuteSPWithParams("OBJ$Info", new object[] { class_name, Params[class_name.ToLower()].Value }); if (T.Rows.Count < 1) { if (!doInsert) { return("no object"); } System.Data.DataRow newR = T.NewRow(); T.Rows.Add(newR); } ArrayList changedFields = new ArrayList(); foreach (IParameter Param in Params) { if (!doInsert || Param.Name != keyName) { T.Rows[0][Param.Name] = Param.Value; changedFields.Add(Param.Name); } } string dbName = M.DatabaseName; if (!dbName.Contains("[")) { dbName = "[" + dbName + "]"; } //if(doInsert) // M.InsertTable(dbName, class_name, class_name.ToLower(), T, changedFields); //else // M.UpdateTable(dbName, class_name, class_name.ToLower(), T, changedFields); return(""); } catch (System.Exception exc) { return(exc.Message); } }
public void DownloadReport(int id, string parameters) { DersaSqlManager M = new DersaAnonimousSqlManager(); IParameterCollection Params = Util.DeserializeParams(parameters); if (Params.Contains("proc_name")) { StreamWriter SW = null; string proc_name = Params["proc_name"].Value.ToString(); Params.Remove("proc_name"); try { Response.ContentType = "application/force-download; charset =windows-1251"; string Header = "Filename=" + "report_" + id.ToString() + ".csv"; //Attachment; Response.AppendHeader("Content-Disposition", Header); //MemoryStream S = new MemoryStream(); //SW = new StreamWriter(S); SW = new StreamWriter(Response.OutputStream, System.Text.Encoding.Default); M.ExecSqlToStream(proc_name, SW, Params); SW.Close(); //string result = System.Text.Encoding.UTF8.GetString(S.ToArray()); //byte[] btres = System.Text.Encoding.Default.GetBytes(result); //Response.AppendHeader("Content-Length", btres.Length.ToString()); //Response.OutputStream.Write(btres, 0, btres.Length); Response.End(); } catch (Exception exc) { Response.OutputStream.Flush(); Response.OutputStream.Close(); Response.ContentType = "TEXT/HTML"; Response.ClearHeaders(); Response.Write(exc.Message); } } else { throw new System.Exception("procedure for report is not defined!"); } }
public string ExecSql(string json_params) { IParameterCollection Params = Util.DeserializeParams(json_params); if (!Params.Contains("SQL")) { return(json_params); } else { DersaSqlManager M = new DersaSqlManager(); string sql = Params["SQL"].Value.ToString().Replace("$gt$", ">").Replace("$lt$", "<"); IParameterCollection UserParams = new ParameterCollection(); string userName = HttpContext.Current.User.Identity.Name; UserParams.Add("@login", userName); UserParams.Add("@password", Util.GetPassword(userName)); int userPermissions = M.ExecuteSPWithResult("DERSA_USER$GetPermissions", false, UserParams); int canExecSql = userPermissions & 1; if (canExecSql == 0) { return("You have no permissions to exec SQL in database."); } UserParams.Add("@user_setting_name", "Выполнять SQL локально"); int execSqlLocal = M.ExecuteSPWithResult("DERSA_USER$GetBoolUserSetting", false, UserParams); int canExecLocalSql = userPermissions & 2; if (execSqlLocal > 0) { if (canExecLocalSql == 0) { return("You have no permissions to exec SQL locally."); } else { string queryId = GetQueryId(sql); (UserParams["@user_setting_name"] as IParameter).Value = "Функция вызова локального клиента SQL"; System.Data.DataTable VT = M.ExecuteSPWithParams("DERSA_USER$GetTextUserSetting", UserParams); if (VT == null || VT.Rows.Count < 1) { throw new Exception("Функция вызова локального клиента SQL не определена"); } string functionBody = VT.Rows[0][0].ToString(); var result = new { action = functionBody, arg_name = "queryId", arg = queryId }; return(JsonConvert.SerializeObject(result)); } } try { string result = "Unknown error"; if (Params.Contains("Server") && Params["Server"].Value != null) { string connectionString = string.Format("Server={0};Database={1};user={2};password={3}", Params["Server"].Value, Params["Database"].Value, Params["Login"].Value, Params["Password"].Value); SqlManager ExecM = new SqlManager(connectionString); result = ExecM.ExecMultiPartSql(sql); } else { DersaUserSqlManager UM = new DersaUserSqlManager(); result = UM.ExecMultiPartSql(sql); } if (result != "") { return(result); } return("Запрос успешно выполнен:\n\n" + sql); } catch (Exception exc) { return(exc.Message); } } }