Пример #1
0
        //Adds a new Application or edits an existing one.
        protected void AddEditApplication(object sender, EventArgs e)
        {
            ClearDebugLabels();
            if ((appIDBox.Text == "") ||
                (appNameBox.Text == "") ||
                (appVersionBox.Text == ""))
            {
                AppDebug.Text = "Cannot have empty fields.";
                return;
            }
            int appID = int.Parse(appIDBox.Text);
            bool editing = false;
            Application app;
            try
            {
                app = data.Application.First(x => x.LogApplicationId == appID);
            }
            catch
            {
                app = new Application();
                app.LogApplicationId = appID;
                editing = true;
            }
            app.LogApplicationName = appNameBox.Text;
            app.LogApplicationVersion = appVersionBox.Text;
            if (editing)
            {
                data.AddToApplication(app);
            }
            data.SaveChanges();

            int user = userSelectionBox.SelectedIndex;
            PopulateLists();
            userSelectionBox.SelectedIndex = user;
            DisplaySelectedUserData(sender, e);
        }
Пример #2
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();
                }
            }
        }