public virtual ActionResult ChangeUsername(string ID)
        {
            try
            {
                // Preset form.
                ChangeUsernameSubmission changeUsernameSubmission = new ChangeUsernameSubmission();

                // Fetch database info.
                DatabaseInfo database = MgmtMdl.GetDatabase(ID);
                changeUsernameSubmission.Database = database;

                // Verify user privileges.
                if (database.Owner != User.Identity.GetADUsername())
                {
                    System.Web.HttpContext.Current.Session["StatusMessage"] = "You do not have permisson to access the <strong>" + database.Name + "</strong> database.";
                    return(RedirectToAction("Index", "View"));
                }

                // Verify database information.
                if (database.Password == "")
                {
                    System.Web.HttpContext.Current.Session["StatusMessage"] = "Username cannot be changed. Password is missing.";
                    return(RedirectToAction("Database", "View", new { id = database.DatabaseID }));
                }


                return(View("ChangeUsername", changeUsernameSubmission));
            }
            catch (Exception e)
            {
                System.Web.HttpContext.Current.Session["ErrorInfo"] = e.ToString();
                return(RedirectToAction("Error", "View"));
            }
        }
        public virtual ActionResult ChangeUsername(ChangeUsernameSubmission changeUsernameSubmission, string ID)
        {
            try
            {
                // Reattach database info to submission.
                changeUsernameSubmission.Database = MgmtMdl.GetDatabase(ID);

                // Verify data.
                if (!ModelState.IsValid) // Invalid HTML form.
                {
                    return(View(changeUsernameSubmission));
                }
                List <DatabaseInfo> databases = MgmtMdl.GetDatabases("Databases.ServerID", changeUsernameSubmission.Database.Host.ServerID);
                for (int i = 0; i < databases.Count; i++)
                {
                    if (databases[i].Username == changeUsernameSubmission.NewUsername) // Username already exists.
                    {
                        System.Web.HttpContext.Current.Session["StatusMessage"] = @"The username <strong>" + changeUsernameSubmission.NewUsername + @"</strong> already exists on this server.";
                        return(View(changeUsernameSubmission));
                    }
                }

                // Attempt to change the username.
                IntfcMdl.ChangeUsername(changeUsernameSubmission);
                MgmtMdl.UpdateUsername(ID, changeUsernameSubmission.NewUsername);

                // Redirect and display success message.
                System.Web.HttpContext.Current.Session["StatusMessage"] = "The username on <strong>" + changeUsernameSubmission.Database.Name + "</strong> was changed to <strong>" + changeUsernameSubmission.NewUsername + "</strong>.";
                System.Web.HttpContext.Current.Session["StatusStyle"]   = "success";
                return(RedirectToAction("Database", "View", new { id = changeUsernameSubmission.Database.DatabaseID }));
            }
            catch (Exception e)
            {
                System.Web.HttpContext.Current.Session["ErrorInfo"] = e.ToString();
                return(RedirectToAction("Error", "View"));
            }
        }