protected string GetValueText() { var dalc = WebManager.GetService <IDalc>(DalcServiceName); var relexParser = new RelExQueryParser(false); var exprResolver = WebManager.GetService <NI.Common.Expressions.IExpressionResolver>("defaultExprResolver"); var qContext = new Hashtable(); if (DataContext is IDictionary) { qContext = new Hashtable((IDictionary)DataContext); } qContext["q"] = String.Empty; Query q = (Query)relexParser.Parse(Convert.ToString(exprResolver.Evaluate(qContext, GetRelex()))); q.Root = new QueryConditionNode((QField)ValueFieldName, Conditions.Equal, (QConst)Value); //& q.Root; var data = new Hashtable(); if (dalc.LoadRecord(data, q)) { var text = Convert.ToString(data[TextFieldName]); return(LocalizationEnabled?WebManager.GetLabel(text, this):text); } else { Value = null; return(""); } }
protected string GetSelectedItemsJson() { var dalc = WebManager.GetService <IDalc>(DalcServiceName); var relexParser = new RelExQueryParser(false); var exprResolver = WebManager.GetService <NI.Common.Expressions.IExpressionResolver>("defaultExprResolver"); var selectedIds = GetSelectedIds(); if (selectedIds.Length == 0) { return("[]"); } var qContext = new Hashtable(); qContext["q"] = String.Empty; Query q = (Query)relexParser.Parse(Convert.ToString(exprResolver.Evaluate(qContext, GetRelex()))); q.Root = new QueryConditionNode((QField)ValueFieldName, Conditions.In, new QConst(selectedIds)); //& q.Root; var ds = new DataSet(); dalc.Load(ds, q); var results = new IDictionary <string, object> [ds.Tables[q.SourceName].Rows.Count]; for (int i = 0; i < results.Length; i++) { results[i] = new Dictionary <string, object>(new DataRowDictionaryWrapper(ds.Tables[q.SourceName].Rows[i])); } if (PositionFieldName != null) { var initialPositions = results.Select(r => Array.IndexOf(selectedIds, Convert.ToString(r[ValueFieldName]))) .ToArray(); Array.Sort(initialPositions, results); } var json = new JavaScriptSerializer(); return(json.Serialize(results)); }
protected string GetValueText() { var dalc = WebManager.GetService<IDalc>(DalcServiceName); var relexParser = new RelExQueryParser(false); var exprResolver = WebManager.GetService<NI.Common.Expressions.IExpressionResolver>("defaultExprResolver"); var qContext = new Hashtable(); if (DataContext is IDictionary) { qContext = new Hashtable((IDictionary)DataContext); } qContext["q"] = String.Empty; Query q = (Query)relexParser.Parse( Convert.ToString( exprResolver.Evaluate( qContext, GetRelex() ) ) ); q.Root = new QueryConditionNode( (QField)ValueFieldName, Conditions.Equal, (QConst)Value ); //& q.Root; var data = new Hashtable(); if (dalc.LoadRecord(data, q)) { var text = Convert.ToString(data[TextFieldName]); return LocalizationEnabled?WebManager.GetLabel(text,this):text; } else { Value = null; return ""; } }
public void ProcessRequest(HttpContext context) { var Request = context.Request; var Response = context.Response; log.Write(LogEvent.Info, "Processing FlexBox ajax request: {0}", Request.Url.ToString()); var dalcName = Request["dalc"]; var relex = Request["relex"]; var validationCode = Request["validate"]; if (!ValidateRequest(validationCode, dalcName, relex)) { log.Write(LogEvent.Error, "Validation failed for FlexBox ajax request: {0}", Request.Url.ToString()); throw new Exception("Invalid FlexBox ajax request"); } var relexByServiceName = WebManager.GetService <object>(relex); if (relexByServiceName != null) { relex = Convert.ToString(relexByServiceName); } var dalc = WebManager.GetService <IDalc>(dalcName); var labelField = Request["label"]; var filterPrvName = Request["filter"]; var relexParser = new RelExQueryParser(false); var exprResolver = WebManager.GetService <NI.Common.Expressions.IExpressionResolver>("defaultExprResolver"); var filterPrv = filterPrvName != null?WebManager.GetService <IProvider <IDictionary <string, object>, IDictionary <string, object> > >(filterPrvName) : null; var qContext = new Hashtable(); // directly passed query parameters foreach (string key in Request.Params.Keys) { if (key != null) { qContext[key] = Request.Params[key]; } } // legacy context format (left for compatibility) if (Request["context"] != null) { var deserializedCtx = JsHelper.FromJsonString <IDictionary <string, object> >(Request["context"]); foreach (var item in deserializedCtx) { qContext[item.Key] = JsHelper.FromJsonString(Convert.ToString(item.Value)); } } // actually used context if (Request["context_json"] != null) { var deserializedCtx = JsHelper.FromJsonString <IDictionary <string, object> >(Request["context_json"]); foreach (var item in deserializedCtx) { qContext[item.Key] = item.Value; } } Query q = (Query)relexParser.Parse(Convert.ToString(exprResolver.Evaluate(qContext, relex))); if (Request["action"] == "add" && Request["textfield"] != null && Request["valuefield"] != null) { var dbMgr = new DalcManager(dalc, WebManager.GetService <IDataSetProvider>("dsFactory")); var newEntryRow = dbMgr.Create(q.SourceName); newEntryRow[Request["textfield"]] = Request["value"]; dbMgr.Update(newEntryRow); Response.Write(JsHelper.ToJsonString(new Dictionary <string, object>(ConvertManager.ChangeType <IDictionary <string, object> >(newEntryRow)))); } else { if (Request["p"] != null && Request["s"] != null) { var pageSize = Convert.ToInt32(Request["s"]); q.StartRecord = (Convert.ToInt32(Request["p"]) - 1) * pageSize; q.RecordCount = pageSize; } var ds = new DataSet(); dalc.Load(ds, q); var res = new Dictionary <string, object>(); var results = new List <IDictionary <string, object> >(); foreach (DataRow r in ds.Tables[q.SourceName].Rows) { IDictionary <string, object> data = new Dictionary <string, object>(new DataRowDictionaryWrapper(r)); // process label field (if specified) if (!String.IsNullOrEmpty(labelField) && data.ContainsKey(labelField)) { data[labelField] = WebManager.GetLabel(Convert.ToString(data[labelField]), typeof(FlexBoxAjaxHandler).FullName); } // prevent security hole if (data.ContainsKey("password")) { data["password"] = null; } // filter if (filterPrv != null) { data = filterPrv.Provide(data); } if (data != null) { results.Add(data); } } res["total"] = dalc.RecordsCount(q.SourceName, q.Root); res["results"] = results; var json = new JavaScriptSerializer(); Response.Write(json.Serialize(res)); } }
protected string GetSelectedItemsJson() { var dalc = WebManager.GetService<IDalc>(DalcServiceName); var relexParser = new RelExQueryParser(false); var exprResolver = WebManager.GetService<NI.Common.Expressions.IExpressionResolver>("defaultExprResolver"); var selectedIds = GetSelectedIds(); if (selectedIds.Length==0) return "[]"; var qContext = new Hashtable(); qContext["q"] = String.Empty; Query q = (Query)relexParser.Parse( Convert.ToString( exprResolver.Evaluate( qContext, GetRelex() ) ) ); q.Root = new QueryConditionNode( (QField)ValueFieldName, Conditions.In, new QConst(selectedIds) ); //& q.Root; var ds = new DataSet(); dalc.Load(ds, q); var results = new IDictionary<string,object>[ds.Tables[q.SourceName].Rows.Count]; for (int i=0; i<results.Length; i++) results[i] = new Dictionary<string,object>( new DataRowDictionaryWrapper( ds.Tables[q.SourceName].Rows[i] ) ); if (PositionFieldName != null) { var initialPositions = results.Select(r => Array.IndexOf(selectedIds, Convert.ToString(r[ValueFieldName]))) .ToArray(); Array.Sort(initialPositions, results); } var json = new JavaScriptSerializer(); return json.Serialize(results); }