コード例 #1
0
        public override BaseState GotoNextState()
        {
            //Added by Fahim Nasir on 26-9-2017
            DAWorkflowCallLog daWCL = new DAWorkflowCallLog();

            daWCL.CURRENT_STATE = "LicenseIssuedState";
            daWCL.ContractId    = this.DataAccess.ContractId;

            try
            {
                daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                daWCL.PROCESS       += "LICENSE IS ALREADY ISSUED";
                daWCL.Log();
                LogMessages("LICENSE IS ALREADY ISSUED");
                return(this);
            }
            catch (Exception ex)
            {
                daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                daWCL.PROCESS        = ex.Message;
                daWCL.Log();
                Logger.getInstance().Error("WorkflowManager", "LicenseIssuedState::GotoNextState()", ex);
                LogMessages("ERROR: " + ex.Message);
                return(this);
            }
        }
コード例 #2
0
        public override BaseState GotoNextState()
        {
            //Added by Fahim Nasir on 26-9-2017
            DAWorkflowCallLog daWCL = new DAWorkflowCallLog();

            daWCL.CURRENT_STATE = "LecturesScheduledState";
            daWCL.ContractId    = this.DataAccess.ContractId;

            try
            {
                var hasAllLecturesScheduled = this.DataAccess.HasAllLecturesScheduled();
                var hasAttendedAllLectures  = this.DataAccess.HasAttendedAllLectures();

                daWCL.PROCESS += "hasAllLecturesScheduled: " + hasAllLecturesScheduled + ", ";
                daWCL.PROCESS += "hasAttendedAllLectures: " + hasAttendedAllLectures + ", ";

                if (hasAllLecturesScheduled == true && hasAttendedAllLectures == true)
                {
                    var hasRTAScheduledKnowledgeTest = this.DataAccess.HasRTAScheduledKnowledgeTest();
                    var IsPaymentB_Cleared           = this.DataAccess.IsPaymentB_Cleared();

                    daWCL.PROCESS += "hasRTAScheduledKnowledgeTest: " + hasRTAScheduledKnowledgeTest + ", ";
                    daWCL.PROCESS += "IsPaymentB_Cleared: " + IsPaymentB_Cleared + ", ";

                    if (hasRTAScheduledKnowledgeTest == true && IsPaymentB_Cleared == true)
                    {
                        daWCL.RETURNED_STATE = "KnowledgeTestScheduledState";
                        daWCL.Log();
                        return(new KnowledgeTestScheduledState(this.Manager));
                    }
                    else
                    {
                        daWCL.RETURNED_STATE = "LecturesCompletedState";
                        daWCL.Log();
                        return(new LecturesCompletedState(this.Manager));
                    }
                }
                else
                {
                    daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                    daWCL.PROCESS       += "ALL LECTURES ARE NOT SCHEDULED OR HAS NOT ATTENDED ALL LECTURES";
                    daWCL.Log();
                    LogMessages("ALL LECTURES ARE NOT SCHEDULED OR HAS NOT ATTENDED ALL LECTURES");
                    return(this);
                }
            }
            catch (Exception ex)
            {
                daWCL.CURRENT_STATE  = "LecturesScheduledState";
                daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                daWCL.PROCESS        = ex.Message;
                daWCL.Log();
                Logger.getInstance().Error("WorkflowManager", "LectureScheduledState::GotoNextState()", ex);
                LogMessages("ERROR: " + ex.Message);
                return(this);
            }
        }
コード例 #3
0
        public override BaseState GotoNextState()
        {
            //Added by Fahim Nasir on 26-9-2017
            DAWorkflowCallLog daWCL = new DAWorkflowCallLog();

            daWCL.CURRENT_STATE = "LicenseIssuancePendingState";
            daWCL.ContractId    = this.DataAccess.ContractId;

            try
            {
                var isLicenseIssued    = this.DataAccess.IsLiceneseIssued();
                var IsPaymentG_Cleared = this.DataAccess.IsPaymentG_Cleared();

                daWCL.PROCESS += "isLicenseIssued: " + isLicenseIssued + ", ";
                daWCL.PROCESS += "IsPaymentG_Cleared: " + IsPaymentG_Cleared + ", ";

                // Commented by MUHAMMADUZAIR\avanza on 19/09/2017 10:22:57
                // No need to check license issued or not only payment need to be checked
                //if (isLicenseIssued == true)
                if (IsPaymentG_Cleared == true)
                {
                    this.DataAccess.IssueLicense();
                    daWCL.RETURNED_STATE = "LicenseIssuedState";
                    daWCL.Log();
                    return(new LicenseIssuedState(this.Manager));
                }
                else
                {
                    daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                    daWCL.PROCESS       += "RELEVANT PAYMENT IS NOT CLEARED";
                    daWCL.Log();
                    LogMessages("RELEVANT PAYMENT IS NOT CLEARED");
                    return(this);
                }
            }
            catch (Exception ex)
            {
                daWCL.CURRENT_STATE  = "LicenseIssuancePendingState";
                daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                daWCL.PROCESS        = ex.Message;
                daWCL.Log();
                Logger.getInstance().Error("WorkflowManager", "LicenseIssuancePendingState::GotoNextState()", ex);
                LogMessages("ERROR: " + ex.Message);
                return(this);
            }
        }
コード例 #4
0
        public override BaseState GotoNextState()
        {
            //Added by Fahim Nasir on 26-9-2017
            DAWorkflowCallLog daWCL = new DAWorkflowCallLog();

            daWCL.CURRENT_STATE = "NewCustomerState";
            daWCL.ContractId    = this.DataAccess.ContractId;
            try
            {
                var isCustomerApproved = this.DataAccess.IsCustomerApproved();

                //var hasSomeScheduledLectures = this.DataAccess.HasSomeScheduledLectures();
                var IsPaymentA_Cleared           = this.DataAccess.IsPaymentA_Cleared();
                var IsCurrentStagePaymentCleared = this.DataAccess.IsCurrentStagePaymentCleared();
                //if (isCustomerApproved && !hasSomeScheduledLectures && IsPaymentA_Cleared)

                daWCL.PROCESS += "isCustomerApproved : " + isCustomerApproved + ", ";
                daWCL.PROCESS += "IsPaymentA_Cleared : " + IsPaymentA_Cleared + ", ";
                daWCL.PROCESS += "IsCurrentStagePaymentCleared : " + IsCurrentStagePaymentCleared + ", ";
                if (isCustomerApproved && IsPaymentA_Cleared && IsCurrentStagePaymentCleared)
                {
                    daWCL.RETURNED_STATE = "LecturesSchedulePendingState";
                    daWCL.Log();
                    return(new LecturesSchedulePendingState(this.Manager));
                }
                else
                {
                    daWCL.RETURNED_STATE = "NewCustomerState";
                    daWCL.PROCESS       += "CUSTOMER IS NOT APPROVED OR PAYMENT A NOT CLEARED OR CURRENT STAGE PAYMENTS NOT CLEARED";
                    daWCL.Log();
                    LogMessages("CUSTOMER IS NOT APPROVED OR PAYMENT A NOT CLEARED OR CURRENT STAGE PAYMENTS NOT CLEARED");
                    return(this);
                }
            }
            catch (Exception ex)
            {
                daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                daWCL.PROCESS        = ex.Message;
                daWCL.Log();
                Logger.getInstance().Error("WorkflowManager", "NewCustomerState::GotoNextState()", ex);
                LogMessages("ERROR: " + ex.Message);
                return(this);
            }
        }
コード例 #5
0
        public override BaseState GotoNextState()
        {
            //Added by Fahim Nasir on 26-9-2017
            DAWorkflowCallLog daWCL = new DAWorkflowCallLog();
            daWCL.CURRENT_STATE = "PracticalScheduledBState";
            daWCL.ContractId = this.DataAccess.ContractId;

            try
            {
                var hasAllClassesScheduled = this.DataAccess.HasAllClassesScheduled();
                var hasAttendedAllClasses = this.DataAccess.HasAttendedAllClasses();
                var IsPaymentE_Cleared = this.DataAccess.IsPaymentE_Cleared();

                daWCL.PROCESS += "hasAllClassesScheduled: " + hasAllClassesScheduled + ", ";
                daWCL.PROCESS += "hasAttendedAllClasses: " + hasAttendedAllClasses + ", ";
                daWCL.PROCESS += "IsPaymentE_Cleared: " + IsPaymentE_Cleared + ", ";

                if (hasAllClassesScheduled == true && hasAttendedAllClasses == true && IsPaymentE_Cleared == true)
                {
                    daWCL.RETURNED_STATE = "InternalAssessmentState";
                    daWCL.Log();
                    return new InternalAssessmentState(this.Manager);
                }
                else
                {
                    daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                    daWCL.PROCESS += "ALL CLASSES ARE NOT SCHEDULED OR CUSTOMER HAS NOT ATTENDED ALL CLASSES OR PAYMENT E NOT CLEARED";
                    daWCL.Log();
                    LogMessages("ALL CLASSES ARE NOT SCHEDULED OR CUSTOMER HAS NOT ATTENDED ALL CLASSES OR PAYMENT E NOT CLEARED");
                    return this;
                }

            }
            catch (Exception ex)
            {
                daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                daWCL.PROCESS = ex.Message;
                daWCL.Log();
                Logger.getInstance().Error("WorkflowManager", "PracticalScheduledBState::GotoNextState()", ex);
                LogMessages("ERROR: " + ex.Message);
                return this;
            }
        }
コード例 #6
0
        public override BaseState GotoNextState()
        {
            //Added by Fahim Nasir on 26-9-2017
            DAWorkflowCallLog daWCL = new DAWorkflowCallLog();

            daWCL.CURRENT_STATE = "LecturesSchedulePendingState";
            daWCL.ContractId    = this.DataAccess.ContractId;

            try
            {
                var hasSomeScheduledLectures = this.DataAccess.HasSomeScheduledLectures();

                daWCL.PROCESS += "hasSomeScheduledLectures: " + hasSomeScheduledLectures + ", ";

                if (hasSomeScheduledLectures == true)
                {
                    daWCL.RETURNED_STATE = "LecturesScheduledState";
                    daWCL.Log();
                    return(new LecturesScheduledState(this.Manager));
                }
                else
                {
                    daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                    daWCL.PROCESS       += "NO LECTURES SCHEDULED";
                    daWCL.Log();
                    LogMessages("NO LECTURES SCHEDULED");
                    return(this);
                }
            }
            catch (Exception ex)
            {
                daWCL.CURRENT_STATE  = "LecturesSchedulePendingState";
                daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                daWCL.PROCESS        = ex.Message;
                daWCL.Log();
                Logger.getInstance().Error("WorkflowManager", "LectureSchedulePendingState::GotoNextState()", ex);
                LogMessages("ERROR: " + ex.Message);
                return(this);
            }
        }
コード例 #7
0
        public override BaseState GotoNextState()
        {
            //Added by Fahim Nasir on 26-9-2017
            DAWorkflowCallLog daWCL = new DAWorkflowCallLog();

            daWCL.CURRENT_STATE = "PracticalCompletedState";
            daWCL.ContractId    = this.DataAccess.ContractId;

            try
            {
                var hasRTAScheduledParkingTest = this.DataAccess.HasRTAScheduledParkingTest();
                var hasRTAParkingTestResult    = this.DataAccess.HasRTAParkingTestResult();
                var IsPaymentD_Cleared         = this.DataAccess.IsPaymentD_Cleared();

                daWCL.PROCESS += "hasRTAScheduledParkingTest: " + hasRTAScheduledParkingTest + ", ";
                daWCL.PROCESS += "hasRTAParkingTestResult: " + hasRTAParkingTestResult + ", ";
                daWCL.PROCESS += "IsPaymentD_Cleared: " + IsPaymentD_Cleared + ", ";

                if (hasRTAParkingTestResult == true && IsPaymentD_Cleared == true)
                {
                    var hasPassedRTAParkingTest = this.DataAccess.HasPassedRTAParkingTest();
                    var hasETDIScheduledInternalAssessmentTest = this.DataAccess.HasETDIScheduledInternalAssessmentTest();

                    daWCL.PROCESS += "hasPassedRTAParkingTest: " + hasPassedRTAParkingTest + ", ";
                    daWCL.PROCESS += "hasETDIScheduledInternalAssessmentTest: " + hasETDIScheduledInternalAssessmentTest + ", ";

                    var isAbsentInParkingTest = this.DataAccess.IsAbsentInParkingTest();

                    //AVANZA\muhammad.uzair 8/9/17
                    if (hasPassedRTAParkingTest == false)
                    {
                        // Added by AVANZA\muhammad.uzair on 28/09/2017 10:30:08
                        //updating the is_updated bit of exam
                        this.DataAccess.UpdateResultBitForCustomerExam((int)Enumaration.ExamIdMap.ParkingTest);

                        // Added by MUHAMMADUZAIR\Administrator as Onsite Support on 03/12/2017 18:09:53
                        this.DataAccess.GeneratePaymentForParkingTestFailure();
                        // Generate Payment only in case of Failure. May be this condition change in future.

                        // Added by Muhammad Uzair on 02/02/2018 16:54:53
                        // This case might be handy in future for handling system when no classes are defined in case of parking test failure
                        //if (this.DataAccess.IsAdditionalClassesDefinedForParkingTestFailure())
                        //{
                        if (!isAbsentInParkingTest)
                        {
                            // Commented by MUHAMMADUZAIR\Administrator as Onsite Support on 03/12/2017 18:09:47
                            //this.DataAccess.GeneratePaymentForParkingTestFailure();
                            daWCL.RETURNED_STATE = "PracticalScheduledState";
                            daWCL.Log();
                            return(new PracticalScheduledState(this.Manager));
                        }
                        else
                        {
                            daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                            daWCL.PROCESS       += "Customer is Absent in Parking Test.";
                            daWCL.Log();
                            LogMessages("Customer is Absent in Parking Test.");
                            return(this);
                        }
                        //}
                        //else
                        //{
                        //    daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                        //    daWCL.PROCESS += "No additional classes defined in system for road test failure";
                        //    daWCL.Log();
                        //    LogMessages("No additional classes defined in system for road test failure");
                        //    return this;
                        //}
                    }

                    if (hasPassedRTAParkingTest == true && hasETDIScheduledInternalAssessmentTest == true)
                    {
                        daWCL.RETURNED_STATE = "InternalAssessmentState";
                        daWCL.Log();
                        return(new InternalAssessmentState(this.Manager));
                    }
                    else
                    {
                        if (hasRTAScheduledParkingTest == true)
                        {
                            daWCL.RETURNED_STATE = "ParkingTestScheduledState";
                            daWCL.Log();
                            return(new ParkingTestScheduledState(this.Manager));
                        }
                        else
                        {
                            daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                            daWCL.PROCESS       += "CUSTOMER HAS NO RTA SCHEDULED PARKING TEST";
                            daWCL.Log();
                            LogMessages("CUSTOMER HAS NO RTA SCHEDULED PARKING TEST");
                            return(this);
                        }
                    }
                }
                else
                {
                    if (hasRTAScheduledParkingTest == true && IsPaymentD_Cleared == true)
                    {
                        daWCL.RETURNED_STATE = "ParkingTestScheduledState";
                        daWCL.Log();
                        return(new ParkingTestScheduledState(this.Manager));
                    }
                    else
                    {
                        daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                        daWCL.PROCESS       += "CUSTOMER HAS NO RTA SCHEDULED PARKING TEST OR PAYMENT D NOT CLEARED";
                        daWCL.Log();
                        LogMessages("CUSTOMER HAS NO RTA SCHEDULED PARKING TEST OR PAYMENT D NOT CLEARED");
                        return(this);
                    }
                }
            }
            catch (Exception ex)
            {
                daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                daWCL.PROCESS        = ex.Message;
                daWCL.Log();
                Logger.getInstance().Error("WorkflowManager", "PracticalCompletedState::GotoNextState()", ex);
                LogMessages("ERROR: " + ex.Message);
                return(this);
            }
        }
コード例 #8
0
        public override BaseState GotoNextState()
        {
            //Added by Fahim Nasir on 26-9-2017
            DAWorkflowCallLog daWCL = new DAWorkflowCallLog();

            daWCL.CURRENT_STATE = "InternalAssessmentState";
            daWCL.ContractId    = this.DataAccess.ContractId;

            try
            {
                DASystemConfiguration sysConfig     = new DASystemConfiguration();
                var hasInternalAssessmentTestResult = this.DataAccess.HasInternalAssessmentTestResult();
                var IsPaymentF_Cleared = this.DataAccess.IsPaymentF_Cleared();

                daWCL.PROCESS += "hasInternalAssessmentTestResult: " + hasInternalAssessmentTestResult + ", ";
                daWCL.PROCESS += "IsPaymentF_Cleared: " + IsPaymentF_Cleared + ", ";

                // Commented by AVANZA\muhammad.uzair on 25/09/2017 14:46:26
                //Payment F not needed to be checked here
                //if (hasInternalAssessmentTestResult == true && IsPaymentF_Cleared == true)
                if (hasInternalAssessmentTestResult == true)
                {
                    var hasPassedInternalAssessmentTest = this.DataAccess.HasPassedInternalAssessmentTest();
                    daWCL.PROCESS += "hasPassedInternalAssessmentTest: " + hasPassedInternalAssessmentTest + ", ";

                    if (hasPassedInternalAssessmentTest == 1) // 1 means pass
                    {
                        var hasRTAScheduledRoadTest      = this.DataAccess.HasRTAScheduledRoadTest();
                        var IsCurrentStagePaymentCleared = this.DataAccess.IsCurrentStagePaymentCleared();

                        daWCL.PROCESS += "hasRTAScheduledRoadTest: " + hasRTAScheduledRoadTest + ", ";
                        daWCL.PROCESS += "IsCurrentStagePaymentCleared: " + IsCurrentStagePaymentCleared + ", ";

                        // Added by MUHAMMADUZAIR\avanza on 22/09/2017 11:06:42
                        // Modified by AVANZA\muhammad.uzair on 25/09/2017 15:26:25
                        //Added check for payment
                        DataTable ds = sysConfig.GetSystemConfigurationByKey("IS_MANDATORY_ADDITIONAL_CLASSES_BEFORE_ROAD_TEST");

                        string isMandatoryAdditionalClasses = string.Empty;
                        if (ds != null && ds.Rows.Count > 0 && ds.Columns.Contains("VALUE"))
                        {
                            isMandatoryAdditionalClasses = ds.Rows[0]["VALUE"].ToString();
                        }
                        else
                        {
                            daWCL.PROCESS += "SYSTEM CONFIGURATION TABLE HAS NO VALUE FOR IS_MANDATORY_ADDITIONAL_CLASSES_BEFORE_ROAD_TEST";
                        }

                        daWCL.PROCESS += "isMandatoryAdditionalClasses: " + isMandatoryAdditionalClasses + ", ";

                        if (IsPaymentF_Cleared == true)
                        {
                            if (hasRTAScheduledRoadTest == true && IsCurrentStagePaymentCleared == true)
                            {
                                if (isMandatoryAdditionalClasses != "true")
                                {
                                    //if highway or night or additional classes count =0 means all classes are scheduled
                                    // in case we might be required to check attendance of these classes in future as well
                                    daWCL.RETURNED_STATE = "RoadTestScheduledState";
                                    daWCL.Log();
                                    return(new RoadTestScheduledState(this.Manager));
                                }
                                else
                                {
                                    var hasTakenAllOtherClasses = this.DataAccess.HasTakenAllOtherClasses();
                                    daWCL.PROCESS += "hasTakenAllOtherClasses: " + hasTakenAllOtherClasses + ", ";

                                    if (hasTakenAllOtherClasses == true)
                                    {
                                        daWCL.RETURNED_STATE = "RoadTestScheduledState";
                                        daWCL.Log();
                                        return(new RoadTestScheduledState(this.Manager));
                                    }
                                    else
                                    {
                                        daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                                        daWCL.PROCESS       += "ALL OTHER CLASSES ARE NOT SCHEDULED";
                                        daWCL.Log();
                                        LogMessages("ALL OTHER CLASSES ARE NOT SCHEDULED");
                                        return(this);
                                    }
                                }
                            }
                            else
                            {
                                daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                                daWCL.PROCESS       += "RTA SCHEDULED ROAD TEST WAS NOT PASSED OR CURRENT STAGE PAYMENT NOT CLEARED";
                                daWCL.Log();
                                LogMessages("RTA SCHEDULED ROAD TEST WAS NOT PASSED OR CURRENT STAGE PAYMENT NOT CLEARED");
                                return(this);
                            }
                        }
                        else
                        {
                            daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                            daWCL.PROCESS       += "FINAL ROAD TEST PAYMENT NOT CLEARED";
                            daWCL.Log();
                            LogMessages("FINAL ROAD TEST PAYMENT NOT CLEARED");
                            return(this);
                        }
                    }
                    else if (hasPassedInternalAssessmentTest == 0) // 0 means fail
                    {
                        //AVANZA\muhammad.uzair 8/9/17
                        this.DataAccess.GeneratePaymentForInternalAssessmentTestFailure();
                        daWCL.RETURNED_STATE = "AdditionalClassesPendingState";
                        daWCL.Log();

                        // Added by AVANZA\muhammad.uzair on 28/09/2017 10:32:51
                        //updating the is_updated bit of exam
                        this.DataAccess.UpdateResultBitForCustomerExam((int)Enumaration.ExamIdMap.InternalAssessment);


                        // added by MUHAMMAD.AWAIS 8/8/2017
                        return(new AdditionalClassesPendingState(this.Manager));
                    }
                    else // for absent and other cases value would be 2
                    {
                        // Added by MUHAMMADUZAIR\Administrator as Onsite Support on 03/12/2017 18:07:29
                        this.DataAccess.GeneratePaymentForInternalAssessmentTestFailure();

                        daWCL.RETURNED_STATE = "PracticalScheduledBState";
                        daWCL.PROCESS       += "CUSTOMER IS ABSENT IN INTERNAL ASSESSMENT";
                        daWCL.Log();
                        LogMessages("CUSTOMER IS ABSENT IN INTERNAL ASSESSMENT");
                        // internal test if absent then should be scheduled form here

                        // Added by AVANZA\muhammad.uzair on 28/09/2017 10:32:51
                        //updating the is_updated bit of exam
                        this.DataAccess.UpdateResultBitForCustomerExam((int)Enumaration.ExamIdMap.InternalAssessment);

                        return(this);
                    }
                }
                else
                {
                    daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                    daWCL.PROCESS       += "INTERNAL ASSESSMENT TEST RESULT DOES NOT EXIST OR PAYMENT F NOT CLEARED";
                    daWCL.Log();
                    LogMessages("INTERNAL ASSESSMENT TEST RESULT DOES NOT EXIST OR PAYMENT F NOT CLEARED");
                    return(this);
                }
            }
            catch (Exception ex)
            {
                daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                daWCL.PROCESS        = ex.Message;
                daWCL.Log();
                Logger.getInstance().Error("WorkflowManager", "InternalAssessmentState::GotoNextState()", ex);
                LogMessages("ERROR: " + ex.Message);
                return(this);
            }
        }
コード例 #9
0
        public override BaseState GotoNextState()
        {
            //Added by Fahim Nasir on 26-9-2017
            DAWorkflowCallLog daWCL = new DAWorkflowCallLog();

            daWCL.CURRENT_STATE = "KnowledgeTestScheduledState";
            daWCL.ContractId    = this.DataAccess.ContractId;

            try
            {
                var hasRTAKnowledgeTestResult = this.DataAccess.HasRTAKnowledgeTestResult();
                var IsPaymentC_Cleared        = this.DataAccess.IsPaymentC_Cleared();
                var isAbsentInKnowledgeTest   = this.DataAccess.IsAbsentInKnowledgeTest();

                daWCL.PROCESS += "hasRTAKnowledgeTestResult: " + hasRTAKnowledgeTestResult + ", ";
                daWCL.PROCESS += "IsPaymentC_Cleared: " + IsPaymentC_Cleared + ", ";

                if (hasRTAKnowledgeTestResult == true && IsPaymentC_Cleared == true)
                {
                    var hasPassedRTAKnowledgeTest    = this.DataAccess.HasPassedRTAKnowledgeTest();
                    var IsCurrentStagePaymentCleared = this.DataAccess.IsCurrentStagePaymentCleared();

                    daWCL.PROCESS += "hasPassedRTAKnowledgeTest: " + hasPassedRTAKnowledgeTest + ", ";
                    daWCL.PROCESS += "IsCurrentStagePaymentCleared: " + IsCurrentStagePaymentCleared + ", ";

                    if (hasPassedRTAKnowledgeTest == true)
                    {
                        if (IsCurrentStagePaymentCleared == true)
                        {
                            //Added by Fahim Nasir 22/01/2018 11:57:51
                            var IsExemptedCustomer = this.DataAccess.IsCustomerExempted();
                            daWCL.PROCESS += "IsExemptedCustomer" + IsExemptedCustomer + ", ";
                            //========================================

                            //Modified by Fahim Nasir 22/01/2018 12:00:36
                            if (IsExemptedCustomer)
                            {
                                daWCL.RETURNED_STATE = "RoadTestScheduledState";
                                daWCL.Log();
                                return(new RoadTestScheduledState(this.Manager));
                            }
                            else
                            {
                                daWCL.RETURNED_STATE = "PracticalSchedulePendingState";
                                daWCL.Log();
                                return(new PracticalSchedulePendingState(this.Manager));
                            }
                            //===============================================
                        }
                        else
                        {
                            daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                            daWCL.PROCESS       += "KNOWLEDGE TEST STAGE PAYMENT IS NOT CLEARED";
                            daWCL.Log();
                            LogMessages("KNOWLEDGE TEST STAGE PAYMENT IS NOT CLEARED");
                            return(this);
                        }
                    }
                    else
                    {
                        // Commented and Modified Below by MUHAMMADUZAIR\Administrator as Onsite Support on 03/12/2017 18:03:47
                        // Payment only generated in case of test failure.
                        //if (!isAbsentInKnowledgeTest)
                        //{
                        //    this.DataAccess.GeneratePaymentForKnowledgeTestFailure();
                        //}

                        this.DataAccess.GeneratePaymentForKnowledgeTestFailure();
                        daWCL.RETURNED_STATE = "LecturesCompletedState";
                        daWCL.Log();

                        // Added by AVANZA\muhammad.uzair on 28/09/2017 10:32:51
                        //updating the is_updated bit of exam
                        this.DataAccess.UpdateResultBitForCustomerExam((int)Enumaration.ExamIdMap.KnowledgeTest);

                        return(new LecturesCompletedState(this.Manager));
                    }
                }
                else
                {
                    daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                    daWCL.PROCESS       += "RTA KNOWLEDGE TEST RESULT DOES NOT EXIST OR PAYMENT C NOT CLEARED";
                    daWCL.Log();
                    LogMessages("RTA KNOWLEDGE TEST RESULT DOES NOT EXIST OR PAYMENT C NOT CLEARED");
                    return(this);
                }
            }
            catch (Exception ex)
            {
                daWCL.CURRENT_STATE  = "KnowledgeTestScheduled";
                daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                daWCL.PROCESS        = ex.Message;
                daWCL.Log();
                Logger.getInstance().Error("WorkflowManager", "KnowledgeTestScheduledState::GotoNextState()", ex);
                LogMessages("ERROR: " + ex.Message);
                return(this);
            }
        }
コード例 #10
0
        public override BaseState GotoNextState()
        {
            //Added by Fahim Nasir on 26-9-2017
            DAWorkflowCallLog daWCL = new DAWorkflowCallLog();

            daWCL.CURRENT_STATE = "RoadTestScheduledState";
            daWCL.ContractId    = this.DataAccess.ContractId;

            try
            {
                var hasRTARoadTestResult = this.DataAccess.HasRTARoadTestResult();
                var IsPaymentG_Cleared   = this.DataAccess.IsPaymentG_Cleared();

                daWCL.PROCESS += "hasRTARoadTestResult: " + hasRTARoadTestResult + ", ";
                daWCL.PROCESS += "IsPaymentG_Cleared: " + IsPaymentG_Cleared + ", ";

                // Modified by AVANZA\muhammad.uzair on 25/09/2017 18:12:08
                // Commented by AVANZA\muhammad.uzair on 25/09/2017 18:12:24
                //Payment g not needed to be checked here
                //if (hasRTARoadTestResult == true && IsPaymentG_Cleared == true)
                if (hasRTARoadTestResult == true)
                {
                    // Added by AVANZA\muhammad.uzair on 28/09/2017 10:32:51
                    //updating the is_updated bit of exam
                    this.DataAccess.UpdateResultBitForCustomerExam((int)Enumaration.ExamIdMap.RoadTest);

                    var hasPassedRTARoadTest = this.DataAccess.HasPassedRTARoadTest();
                    daWCL.PROCESS += "hasPassedRTARoadTest: " + hasPassedRTARoadTest + ", ";

                    var isAbsentInRTARoadTest = this.DataAccess.IsAbsentInRoadTest();
                    daWCL.PROCESS += "isAbsentInRTARoadTest: " + isAbsentInRTARoadTest + ", ";

                    if (hasPassedRTARoadTest == true)
                    {
                        // Added by MUHAMMADUZAIR\avanza on 19/09/2017 10:07:00
                        if (IsPaymentG_Cleared == true)
                        {
                            this.DataAccess.IssueLicense();
                            daWCL.RETURNED_STATE = "LicenseIssuedState";
                            daWCL.Log();
                            return(new LicenseIssuedState(this.Manager));
                        }
                        else
                        {
                            daWCL.RETURNED_STATE = "LicenseIssuancePendingState";
                            daWCL.Log();
                            return(new LicenseIssuancePendingState(this.Manager));
                        }
                    }
                    else
                    {
                        // Added by MUHAMMADUZAIR\Administrator as Onsite Support on 03/12/2017 18:07:00
                        this.DataAccess.GeneratePaymentForRoadTestTestFailure();

                        // Added by Muhammad Uzair on 02/02/2018 16:43:17
                        // Added check for additional classes defined if not defined then remain at this state
                        // THis case might be handy in future
                        //if (this.DataAccess.IsAdditionalClassesDefinedForRoadTestFailure())
                        //{
                        //AVANZA\muhammad.uzair 8/9/17
                        if (!isAbsentInRTARoadTest)
                        {
                            // Commented by MUHAMMADUZAIR\Administrator as Onsite Support on 03/12/2017 18:06:47
                            //this.DataAccess.GeneratePaymentForRoadTestTestFailure();
                            daWCL.RETURNED_STATE = "AdditionalClassesPendingState";
                            daWCL.Log();
                            return(new AdditionalClassesPendingState(this.Manager));
                        }
                        else
                        {
                            daWCL.RETURNED_STATE = "InternalAssessmentState";
                            daWCL.PROCESS       += "Customer is Absent in Road Test. Need to Reschedule it again.";
                            daWCL.Log();
                            LogMessages("Customer is Absent in Road Test. Need to Reschedule it again.");
                            return(new InternalAssessmentState(this.Manager));
                        }
                        //}
                        //else
                        //{
                        //    daWCL.RETURNED_STATE = "RoadTestScheduledState";
                        //    daWCL.PROCESS += "No additional classes defined for the road test failure. Schedule the road test again.";
                        //    daWCL.Log();
                        //    LogMessages("No additional classes defined for the road test failure. Schedule the road test again.");
                        //    return this;
                        //}
                    }
                }
                else
                {
                    daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                    daWCL.PROCESS       += "RTA ROAD TEST RESULT DOES NOT EXIST OR PAYMENT G IS NOT CLEARED";
                    daWCL.Log();
                    LogMessages("RTA ROAD TEST RESULT DOES NOT EXIST OR PAYMENT G IS NOT CLEARED");
                    return(this);
                }
            }
            catch (Exception ex)
            {
                daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                daWCL.PROCESS        = ex.Message;
                daWCL.Log();
                Logger.getInstance().Error("WorkflowManager", "RoadTestScheduledState::GotoNextState()", ex);
                LogMessages("ERROR: " + ex.Message);
                return(this);
            }
        }
コード例 #11
0
        public override BaseState GotoNextState()
        {
            //Added by Fahim Nasir on 26-9-2017
            DAWorkflowCallLog daWCL = new DAWorkflowCallLog();

            daWCL.CURRENT_STATE = "ParkingTestScheduledState";
            daWCL.ContractId    = this.DataAccess.ContractId;

            try
            {
                var hasRTAParkingTestResult = this.DataAccess.HasRTAParkingTestResult();
                var IsPaymentE_Cleared      = this.DataAccess.IsPaymentE_Cleared();

                daWCL.PROCESS += "hasRTAParkingTestResult: " + hasRTAParkingTestResult + ", ";
                daWCL.PROCESS += "IsPaymentE_Cleared: " + IsPaymentE_Cleared + ", ";

                //if (hasRTAParkingTestResult == true && IsPaymentE_Cleared == true)
                if (hasRTAParkingTestResult == true)
                {
                    var hasPassedRTAParkingTest = this.DataAccess.HasPassedRTAParkingTest();
                    var hasETDIScheduledInternalAssessmentTest = this.DataAccess.HasETDIScheduledInternalAssessmentTest();
                    var IsCurrentStagePaymentCleared           = this.DataAccess.IsCurrentStagePaymentCleared();

                    var isAbsentinParkingTest = this.DataAccess.IsAbsentInParkingTest();

                    daWCL.PROCESS += "hasPassedRTAParkingTest: " + hasPassedRTAParkingTest + ", ";
                    daWCL.PROCESS += "hasETDIScheduledInternalAssessmentTest: " + hasETDIScheduledInternalAssessmentTest + ", ";
                    daWCL.PROCESS += "IsCurrentStagePaymentCleared: " + IsCurrentStagePaymentCleared + ", ";
                    daWCL.PROCESS += "isAbsentinParkingTest: " + isAbsentinParkingTest + ", ";

                    //AVANZA\muhammad.uzair 8/9/17
                    // Modified by AVANZA\muhammad.uzair on 25/09/2017 13:58:44
                    // Copied the else from below
                    if (hasPassedRTAParkingTest == false)
                    {
                        //abseent
                        // Generate Payment only in case of Failure. May be this condition change in future.
                        // Commented and Modified Below by MUHAMMADUZAIR\Administrator as Onsite Support on 03/12/2017 18:40:52
                        //if (!isAbsentinParkingTest) this.DataAccess.GeneratePaymentForParkingTestFailure();
                        this.DataAccess.GeneratePaymentForParkingTestFailure();
                        daWCL.PROCESS += "isAbsentinParkingTest: " + isAbsentinParkingTest + ", ";

                        //Modified by Fahim Nasir 27/09/2017 14:01:50 - advised by Uziar
                        var hasAttendedAllClasses = this.DataAccess.HasAttendedAllClasses();
                        daWCL.PROCESS += "hasAttendedAllClasses: " + hasAttendedAllClasses + ", ";

                        // Added by AVANZA\muhammad.uzair on 28/09/2017 10:29:23
                        //Updating the is_updated bit of exam result
                        this.DataAccess.UpdateResultBitForCustomerExam((int)Enumaration.ExamIdMap.ParkingTest);


                        // Added by Muhammad Uzair on 02/02/2018 16:47:20
                        // Added check for classes not defined for parking test failure
                        // THis case might be handy in future
                        //if (this.DataAccess.IsAdditionalClassesDefinedForParkingTestFailure())
                        //{
                        if (hasAttendedAllClasses == true)
                        {
                            daWCL.RETURNED_STATE = "PracticalCompletedState";
                            daWCL.Log();
                            return(new PracticalCompletedState(this.Manager));
                        }
                        else
                        {
                            daWCL.RETURNED_STATE = "PracticalScheduledState";
                            daWCL.Log();
                            return(new PracticalScheduledState(this.Manager));
                        }
                        //}
                        //else
                        //{
                        //    // If no classes defined in the system for failure then remain at this state
                        //    daWCL.RETURNED_STATE = "ParkingTestScheduled";
                        //    daWCL.Log();
                        //    return this;
                        //}
                    }

                    if (hasPassedRTAParkingTest == true && hasETDIScheduledInternalAssessmentTest == true && IsCurrentStagePaymentCleared == true)
                    {
                        daWCL.RETURNED_STATE = "InternalAssessmentState";
                        daWCL.Log();
                        return(new InternalAssessmentState(this.Manager));
                    }
                    else
                    {
                        //var hasAttendedAllClasses = this.DataAccess.HasAttendedAllClasses();

                        //if (hasAttendedAllClasses == true)
                        //{
                        //    //return new PracticalSchedulePendingState(this.Manager);
                        //    return new PracticalCompletedState(this.Manager);
                        //}
                        //else
                        //{
                        //    // AVANZA\jawwad.ahmed - 27/07/2017 19:34:49
                        //    // This condition will never occur! But it was part of Flow diagram.
                        //    return new PracticalScheduledState(this.Manager);
                        //}
                        return(this);
                    }
                }
                else
                {
                    daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                    daWCL.PROCESS       += "CUSTOMER HAS NO RTA PARKING TEST RESULT OR PAYMENT E NOT CLEARED";
                    daWCL.Log();
                    LogMessages("CUSTOMER HAS NO RTA PARKING TEST RESULT OR PAYMENT E NOT CLEARED");
                    return(this);
                }
            }
            catch (Exception ex)
            {
                daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                daWCL.PROCESS        = ex.Message;
                daWCL.Log();
                Logger.getInstance().Error("WorkflowManager", "ParkingTestScheduledState::GotoNextState()", ex);
                LogMessages("ERROR: " + ex.Message);
                return(this);
            }
        }
コード例 #12
0
        public override BaseState GotoNextState()
        {
            //Added by Fahim Nasir on 26-9-2017
            DAWorkflowCallLog daWCL = new DAWorkflowCallLog();

            daWCL.CURRENT_STATE = "AdditionalClassesCompletedState";
            daWCL.ContractId    = this.DataAccess.ContractId;
            try
            {
                var hasRTAScheduledRoadTest = this.DataAccess.HasRTAScheduledRoadTest();
                var HasETDIScheduledInternalAssessmentTest = this.DataAccess.HasETDIScheduledInternalAssessmentTest();
                int HasPassesdETDIAssessment = this.DataAccess.HasPassedInternalAssessmentTest();
                var isPaymentE_Cleared       = this.DataAccess.IsPaymentE_Cleared();
                var isPaymentF_Cleared       = this.DataAccess.IsPaymentF_Cleared();

                daWCL.PROCESS += "hasRTAScheduledRoadTest: " + hasRTAScheduledRoadTest + ", ";
                daWCL.PROCESS += "HasETDIScheduledInternalAssessmentTest: " + HasETDIScheduledInternalAssessmentTest + ", ";
                daWCL.PROCESS += "isPaymentE_Cleared: " + isPaymentE_Cleared + ", ";
                daWCL.PROCESS += "isPaymentF_Cleared: " + isPaymentF_Cleared + ", ";

                // Commented by AVANZA\muhammad.uzair on 29/09/2017 10:45:38
                //if (HasETDIScheduledInternalAssessmentTest == true && isPaymentE_Cleared == true)
                if (HasPassesdETDIAssessment == 0) // 0 means fail
                {
                    if (isPaymentE_Cleared == true)
                    {
                        daWCL.RETURNED_STATE = "InternalAssessmentState";
                        daWCL.Log();
                        return(new InternalAssessmentState(this.Manager));
                    }
                    else
                    {
                        daWCL.PROCESS       += "Internal Assessment Payment Is Not Cleared";
                        daWCL.RETURNED_STATE = "AdditionalCompletedState";
                        daWCL.Log();
                        return(this);
                    }
                }
                else if (hasRTAScheduledRoadTest == true && isPaymentF_Cleared == true)
                {
                    daWCL.RETURNED_STATE = "RoadTestScheduledState";
                    daWCL.Log();
                    return(new RoadTestScheduledState(this.Manager));
                }
                else
                {
                    daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                    daWCL.PROCESS       += "INTERNAL ASSESSMENT / ROAD TEST IS NOT SCHEDULED OR RELATIVE PAYMENTS ARE NOT CLEARED.";
                    daWCL.Log();
                    LogMessages("INTERNAL ASSESSMENT / ROAD TEST IS NOT SCHEDULED OR RELATIVE PAYMENTS ARE NOT CLEARED.");
                    return(this);
                }
            }
            catch (Exception ex)
            {
                daWCL.PROCESS        = ex.Message;
                daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                daWCL.Log();
                Logger.getInstance().Error("WorkflowManager", "AdditionalClassesCompletedState::GotoNextState()", ex);
                LogMessages("ERROR: " + ex.Message);
                return(this);
            }
        }
コード例 #13
0
        public override BaseState GotoNextState()
        {
            //Added by Fahim Nasir on 26-9-2017
            DAWorkflowCallLog daWCL = new DAWorkflowCallLog();

            daWCL.CURRENT_STATE = "PracticalScheduledState";
            daWCL.ContractId    = this.DataAccess.ContractId;

            try
            {
                var hasAllClassesScheduled  = this.DataAccess.HasAllClassesScheduled();
                var hasAttendedAllClasses   = this.DataAccess.HasAttendedAllClasses();
                var hasRTAParkingTestResult = this.DataAccess.HasRTAParkingTestResult();

                daWCL.PROCESS += "hasAllClassesScheduled: " + hasAllClassesScheduled + ", ";
                daWCL.PROCESS += "hasAttendedAllClasses: " + hasAttendedAllClasses + ", ";
                daWCL.PROCESS += "hasRTAParkingTestResult: " + hasRTAParkingTestResult + ", ";

                if (hasRTAParkingTestResult == true)
                {
                    var hasPassedRTAParkingTest      = this.DataAccess.HasPassedRTAParkingTest();
                    var IsCurrentStagePaymentCleared = this.DataAccess.IsCurrentStagePaymentCleared();
                    var IsAbsentInParkingTest        = this.DataAccess.IsAbsentInParkingTest();
                    daWCL.PROCESS += "hasPassedRTAParkingTest: " + hasPassedRTAParkingTest + ", ";
                    daWCL.PROCESS += "IsCurrentStagePaymentCleared: " + IsCurrentStagePaymentCleared + ", ";

                    //AVANZA\muhammad.uzair 8/9/17
                    if (hasPassedRTAParkingTest == false)
                    {
                        // Added by AVANZA\muhammad.uzair on 28/09/2017 10:30:08
                        //updating the is_updated bit of exam
                        this.DataAccess.UpdateResultBitForCustomerExam((int)Enumaration.ExamIdMap.ParkingTest);
                        // Added by MUHAMMADUZAIR\Administrator as Onsite Support on 03/12/2017 18:09:10
                        this.DataAccess.GeneratePaymentForParkingTestFailure();


                        // Added by Muhammad Uzair on 02/02/2018 16:58:13
                        // This case can be added in future to check whether classes are defined in case of parking test failure
                        //if (this.DataAccess.IsAdditionalClassesDefinedForParkingTestFailure())
                        //{
                        if (!IsAbsentInParkingTest)
                        {
                            // Commented by MUHAMMADUZAIR\Administrator as Onsite Support on 03/12/2017 18:09:05
                            //this.DataAccess.GeneratePaymentForParkingTestFailure();
                            daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                            daWCL.Log();
                            return(this);
                        }
                        else
                        {
                            daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                            daWCL.PROCESS       += "Customer is Absent in Parking Test.";
                            daWCL.Log();
                            LogMessages("Customer is Absent in Parking Test.");
                            return(this);
                        }
                        // }
                        // else
                        // {
                        //    daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                        //    daWCL.PROCESS += "No additional classes defined in system for parking test failure";
                        //    daWCL.Log();
                        //    LogMessages("No additional classes defined in system for parking test failure");
                        //    return this;
                        //}
                    }

                    //if (hasPassedRTAParkingTest == true && hasAllClassesScheduled == false && IsCurrentStagePaymentCleared == true)
                    else if (hasPassedRTAParkingTest == true && hasAttendedAllClasses == false && IsCurrentStagePaymentCleared == true)
                    {
                        daWCL.RETURNED_STATE = "PracticalScheduledBState";
                        daWCL.Log();
                        return(new PracticalScheduledBState(this.Manager));
                    }
                }

                if (hasAllClassesScheduled == true && hasAttendedAllClasses == true)
                {
                    // Added by AVANZA\muhammad.uzair on 29/09/2017 12:07:23
                    var hasRTAParkingTestScheduled = this.DataAccess.HasRTAScheduledParkingTest();
                    daWCL.PROCESS += "hasRTAParkingTestScheduled: " + hasRTAParkingTestScheduled + ", ";

                    if (hasRTAParkingTestScheduled == true)
                    {
                        daWCL.RETURNED_STATE = "ParkingTestScheduled";
                        daWCL.Log();
                        return(new ParkingTestScheduledState(this.Manager));
                    }
                    else
                    {
                        daWCL.RETURNED_STATE = "PracticalCompletedState";
                        daWCL.Log();
                        return(new PracticalCompletedState(this.Manager));
                    }
                }
                else
                {
                    daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                    daWCL.PROCESS       += "ALL CLASSES ARE NOT SCHEDULED OR CUSTOMER HAS NOT ATTENDED ALL CLASSES";
                    daWCL.Log();
                    LogMessages("ALL CLASSES ARE NOT SCHEDULED OR CUSTOMER HAS NOT ATTENDED ALL CLASSES");
                    return(this);
                }
            }
            catch (Exception ex)
            {
                daWCL.RETURNED_STATE = daWCL.CURRENT_STATE;
                daWCL.PROCESS        = ex.Message;
                daWCL.Log();
                Logger.getInstance().Error("WorkflowManager", "PracticalScheduledState::GotoNextState()", ex);
                LogMessages("ERROR: " + ex.Message);
                return(this);
            }
        }