Пример #1
0
    protected void wizInstall_NextButtonClick(object sender, WizardNavigationEventArgs e)
    {
        int activeIndex = 0;

        if (!IsModuleExist(Path.GetFileNameWithoutExtension(hdnFileName.Value)))
        {
            try
            {
                switch (e.CurrentStepIndex)
                {
                case 0:    //Upload Page
                    string    filename = hdnFileName.Value;
                    ArrayList arrColl  = installhelp.Step0CheckLogic(filename);
                    int       ReturnValue;
                    if (arrColl != null && arrColl.Count > 0)
                    {
                        if ((bool)arrColl[2])
                        {
                            compositeModule = (CompositeModule)arrColl[1];
                            compositeModule = installhelp.fillCompositeModuleInfo(compositeModule);
                            ViewState["CompositeModule"] = compositeModule;
                        }
                        else
                        {
                            module = (ModuleInfo)arrColl[1];
                            ViewState["ModuleInfo"] = module;
                        }

                        ReturnValue = (int)arrColl[0];
                        if (ReturnValue == 1)
                        {
                            BindPackage();
                            activeIndex = 2;
                            break;
                        }
                        else if (ReturnValue == 2)
                        {
                            activeIndex = 1;
                            BindPackage();
                            break;
                        }
                        else if (ReturnValue == 3)
                        {
                            lblLoadMessage.Text    = GetSageMessage("Extensions", "ThisPackageIsNotValid");
                            lblLoadMessage.Visible = true;
                            e.Cancel    = true;
                            activeIndex = 0;
                            break;
                        }
                        else if (ReturnValue == 4)
                        {
                            lblLoadMessage.Text    = GetSageMessage("Extensions", "ThisPackageDoesNotAppearToBeValid");
                            lblLoadMessage.Visible = true;
                            e.Cancel    = true;
                            activeIndex = 0;
                            break;
                        }
                        else
                        {
                            lblLoadMessage.Text    = GetSageMessage("Extensions", "ThereIsErrorWhileInstallingThisModule");
                            lblLoadMessage.Visible = true;
                            e.Cancel    = true;
                            activeIndex = 0;
                            break;
                        }
                    }
                    break;

                case 1:    //Warning Page
                    if (chkRepairInstall.Checked)
                    {
                        if (ViewState["CompositeModule"] != null)
                        {
                            CompositeModule tmpcompositeModule = (CompositeModule)ViewState["CompositeModule"];
                            this.lblLicense.Text      = tmpcompositeModule.License;
                            this.lblReleaseNotes.Text = tmpcompositeModule.ReleaseNotes;
                            foreach (Component component in tmpcompositeModule.Components)
                            {
                                if (component.IsChecked)
                                {
                                    bool isexist = installhelp.IsModuleExist(component.Name);
                                    if (isexist)
                                    {
                                        ModuleInfo objModule = installhelp.GetModuleByName(component.Name);
                                        if ((objModule != null))
                                        {
                                            string path       = HttpContext.Current.Server.MapPath("~/");
                                            string targetPath = path + SageFrame.Common.RegisterModule.Common.ModuleFolder + '\\' + objModule.FolderName;

                                            objModule.InstalledFolderPath = targetPath;
                                            UninstallModule(objModule, true);
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            module = (ModuleInfo)ViewState["ModuleInfo"];
                            UninstallModule(module, true);
                        }
                        activeIndex = 2;
                    }
                    else
                    {
                        UninstallModule(module, false);
                        activeIndex = 1;
                    }


                    if (ViewState["CompositeModule"] != null)
                    {
                        compositeModule = (CompositeModule)ViewState["CompositeModule"];

                        activeIndex = 3;
                    }
                    else
                    {
                        module = (ModuleInfo)ViewState["ModuleInfo"];
                    }
                    break;

                case 2:
                    Panel    pnl             = (Panel)this.Step2.FindControl("pnlPackage");
                    GridView grd             = (GridView)pnl.FindControl("gdvModule");
                    string   existingModules = string.Empty;
                    bool     IsErrorFlag     = false;
                    foreach (GridViewRow row in grd.Rows)
                    {
                        CheckBox cbInstall = (CheckBox)row.FindControl("cbInstall");
                        if (cbInstall.Checked == true)
                        {
                            Label lbl = (Label)row.FindControl("lblname");
                            if (ViewState["CompositeModule"] != null)
                            {
                                CompositeModule tmpcompositeModule = (CompositeModule)ViewState["CompositeModule"];
                                this.lblLicense.Text      = tmpcompositeModule.License;
                                this.lblReleaseNotes.Text = tmpcompositeModule.ReleaseNotes;
                                foreach (Component component in tmpcompositeModule.Components)
                                {
                                    if (component.Name.Equals(lbl.Text))
                                    {
                                        component.IsChecked = true;
                                        bool isexist = installhelp.IsModuleExist(component.Name.ToLower());
                                        if (isexist)
                                        {
                                            IsErrorFlag      = true;
                                            existingModules += component.Name + ", ";
                                        }
                                        break;
                                    }
                                }
                                ViewState["CompositeModule"] = tmpcompositeModule;
                            }
                        }
                        else
                        {
                            Label lbl = (Label)row.FindControl("lblname");
                            if (ViewState["CompositeModule"] != null)
                            {
                                CompositeModule compositeModule = (CompositeModule)ViewState["CompositeModule"];
                                foreach (Component component in compositeModule.Components)
                                {
                                    if (component.Name.Equals(lbl.Text))
                                    {
                                        if (!installhelp.IsModuleExist(component.Name.ToLower()))
                                        {
                                            installhelp.AddAvailableModules(compositeModule.TempFolderPath, component);
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    if (IsErrorFlag)
                    {
                        string existingModuleName = existingModules.Substring(0, existingModules.LastIndexOf(","));
                        ShowMessage("Modules " + existingModuleName + " already exists", "Modules " + existingModuleName + " already exists", "Modules " + existingModuleName + " already exists", SageMessageType.Error);
                        activeIndex = 1;
                        BindPackage();
                        IsErrorFlag = false;
                        break;
                    }
                    activeIndex = 3;
                    break;

                case 3:
                    activeIndex = 4;
                    break;

                case 4:    //Accept Terms
                    if (chkAcceptLicense.Checked)
                    {
                        if (ViewState["CompositeModule"] != null)
                        {
                            ModuleInfo moduleInfo = null;
                            compositeModule = (CompositeModule)ViewState["CompositeModule"];
                            bool confirmationFlag = true;
                            foreach (Component component in compositeModule.Components)
                            {
                                if (component.IsChecked)
                                {
                                    ArrayList list = installhelp.Step0CheckLogic(component.ZipFile, compositeModule.TempFolderPath);
                                    moduleInfo = (ModuleInfo)list[1];
                                    installhelp.fillModuleInfo(moduleInfo);
                                    installhelp.InstallPackage(moduleInfo);
                                    if (moduleInfo.ModuleID < 0)
                                    {
                                        confirmationFlag = false;
                                        InstallConfirmation(moduleInfo, ref activeIndex);
                                    }
                                }
                            }
                            if (confirmationFlag && moduleInfo != null)
                            {
                                InstallConfirmation(moduleInfo, ref activeIndex);
                            }
                        }
                        else if ((ModuleInfo)ViewState["ModuleInfo"] != null)
                        {
                            module = (ModuleInfo)ViewState["ModuleInfo"];
                            installhelp.InstallPackage(module);
                            InstallConfirmation(module, ref activeIndex);
                        }
                        activeIndex = 5;
                    }
                    else
                    {
                        lblAcceptMessage.Text = GetSageMessage("Extensions", "AcceptThePackageLicenseAgreementFirst");
                        e.Cancel    = true;
                        activeIndex = 4;
                    }
                    break;
                }
                wizInstall.ActiveStepIndex = activeIndex;
            }

            catch (Exception ex)
            {
                ProcessException(ex);
            }
        }
        else
        {
            lblLoadMessage.Text    = GetSageMessage("Extensions", "ModuleAlreadyInstall");
            lblLoadMessage.Visible = true;
            e.Cancel    = true;
            activeIndex = 0;

            string downloadpath = Server.MapPath(string.Format("~/Install/Temp/{0}", hdnFileName.Value));
            if (File.Exists(downloadpath))
            {
                File.Delete(downloadpath);
            }
        }
    }