private void DefaultMethod() { Configuration config = AppContext.GetConfiguration(); Configuration.ApplicationRow applicationRow = config.Application.First(o => o.ApplicationID == Request.Form["app"]); Configuration.SearchRow searchRow = config.Search.First(o => o.SearchID == Request.Form["search"]); JavaScriptSerializer serializer = new JavaScriptSerializer(); Dictionary <String, Object> criteria = serializer.Deserialize <Dictionary <String, Object> >(Request.Form["criteria"]); List <String> levels = new List <String>(); if (!applicationRow.IsZoneLevelIDNull()) { levels = applicationRow.ZoneLevelRow.GetLevelRows().Select(o => o.LevelID).ToList(); } List <String> where = new List <String>(); List <Object> parameters = new List <Object>(); foreach (string criteriaID in criteria.Keys) { Configuration.SearchInputFieldRow searchInputFieldRow = config.SearchInputField.First(o => o.FieldID == criteriaID); switch (searchInputFieldRow.FieldType) { case "autocomplete": case "date": case "list": case "number": case "text": where.Add(searchInputFieldRow.ColumnName + " = ?"); parameters.Add(criteria[criteriaID]); break; case "daterange": case "numberrange": ArrayList values = (ArrayList)criteria[criteriaID]; if (values[0] != null) { where.Add(searchInputFieldRow.ColumnName + " >= ?"); parameters.Add(values[0]); } if (values[1] != null) { where.Add(searchInputFieldRow.ColumnName + " <= ?"); parameters.Add(values[1]); } break; } } Dictionary <String, Object> result = new Dictionary <String, Object>(); using (OleDbCommand command = searchRow.GetSelectCommand()) { command.CommandText = String.Format(command.CommandText, String.Join(" and ", where.ToArray())); for (int i = 0; i < parameters.Count; ++i) { command.Parameters.AddWithValue(i.ToString(), parameters[i]); } using (OleDbDataReader reader = command.ExecuteReader()) { // get the indexes of the ID columns int mapIdColumn = reader.GetColumnIndex("MapID"); int dataIdColumn = reader.GetColumnIndex("DataID"); int levelIdColumn = levels.Count > 0 ? reader.GetColumnIndex("LevelID") : -1; // write the column headers List <String> headers = new List <String>(); for (int i = 0; i < reader.FieldCount; ++i) { if (i != mapIdColumn && i != dataIdColumn && i != levelIdColumn) { headers.Add(reader.GetName(i)); } } result.Add("headers", headers); // write the data List <Dictionary <String, Object> > rows = new List <Dictionary <String, Object> >(); while (reader.Read()) { if (!reader.IsDBNull(mapIdColumn) && !reader.IsDBNull(dataIdColumn)) { Dictionary <String, String> id = new Dictionary <String, String>(); id.Add("m", reader.GetValue(mapIdColumn).ToString()); if (dataIdColumn > -1 && !reader.IsDBNull(dataIdColumn)) { id.Add("d", reader.GetValue(dataIdColumn).ToString()); } if (levelIdColumn > -1 && !reader.IsDBNull(levelIdColumn)) { string levelId = reader.GetValue(levelIdColumn).ToString(); if (levels.Contains(levelId)) { id.Add("l", levelId); } } List <Object> values = new List <Object>(); for (int i = 0; i < reader.FieldCount; ++i) { if (i != mapIdColumn && i != dataIdColumn && i != levelIdColumn) { values.Add(reader.IsDBNull(i) ? null : reader.GetValue(i)); } } Dictionary <String, Object> row = new Dictionary <String, Object>(); row.Add("id", id); row.Add("v", values); rows.Add(row); } } result.Add("rows", rows); } } ReturnJson(result); }
private void GetQueryGridData() { AppState appState = AppState.FromJson(Request.Form["state"]); Configuration.ApplicationRow application = Configuration.Application.First(o => o.ApplicationID == appState.Application); Configuration.QueryRow query = Configuration.Query.First(o => o.QueryID == appState.Query); List <String> zones = new List <String>(); List <String> levels = new List <String>(); if (!application.IsZoneLevelIDNull()) { zones = application.ZoneLevelRow.GetZoneRows().Select(o => o.ZoneID).ToList(); levels = application.ZoneLevelRow.GetLevelRows().Select(o => o.LevelID).ToList(); } Dictionary <String, Object> result = new Dictionary <String, Object>(); using (OleDbCommand command = query.GetDatabaseCommand()) { command.Parameters[0].Value = appState.TargetIds.Join(","); if (command.Parameters.Count > 1) { command.Parameters[1].Value = AppUser.GetRole(); } using (OleDbDataReader reader = command.ExecuteReader()) { // get the indexes of the ID columns int mapIdColumn = reader.GetColumnIndex("MapID"); int dataIdColumn = reader.GetColumnIndex("DataID"); int zoneIdColumn = zones.Count > 0 ? reader.GetColumnIndex("ZoneID") : -1; int levelIdColumn = levels.Count > 0 ? reader.GetColumnIndex("LevelID") : -1; // write the column headers List <String> headers = new List <String>(); for (int i = 0; i < reader.FieldCount; ++i) { if (i != mapIdColumn && i != dataIdColumn && i != zoneIdColumn && i != levelIdColumn) { headers.Add(reader.GetName(i)); } } result.Add("headers", headers); // write the data List <Dictionary <String, Object> > rows = new List <Dictionary <String, Object> >(); while (reader.Read()) { if (!reader.IsDBNull(mapIdColumn) && !reader.IsDBNull(dataIdColumn)) { Dictionary <String, String> id = new Dictionary <String, String>(); id.Add("m", reader.GetValue(mapIdColumn).ToString()); if (dataIdColumn > -1 && !reader.IsDBNull(dataIdColumn)) { id.Add("d", reader.GetValue(dataIdColumn).ToString()); } if (zoneIdColumn > -1 && !reader.IsDBNull(zoneIdColumn)) { string zoneId = reader.GetValue(zoneIdColumn).ToString(); if (zones.Contains(zoneId)) { id.Add("z", zoneId); } } if (levelIdColumn > -1 && !reader.IsDBNull(levelIdColumn)) { string levelId = reader.GetValue(levelIdColumn).ToString(); if (levels.Contains(levelId)) { id.Add("l", levelId); } } List <Object> values = new List <Object>(); for (int i = 0; i < reader.FieldCount; ++i) { if (i != mapIdColumn && i != dataIdColumn && i != zoneIdColumn && i != levelIdColumn) { values.Add(reader.IsDBNull(i) ? null : reader.GetValue(i)); } } Dictionary <String, Object> row = new Dictionary <String, Object>(); row.Add("id", id); row.Add("v", values); rows.Add(row); } } result.Add("rows", rows); } command.Connection.Dispose(); } ReturnJson(result); }
private void Page_PreRender(object sender, EventArgs e) { ddlTarget.Style["background-color"] = ColorTranslator.ToHtml(AppSettings.TargetColorUI); ddlSelection.Style["background-color"] = ColorTranslator.ToHtml(AppSettings.SelectionColorUI); lnkAdminEmail.HRef = "mailto:" + AppSettings.AdminEmail; lnkAdminEmail2.HRef = lnkAdminEmail.HRef; pVersion.InnerText = "GPV version " + Version.ToString(); string applicationID = Request.QueryString["application"]; if (applicationID == null) { return; } Configuration.ApplicationRow application = AppContext.GetConfiguration().Application.FirstOrDefault(o => o.ApplicationID == applicationID); if (application == null) { return; } pnlAbout.Visible = true; labAboutTitle.Text = "About " + application.DisplayName; if (!application.IsAboutNull()) { labAboutText.InnerHtml = application.About + "<p/>"; } string tabNames = Request.QueryString["functiontabs"]; string[] functionTabs = tabNames == null ? new string[] { } : tabNames.Split(','); bool hasSelection = functionTabs.Any(o => o.ToLower() == "selection"); bool hasLegend = functionTabs.Any(o => o.ToLower() == "legend"); bool hasLocation = functionTabs.Any(o => o.ToLower() == "location"); bool hasMarkup = functionTabs.Any(o => o.ToLower() == "markup"); if (hasSelection) { spnNoSelection.Visible = false; spnHasSelection.Visible = true; pnlSelection.Visible = true; } if (hasLegend) { spnNoLegend.Visible = false; spnHasLegend.Visible = true; } if (hasLocation) { spnNoLocation.Visible = false; spnHasLocation.Visible = true; } if (hasMarkup) { spnNoMarkup.Visible = false; spnHasMarkup.Visible = true; pnlMarkup.Visible = true; if (AppAuthentication.Mode != AuthenticationMode.None) { spnMarkupOpen.Visible = false; spnMarkupSecure.Visible = true; spnMarkupNameOpen.Visible = false; spnMarkupNameSecure.Visible = true; liLock.Visible = true; spnMarkupSelectOpen.Visible = false; spnMarkupSelectSecure.Visible = true; } } bool hasZones = !application.IsZoneLevelIDNull() && application.ZoneLevelRow.GetZoneRows().Length > 0; bool hasLevels = !application.IsZoneLevelIDNull() && application.ZoneLevelRow.GetLevelRows().Length > 0; bool hasCombos = hasZones && application.ZoneLevelRow.GetZoneRows().Any(o => o.GetZoneLevelComboRows().Length > 0); pnlZoneLevel.Visible = hasZones || hasLevels; if (hasZones) { string zoneName = application.ZoneLevelRow.ZoneTypeDisplayName; string zoneNameLower = zoneName.ToLower(); if (String.Compare(zoneName, "Building", true) == 0) { spnZoneName.InnerText = " (Building in this example and in the current application)"; } else { spnZoneName.InnerText = String.Format(" (Building in this example, {0} in the current application)", zoneName); } pZoneTab.Visible = true; spnZoneTabName.InnerText = zoneName; litZoneName1.Text = zoneNameLower; litZoneName2.Text = zoneNameLower; litZoneName3.Text = zoneNameLower; litZoneLevel.Text = zoneNameLower; } if (hasLevels) { string levelName = application.ZoneLevelRow.LevelTypeDisplayName; string levelNameLower = levelName.ToLower(); pMapLevel.Visible = true; spnMapLevel.InnerText = levelName; if (String.Compare(levelName, "Floor", true) == 0) { spnLevelName.InnerText = " (Floor in this example and in the current application)"; } else { spnLevelName.InnerText = String.Format(" (Floor in this example, {0} in the current application)", levelName); } pnlLevel.Visible = true; spnLevel1.InnerText = levelName; spnLevel2.InnerText = levelNameLower; labLevel.Text = levelName; string lev = !application.IsDefaultLevelNull() ? application.DefaultLevel : application.ZoneLevelRow.GetLevelRows()[0].DisplayName; ddlLevel.Items.Add(lev); pLevelTab.Visible = true; spnLevelTabName.InnerText = levelName; litLevelName1.Text = levelNameLower; litLevelName2.Text = levelNameLower; litLevelName3.Text = levelNameLower; litZoneLevel.Text = hasZones ? litZoneLevel.Text + " and " + levelNameLower : levelNameLower; } if (hasCombos) { pComboTab.Visible = true; spnComboTabName.InnerText = application.ZoneLevelRow.LevelTypeDisplayName + " by " + application.ZoneLevelRow.ZoneTypeDisplayName; } }