コード例 #1
0
        //private UserProcessState _UserProcessState = UserProcessState.Processing ;
        ///// <summary>
        ///// 用户选择状态
        ///// </summary>
        //public virtual UserProcessState UserProcessState
        //{
        //    get { return _UserProcessState; }
        //    set { _UserProcessState = value; }
        //}

        //private UserProcessState _DefaultUserProcessState = UserProcessState.Accept;
        ///// <summary>
        ///// 默认的选择状态
        ///// </summary>
        //public virtual UserProcessState DefaultUserProcessState
        //{
        //    get { return _DefaultUserProcessState; }
        //    set { _DefaultUserProcessState = value; }
        //}

        /// <summary>
        /// 等待用户的选择操作,本函数将不返回直到用户确定选择或取消选择
        /// </summary>
        /// <remarks>本函数向当前应用程序添加自定义的消息过滤器,并开始循环处理当前应用程序的消息,若用户确定或取消的选择操作则退出循环处理</remarks>
        /// <returns>用户是否选择的某个项目</returns>
        public virtual void WaitUserSelected()
        {
            //Win32.NativeMSG msg = new Win32.NativeMSG();
            // Process messages until exit condition recognised
            bolExitLoop   = false;
            bolUserAccept = false;

            MessageFilter.ExcludePaintMessageFilter.Enabled = true;
            Win32Message.ClearMessage();
            //System.Windows.Forms.Application.DoEvents();
            MessageFilter.ExcludePaintMessageFilter.Enabled = false;

            System.Windows.Forms.Application.AddMessageFilter(this);
            //this.UserProcessState = WinForms.UserProcessState.Processing;
            UserProcessState  state = UserProcessState.Processing;
            WindowInformation info  = new WindowInformation(this);

            while (Win32Message.Wait())
            {
                //User32.GetMessage(ref msg, 0, 0, 0);
                //				Windows32.User32.GetMessage( ref msg , 0 , 0 , 0 );
                //				Windows32.User32.TranslateMessage( ref msg );
                //				Windows32.User32.DispatchMessage( ref msg );
                System.Windows.Forms.Application.DoEvents();
                //state = this.UserProcessState ;
                if (this.Visible == false)
                {
                    break;
                }
                if (state == UserProcessState.Accept ||
                    state == UserProcessState.Cancel)
                {
                    break;
                }
                if (bolExitLoop)
                {
                    break;
                }
            }//while
            System.Windows.Forms.Application.RemoveMessageFilter(this);
            Win32Message.ClearMessage();
            //if (state == UserProcessState.Processing)
            //{
            //    state = this.DefaultUserProcessState;
            //}
            if (this.AutoClose)
            {
                this.Hide();
            }
            //return state == UserProcessState.Accept ;
        }
コード例 #2
0
        public void RollbackOnError(UserProcessState state, string userName)
        {
            switch (state)
            {
            case UserProcessState.WIN_USER_ERROR:
                //Hvis brugeroprettelse er færdig, stop her (der kan være nogel oprettede brugere i batch oprettelse)
                break;

            case UserProcessState.WIN_GROUP_ERROR:
            {
                UserPrincipal  user       = UserPrincipal.FindByIdentity(context, userName);
                UserManagement management = new UserManagement(user);
                management.RemoveWindowsAccount(user);
                //textBox2.Text += Enum.GetName(typeof(UserProcessState), BatchState.State) + "\n";
                break;
            }

            case UserProcessState.IIS_WEBSITE_ERROR:
            {
                break;
            }

            case UserProcessState.VIRTUAL_DIRECTORY_ERROR:
            {
                //Hvis virtual directory oprettelse fejler, slet bruger og website
                UserPrincipal  user         = UserPrincipal.FindByIdentity(context, userName);
                UserManagement management   = new UserManagement(user);
                string         physicalPath = "C:\\inetpub\\wwwroot\\" + userName + "\\";
                iis.RemoveWebsite(userName, physicalPath);
            }

            break;

            case UserProcessState.SQL_LOGIN_ERROR:
            {
                //hvis sql login fejler, slet vdir, website,bruger
                Student        student      = db.Students.Where(x => x.Credentials.FTPUserName == userName).Single();
                UserPrincipal  user         = UserPrincipal.FindByIdentity(context, student.Credentials.FTPUserName);
                UserManagement management   = new UserManagement(user);
                string         physicalPath = "C:\\inetpub\\wwwroot\\" + student.Credentials.FTPUserName + "\\";
                iis.RemoveWebsite(student.Credentials.FTPUserName, physicalPath);
                iis.RemoveVirtualDirectory("_FTP", "/" + student.Credentials.FTPUserName, physicalPath);
            }

            break;

            case UserProcessState.SQL_DB_ERROR:
            {
                //hvis dboprettelse fejler, slet dblogin,vdir,website og bruger
                Student        student      = db.Students.Where(x => x.Credentials.FTPUserName == userName).Single();
                UserPrincipal  user         = UserPrincipal.FindByIdentity(context, student.Credentials.FTPUserName);
                UserManagement management   = new UserManagement(user);
                string         physicalPath = "C:\\inetpub\\wwwroot\\" + student.Credentials.FTPUserName + "\\";
                iis.RemoveWebsite(student.Credentials.FTPUserName, physicalPath);
                iis.RemoveVirtualDirectory("_FTP", "/" + student.Credentials.FTPUserName, physicalPath);
            }
            break;

            case UserProcessState.SQL_USER_ERROR:
            {
                //hvis dboprettelse fejler, slet alt for denne bruger
                Student        student      = db.Students.Where(x => x.Credentials.FTPUserName == userName).Single();
                UserPrincipal  user         = UserPrincipal.FindByIdentity(context, student.Credentials.FTPUserName);
                UserManagement management   = new UserManagement(user);
                string         physicalPath = "C:\\inetpub\\wwwroot\\" + student.Credentials.FTPUserName + "\\";
                iis.RemoveWebsite(student.Credentials.FTPUserName, physicalPath);
                iis.RemoveVirtualDirectory("_FTP", "/" + student.Credentials.FTPUserName, physicalPath);
                sql.DeleteLoginAndDB(student.Credentials.FTPUserName, student.Credentials.FTPUserName);
                break;
            }

            case UserProcessState.SQL_INSERT_USER_DATA_ERROR:
            {
                //hvis dboprettelse fejler, slet alt for denne bruger

                //UserPrincipal user = UserPrincipal.FindByIdentity(context, student.Credentials.FTPUserName);
                //UserManagement management = new UserManagement(user);
                //string physicalPath = "C:\\inetpub\\wwwroot\\" + student.Credentials.FTPUserName + "\\";
                //iis.RemoveWebsite(student.Credentials.FTPUserName, physicalPath);
                //iis.RemoveVirtualDirectory("_FTP", "/" + student.Credentials.FTPUserName, physicalPath);
                //sql.DeleteLoginAndDB(student.Credentials.FTPUserName, student.Credentials.FTPUserName);
                break;
            }
            }
        }
コード例 #3
0
        public void RollbackOnError(UserProcessState state, string userName)
        {
            switch (state)
            {

                case UserProcessState.WIN_USER_ERROR:
                    //Hvis brugeroprettelse er færdig, stop her (der kan være nogel oprettede brugere i batch oprettelse)
                    break;
                case UserProcessState.WIN_GROUP_ERROR:
                    {
                        UserPrincipal user = UserPrincipal.FindByIdentity(context, userName);
                        UserManagement management = new UserManagement(user);
                        management.RemoveWindowsAccount(user);
                        //textBox2.Text += Enum.GetName(typeof(UserProcessState), BatchState.State) + "\n";
                        break;
                    }
                case UserProcessState.IIS_WEBSITE_ERROR:
                    {

                        break;
                    }
                case UserProcessState.VIRTUAL_DIRECTORY_ERROR:
                    {
                        //Hvis virtual directory oprettelse fejler, slet bruger og website
                        UserPrincipal user = UserPrincipal.FindByIdentity(context, userName);
                        UserManagement management = new UserManagement(user);
                        string physicalPath = "C:\\inetpub\\wwwroot\\" + userName + "\\";
                        iis.RemoveWebsite(userName, physicalPath);

                    }

                    break;
                case UserProcessState.SQL_LOGIN_ERROR:
                    {
                        //hvis sql login fejler, slet vdir, website,bruger
                        Student student = db.Students.Where(x => x.Credentials.FTPUserName == userName).Single();
                        UserPrincipal user = UserPrincipal.FindByIdentity(context, student.Credentials.FTPUserName);
                        UserManagement management = new UserManagement(user);
                        string physicalPath = "C:\\inetpub\\wwwroot\\" + student.Credentials.FTPUserName + "\\";
                        iis.RemoveWebsite(student.Credentials.FTPUserName, physicalPath);
                        iis.RemoveVirtualDirectory("_FTP", "/" + student.Credentials.FTPUserName, physicalPath);
                    }

                    break;
                case UserProcessState.SQL_DB_ERROR:
                    {
                        //hvis dboprettelse fejler, slet dblogin,vdir,website og bruger
                        Student student = db.Students.Where(x => x.Credentials.FTPUserName == userName).Single();
                        UserPrincipal user = UserPrincipal.FindByIdentity(context, student.Credentials.FTPUserName);
                        UserManagement management = new UserManagement(user);
                        string physicalPath = "C:\\inetpub\\wwwroot\\" + student.Credentials.FTPUserName + "\\";
                        iis.RemoveWebsite(student.Credentials.FTPUserName, physicalPath);
                        iis.RemoveVirtualDirectory("_FTP", "/" + student.Credentials.FTPUserName, physicalPath);
                    }
                    break;
                case UserProcessState.SQL_USER_ERROR:
                    {
                        //hvis dboprettelse fejler, slet alt for denne bruger
                        Student student = db.Students.Where(x => x.Credentials.FTPUserName == userName).Single();
                        UserPrincipal user = UserPrincipal.FindByIdentity(context, student.Credentials.FTPUserName);
                        UserManagement management = new UserManagement(user);
                        string physicalPath = "C:\\inetpub\\wwwroot\\" + student.Credentials.FTPUserName + "\\";
                        iis.RemoveWebsite(student.Credentials.FTPUserName, physicalPath);
                        iis.RemoveVirtualDirectory("_FTP", "/" + student.Credentials.FTPUserName, physicalPath);
                        sql.DeleteLoginAndDB(student.Credentials.FTPUserName, student.Credentials.FTPUserName);
                        break;
                    }
                case UserProcessState.SQL_INSERT_USER_DATA_ERROR:
                    {
                        //hvis dboprettelse fejler, slet alt for denne bruger

                        //UserPrincipal user = UserPrincipal.FindByIdentity(context, student.Credentials.FTPUserName);
                        //UserManagement management = new UserManagement(user);
                        //string physicalPath = "C:\\inetpub\\wwwroot\\" + student.Credentials.FTPUserName + "\\";
                        //iis.RemoveWebsite(student.Credentials.FTPUserName, physicalPath);
                        //iis.RemoveVirtualDirectory("_FTP", "/" + student.Credentials.FTPUserName, physicalPath);
                        //sql.DeleteLoginAndDB(student.Credentials.FTPUserName, student.Credentials.FTPUserName);
                        break;
                    }

            }
        }