ForumServer.ServerController.ReplaceAdmin C# (CSharp) Метод

ReplaceAdmin() публичный Метод

public ReplaceAdmin ( string oldAdminUsername, string oldAdminPassword, string newAdminUsername, string newAdminPassword ) : System.Result
oldAdminUsername string
oldAdminPassword string
newAdminUsername string
newAdminPassword string
Результат System.Result
        public Result ReplaceAdmin(string oldAdminUsername, string oldAdminPassword, string newAdminUsername, string newAdminPassword)
        {
            try
            {
                log.Info("got request to replace admin");

                Result res = securityManager.AuthenticateAdmin(oldAdminUsername, oldAdminPassword);
                if (res == Result.OK)
                {
                    User newAdmin;
                    try
                    {
                        newAdmin = dataManager.GetUser(newAdminUsername);
                    }
                    catch (UserNotFoundException)
                    {
                        newAdmin = new User(newAdminUsername, newAdminPassword);
                        dataManager.AddUser(newAdmin);
                    }

                    User oldAdmin = dataManager.GetAdmin();
                    if (CheckIfModerator(oldAdminUsername))
                        oldAdmin.Level = AuthorizationLevel.MODERATOR;
                    else
                        oldAdmin.Level = AuthorizationLevel.MEMBER;
                    newAdmin.Level = AuthorizationLevel.ADMIN;
                    if (dataManager.SetAdmin(newAdmin))
                        return Result.OK;
                    else return Result.ENTRY_EXISTS;
                }
                else return res;

            }
            catch (Exception e)
            {
                log.Error("failed to replace admin", e);
                throw e;
            }
        }