//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(); } } }
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); } }