Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
    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;
        }
    }