Пример #1
0
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            bool isValid = true;
            //var wfStatus = WorkflowManager.GetJNPCurrentDocumentWorklfowStatus(CurrentJNPID);
            enumJNPWorkflowStatus wfStatus = base.CurrentJNPWS;

            if (wfStatus != enumJNPWorkflowStatus.Revise &&
                int.Parse(radComboActions.SelectedValue) == (int)enumActionType.SendToReviseToHiringManager &&
                !_confirmQuestionnaireReadiness)
            {
                radComboActions.Enabled = false;
                btnSubmit.Enabled       = false;
                rwConfirmBeforeRevise.VisibleOnPageLoad = true;
                return;
            }

            if (int.Parse(radComboActions.SelectedValue) != (int)enumActionType.DeleteCategoryRating)
            {
                if (ScreenValidationEvent != null)
                {
                    ScreenValidationEventArgs validationArgs = new ScreenValidationEventArgs();
                    ScreenValidationEvent(this, validationArgs);
                    isValid = validationArgs.IsValid;
                }
            }


            if (isValid)
            {
                enumActionType actiontypeid     = (enumActionType)(int.Parse(radComboActions.SelectedValue));
                WorkflowObject wo               = CurrentWorkflowObject;
                long           parentobjectid   = wo.ParentObjectID;
                string         url              = string.Empty;
                string         validationErrors = string.Empty;
                bool           blnhaserror      = false;
                HasErrors = false;
                long checkid = -1;
                WorkflowObjectSavedEventArgs we;

                try
                {
                    switch (actiontypeid)
                    {
                    case enumActionType.SendToReviewToHiringManager:
                    case enumActionType.SendToReviewToHumanResources:

                        validationErrors = WorkflowManager.GetStaffingObjetValidationErros(wo.StaffingObjectID, wo.StaffingObjectTypeID, ref blnhaserror, true);


                        if (blnhaserror)
                        {
                            HasErrors = true;
                            customValidator.ErrorMessage = validationErrors;
                            Page.Validate();
                        }
                        else
                        {
                            we = new WorkflowObjectSavedEventArgs();
                            if (WorkflowObjectSaved != null)
                            {
                                WorkflowObjectSaved(this, we);
                            }
                            if (!we.Cancel)
                            {
                                if (WorkflowManager.SetCurrentWorkflowStatus(wo, (int)enumJNPWorkflowStatus.Review, true) > 0)
                                {
                                    GoToLink(Page.ResolveUrl("~/Package/JNPTracker.aspx"));
                                }
                            }
                        }
                        break;

                    case enumActionType.SendToReviseToHiringManager:
                    case enumActionType.SendToReviseToHumanResources:
                        validationErrors = WorkflowManager.GetStaffingObjetValidationErros(wo.StaffingObjectID, wo.StaffingObjectTypeID, ref blnhaserror, true);

                        if (blnhaserror)
                        {
                            HasErrors = true;
                            customValidator.ErrorMessage = validationErrors;
                            Page.Validate();
                        }
                        else
                        {
                            we = new WorkflowObjectSavedEventArgs();
                            if (WorkflowObjectSaved != null)
                            {
                                WorkflowObjectSaved(this, we);
                            }
                            if (!we.Cancel)
                            {
                                if (WorkflowManager.SetCurrentWorkflowStatus(wo, (int)enumJNPWorkflowStatus.Revise, true) > 0)
                                {
                                    GoToLink(Page.ResolveUrl("~/Package/JNPTracker.aspx"));
                                }
                            }
                        }
                        break;

                    case enumActionType.SendForFinalReviewToHumanResources:
                        validationErrors = WorkflowManager.GetStaffingObjetValidationErros(wo.StaffingObjectID, wo.StaffingObjectTypeID, ref blnhaserror, true);

                        if (blnhaserror)
                        {
                            HasErrors = true;
                            customValidator.ErrorMessage = validationErrors;
                            Page.Validate();
                        }
                        else
                        {
                            we = new WorkflowObjectSavedEventArgs();
                            if (WorkflowObjectSaved != null)
                            {
                                WorkflowObjectSaved(this, we);
                            }
                            if (!we.Cancel)
                            {
                                if (WorkflowManager.SetJNPCurrentWorkflowStatus(CurrentJNPID, (int)enumJNPWorkflowStatus.FinalReview, enumWorkflowStatusType.JNP, CurrentUserID, true) > 0)
                                {
                                    GoToLink(Page.ResolveUrl("~/Package/JNPTracker.aspx"));
                                }
                            }
                        }
                        break;

                    case enumActionType.SaveAndUnlock:
                        we = new WorkflowObjectSavedEventArgs();
                        if (WorkflowObjectSaved != null)
                        {
                            WorkflowObjectSaved(this, we);
                        }
                        if (!we.Cancel)
                        {
                            if ((wo.ParentObjectID > 0) && (wo.ParentObjetTypeID == enumStaffingObjectType.JNP))
                            {
                                checkid = WorkflowManager.CheckStaffingObject(wo.ParentObjectID, wo.ParentObjetTypeID, enumActionType.CheckIn, wo.UserID);
                            }

                            if (checkid > 0)
                            {
                                GoToLink(Page.ResolveUrl("~/Package/JNPTracker.aspx"));
                            }
                        }
                        break;

                    case enumActionType.CreateCategoryRatingOptional:
                        if (CategoryRatingManager.CreateCategoryRatingFromJobAnalysis(CurrentJNPID, CurrentJAID, false, CurrentUserID) > 0)
                        {
                            ReloadCurrentJNP(base.CurrentJNPID);
                            GoToLink(Page.ResolveUrl("~/CR/CategoryRating.aspx"), base.CurrentNavMode);
                        }
                        break;

                    case enumActionType.RestoreCategoryRatingOptional:
                        if (CategoryRatingManager.RestoreCategoryRating(CurrentCRID, CurrentUserID) > 0)
                        {
                            ReloadCurrentJNP(base.CurrentJNPID);
                            GoToLink(Page.ResolveUrl("~/CR/CategoryRating.aspx"), base.CurrentNavMode);
                        }
                        break;

                    case enumActionType.CheckAndPublish:
                        validationErrors = WorkflowManager.GetStaffingObjetValidationErros(wo.StaffingObjectID, wo.StaffingObjectTypeID, ref blnhaserror, true);

                        if (blnhaserror)
                        {
                            HasErrors = true;
                            customValidator.ErrorMessage = validationErrors;
                            Page.Validate();
                        }
                        else
                        {
                            if (WorkflowManager.SetJNPCurrentWorkflowStatus(CurrentJNPID, (int)enumJNPWorkflowStatus.Published, enumWorkflowStatusType.JNP, CurrentUserID, true) > 0)
                            {
                                lblmsg.Text = "Document is published.";
                                BindActions();
                                base.GetActiveDocumentType(true);

                                //Below is no longer in scope for new requirement.
                                //base.GetJNPCurrentDocumentWorklfowStatus(true);

                                GoToLink(Page.ResolveUrl(string.Format("~/Package/Publish.aspx?JNPID={0}", CurrentJNPID)));
                            }
                        }
                        break;

                    default:
                        break;
                    }
                }
                catch (Exception ex)
                {
                    HandleException(ex);
                }
            }
        }