Пример #1
0
        //Brings the database's list of apps into compliance with the official list.
        protected void RefreshDBAppList()
        {
            StringBuilder builder = new StringBuilder();
            builder.Append("Updates from the official app list:<br/>");
            using (MediaAxEntities logDB = new MediaAxEntities("metadata=res://*;provider=System.Data.SqlClient;provider connection string='Data Source=mmodsql1.orcsweb.com;Initial Catalog=MediaAx;User ID=mmod_report_user;Password=\"MarchMadness;1\";MultipleActiveResultSets=True;Network Library=dbmssocn'"))
            {
                var logapps = from item in logDB.LogApplications select item;
                string action = "";
                bool adding = false;
                bool changedOne = false;
                bool changeHappened = false;

                //First, remove any local applications that don't officially exist anymore.
                var localApps = from item in data.Application
                                select item;
                foreach (Application app in localApps)
                {
                    if (logapps.Any(x => x.LogApplicationId == app.LogApplicationId))
                    {
                        continue;
                    }
                    else
                    {
                        builder.Append("Removed nonexistent Application: ");
                        builder.Append(app.LogApplicationId + " " + app.LogApplicationName + " " + app.LogApplicationVersion + "<br/>");
                        data.DeleteObject(app);
                        changeHappened = true;
                    }
                }

                //Then, add or edit applications where the local copy doesn't match the official version.
                foreach (LogApplications logApp in logapps)
                {
                    adding = false;
                    changedOne = false;
                    Application app;
                    try
                    {
                        app = data.Application.First(x => x.LogApplicationId == logApp.LogApplicationId);
                        action = "Edited \"" + app.LogApplicationId + " " + app.LogApplicationName + " " + app.LogApplicationVersion + "\" to match: ";
                    }
                    catch
                    {
                        app = new Application();
                        app.LogApplicationId = logApp.LogApplicationId;
                        action = "Added new Application: ";
                        adding = true;
                        changedOne = true;
                    }
                    if (app.LogApplicationName != logApp.LogApplicationName)
                    {
                        app.LogApplicationName = logApp.LogApplicationName;
                        changedOne = true;
                    }
                    if (app.LogApplicationVersion != logApp.LogApplicationVersion)
                    {
                        app.LogApplicationVersion = logApp.LogApplicationVersion;
                        changedOne = true;
                    }
                    if (changedOne)
                    {
                        changeHappened = true;
                        builder.Append(action);
                        builder.Append(app.LogApplicationId);
                        builder.Append(" ");
                        builder.Append(app.LogApplicationName);
                        builder.Append(" ");
                        builder.Append(app.LogApplicationVersion);
                        builder.Append("<br/>");
                        if (adding)
                        {
                            data.AddToApplication(app);
                        }
                    }
                }

                //If anything was removed, added, or edited, list it.
                if (changeHappened)
                {
                    updateDebug.Text = builder.ToString();
                    data.SaveChanges();
                }
            }
        }
Пример #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            data = new MediaAxEntities("metadata=res://*;provider=System.Data.SqlClient;provider connection string='Data Source=mmodsql1.orcsweb.com;Initial Catalog=MediaAx;User ID=mmod_report_user;Password=\"MarchMadness;1\";MultipleActiveResultSets=True;Network Library=dbmssocn'");
            data.CommandTimeout = 300;

            //If there isn't a user logged in yet, I'll need the accounts database.
            if (loginDiv.Visible)
            {
                accounts = new UserAccountsEntities("metadata=res://*;provider=System.Data.SqlClient;provider connection string='Data Source=mmodsql1.orcsweb.com;Initial Catalog=UserAccounts;User ID=mmod_report_user;Password=\"MarchMadness;1\";MultipleActiveResultSets=True;Network Library=dbmssocn'");
                accounts.CommandTimeout = 300;
            }

            if (!IsPostBack)
            {

                //set properties for the main datagrid.
                myDataGrid.AutoGenerateColumns = true;
                myDataGrid.BorderWidth = 2;
                myDataGrid.CellSpacing = 1;
                myDataGrid.GridLines = GridLines.Both;
                myDataGrid.BackColor = System.Drawing.Color.Beige;
                myDataGrid.HeaderStyle.BackColor = System.Drawing.Color.BurlyWood;
                myDataGrid.AlternatingItemStyle.BackColor = System.Drawing.Color.Gainsboro;

                var browsers = from item in data.LogBrowsers
                               orderby item.LogBrowserId
                               select new
                               {
                                   ID = item.LogBrowserId,
                                   Name = item.LogBrowserName,
                                   Version = item.LogBrowserVersion
                               };
                var browserNames = (from item in browsers select item.Name).Distinct();

                //Populate the TreeView
                TreeNode root = new TreeNode(currentApp);
                TreeNode osNode = new TreeNode("Operating Systems");
                TreeNode browserNode = new TreeNode("Browsers");
                foreach (string br in browserNames)
                {
                    TreeNode tempNode = new TreeNode(br);
                    tempNode.SelectAction = TreeNodeSelectAction.Select;
                    browserNode.ChildNodes.Add(tempNode);
                }
                browserNode.Expanded = false;
                var osNames = from item in data.LogPlatforms select item.LogPlatformName;
                foreach (string os in osNames)
                {
                    TreeNode tempNode = new TreeNode(os);
                    tempNode.SelectAction = TreeNodeSelectAction.Select;
                    osNode.ChildNodes.Add(tempNode);
                }
                foreach (TreeNode node in browserNode.ChildNodes)
                {
                    TreeNode OSes = new TreeNode("Operating Systems");
                    foreach (string os in osNames)
                    {
                        TreeNode tempNode = new TreeNode(os);
                        tempNode.SelectAction = TreeNodeSelectAction.Select;
                        OSes.ChildNodes.Add(tempNode);
                    }
                    OSes.Expanded = false;
                    node.ChildNodes.Add(OSes);
                    node.Expanded = false;
                }
                foreach (TreeNode node in osNode.ChildNodes)
                {
                    TreeNode brs = new TreeNode("Browsers");
                    foreach (string br in browserNames)
                    {
                        TreeNode tempNode = new TreeNode(br);
                        tempNode.SelectAction = TreeNodeSelectAction.Select;
                        brs.ChildNodes.Add(tempNode);
                    }
                    brs.Expanded = false;
                    node.ChildNodes.Add(brs);
                    node.Expanded = false;
                }
                osNode.Expanded = false;
                root.ChildNodes.Add(osNode);
                root.ChildNodes.Add(browserNode);
                root.Selected = true;
                SearchTree.Nodes.Add(root);

                //Check the cookie for auto-login
                string username = ReadCookie();
                if (username != null)
                {
                    try
                    {
                        User user = accounts.User.First(x => x.UserName == username);
                        LoginSuccessful(user);
                    }
                    catch
                    {
                    }
                }

                StartCalendar.SelectedDate = DateTime.Today;
                EndCalendar.SelectedDate = DateTime.Today;
            }

            //Anytime something is clicked, we hit this on post-back.
            if (!loginDiv.Visible)
            {
                //Change the app at the root of the tree view to match the one chosen in the dropdown.
                if (currentApp != AppIDList.SelectedItem.Text)
                {
                    SearchTree.Nodes[0].Value = AppIDList.SelectedItem.Value;
                    SearchTree.Nodes[0].Text = AppIDList.SelectedItem.Text;
                    Submitted(sender, e);
                }
                //Enable the calendars for custom dates.
                if (TimeSelection.SelectedIndex == 4)
                {
                    StartCalendar.Enabled = true;
                    EndCalendar.Enabled = true;
                }
                else
                {
                    StartCalendar.Enabled = false;
                    EndCalendar.Enabled = false;
                }
                //Submitted(sender, e);
            }
        }