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); } }
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); } }
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); } }
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); } }
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; } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }