using System; using System.Collections.Generic; using System.Linq; using System.Text; using Neo.Afx.Services.Forms.Entities; using Neo.LegitimateLicences.Data.Models; namespace Neo.LegitimateLicences.Data { public class ChecklistHelpers { ////#region CleanChecklistTemplate ////public static IEnumerable CleanChecklistTemplate(IEnumerable documentChecklistTemplates, short applicationRequestTypeID, short modeID, bool isRenewal, bool isLtpsConversion, long workflowID) ////{ //// var cleanedChecklist = new List(); //// var db = new LegitimateDatabase(); //// var applicationRequestTypes = GetRequiredApplicationTypes(applicationRequestTypeID, isRenewal, isLtpsConversion, workflowID); //// foreach (var rt in applicationRequestTypes) //// { //// foreach (var templateDocument in documentChecklistTemplates) //// { //// var document = rt.ApplicationRequestTypeDocuments.Where(a => a.DocumentTypes.Description == templateDocument.ChecklistTitle).FirstOrDefault(); //// ////if (document != null) //// ////{ //// ////if ( //// //// ((document.IsRequiredInMinibusTaxiMode.HasValue && document.IsRequiredInMinibusTaxiMode.Value) && (modeID == (short)Neo.LegitimateLicences.Common.ModeEnum.MinibusTaxi)) || //// //// ((document.IsRequiredInMidibusTaxiMode.HasValue && document.IsRequiredInMidibusTaxiMode.Value) && (modeID == (short)Neo.LegitimateLicences.Common.ModeEnum.Midibus)) || //// //// ((document.IsRequiredInBusMode.HasValue && document.IsRequiredInBusMode.Value) && (modeID == (short)Neo.LegitimateLicences.Common.ModeEnum.Bus)) || //// //// ((document.IsRequiredInMeteredTaxiMode.HasValue && document.IsRequiredInMeteredTaxiMode.Value) && (modeID == (short)Neo.LegitimateLicences.Common.ModeEnum.MeteredTaxi)) || //// //// ((document.IsRequiredInOtherMode.HasValue && document.IsRequiredInOtherMode.Value) && (modeID == (short)Neo.LegitimateLicences.Common.ModeEnum.Other)) //// //// ) //// ////{ //// //// if (!cleanedChecklist.Contains(templateDocument)) //// //// { //// //// cleanedChecklist.Add(templateDocument); //// //// } //// ////} //// ////} //// } //// } //// return cleanedChecklist; ////} ////#endregion ////#region CleanChecklistResults ////public static List CleanChecklistResults(List checklistResultList, short applicationRequestTypeID, short modeID, bool isRenewal, bool isLtpsConversion, long workflowID) ////{ //// var cleanedChecklist = new List(); //// var db = new LegitimateDatabase(); //// var applicationRequestTypes = GetRequiredApplicationTypes(applicationRequestTypeID, isRenewal, isLtpsConversion, workflowID); //// foreach (var rt in applicationRequestTypes) //// { //// foreach (var checklistResult in checklistResultList) //// { //// var document = rt.ApplicationRequestTypeDocuments.Where(a => a.DocumentTypes.Description == checklistResult.ChecklistTemplateQuestion.ChecklistTemplate.ChecklistTitle).FirstOrDefault(); //// ////if (document != null) //// ////{ //// //// if ( //// //// ((document.IsRequiredInMinibusTaxiMode.HasValue && document.IsRequiredInMinibusTaxiMode.Value) && (modeID == (short)Neo.LegitimateLicences.Common.ModeEnum.MinibusTaxi)) || //// //// ((document.IsRequiredInMidibusTaxiMode.HasValue && document.IsRequiredInMidibusTaxiMode.Value) && (modeID == (short)Neo.LegitimateLicences.Common.ModeEnum.Midibus)) || //// //// ((document.IsRequiredInBusMode.HasValue && document.IsRequiredInBusMode.Value) && (modeID == (short)Neo.LegitimateLicences.Common.ModeEnum.Bus)) || //// //// ((document.IsRequiredInMeteredTaxiMode.HasValue && document.IsRequiredInMeteredTaxiMode.Value) && (modeID == (short)Neo.LegitimateLicences.Common.ModeEnum.MeteredTaxi)) || //// //// ((document.IsRequiredInOtherMode.HasValue && document.IsRequiredInOtherMode.Value) && (modeID == (short)Neo.LegitimateLicences.Common.ModeEnum.Other)) //// //// ) //// //// { //// //// if (!cleanedChecklist.Contains(checklistResult)) //// //// { //// //// cleanedChecklist.Add(checklistResult); //// //// } //// //// } //// ////} //// } //// } //// return cleanedChecklist; ////} ////#endregion //////#region GetRequiredApplicationTypes //////public static List GetRequiredApplicationTypes(short applicationRequestTypeID, bool isRenewal, bool isLtpsConversion, long workflowID) //////{ ////// var db = new LegitimateDatabase(); ////// var applicationRequestTypes = new List(); ////// var applicationRequestTypeIDs = new List(); ////// #region Base Types ////// if (applicationRequestTypeID >= 1 && applicationRequestTypeID <= 13 || applicationRequestTypeID == 27) ////// { ////// applicationRequestTypeIDs.Add(applicationRequestTypeID); ////// } ////// #endregion ////// #region Renewal ////// if (isRenewal) ////// { ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.Renewal); ////// } ////// #endregion ////// #region Ltps Conversion ////// if (isLtpsConversion && applicationRequestTypeID != 5) ////// { ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.ConversionLtpsToLegitimate); ////// } ////// #endregion ////// #region Combined Types ////// if (applicationRequestTypeID == (short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.RenewalAndCOV) ////// { ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.Renewal); ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.ReplacementsCOV); ////// } ////// else if (applicationRequestTypeID == (short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.RenewalCOVAndIncreaseInCarryingCapacity) ////// { ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.Renewal); ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.ReplacementsCOV); ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.IncreaseCarryingCapacity); ////// } ////// else if (applicationRequestTypeID == (short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.RenewalAndDeceasedTransfer) ////// { ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.Renewal); ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.DeceasedTransfer); ////// } ////// else if (applicationRequestTypeID == (short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.RenewalDeceasedTransferAndIncreaseInCarryingCapacity) ////// { ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.Renewal); ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.DeceasedTransfer); ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.IncreaseCarryingCapacity); ////// } ////// else if (applicationRequestTypeID == (short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.RenewalDeceasedTransferIncreaseInCarryingCapacityAndCOV) ////// { ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.Renewal); ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.DeceasedTransfer); ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.IncreaseCarryingCapacity); ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.ReplacementsCOV); ////// } ////// else if (applicationRequestTypeID == (short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.IncreaseInCarryingCapacityAndCOV) ////// { ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.ReplacementsCOV); ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.IncreaseCarryingCapacity); ////// } ////// else if (applicationRequestTypeID == (short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.RenewalAndNormalTransfer) ////// { ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.Renewal); ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.NormalTransfer); ////// } ////// else if (applicationRequestTypeID == (short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.RenewalNormalTransferAndCOV) ////// { ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.Renewal); ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.NormalTransfer); ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.ReplacementsCOV); ////// } ////// else if (applicationRequestTypeID == (short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.DeceasedTransferNewOL) ////// { ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.DeceasedTransfer); ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.NewOperatingLicence); ////// } ////// else if (applicationRequestTypeID == (short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.RenewalAndDeceasedTransferAndCOV) ////// { ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.Renewal); ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.DeceasedTransfer); ////// applicationRequestTypeIDs.Add((short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.ReplacementsCOV); ////// } ////// #endregion ////// #region Read required application request type and document from database ////// foreach (var artId in applicationRequestTypeIDs.Distinct()) ////// { ////// var applicationRequestType = db.GetApplicationRequestType(artId, true); ////// applicationRequestType.ApplicationRequestTypeDocuments = applicationRequestType.ApplicationRequestTypeDocuments.Where(a => a.WorkflowID == workflowID).ToList(); ////// #region Remove the prdp docs for the new OL application type when doing a deceased transfer ////// if (applicationRequestTypeID == (short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.DeceasedTransferNewOL && artId == (short)Neo.LegitimateLicences.Common.ApplicationRequestTypeEnum.NewOperatingLicence) ////// { ////// short[] prdpDocuments = { 1020, 1021, 1022 }; ////// var tmpDocuments = applicationRequestType.ApplicationRequestTypeDocuments.Where(a => !prdpDocuments.Contains(a.DocumentTypes.DocumentTypeID)).ToList(); ////// applicationRequestType.ApplicationRequestTypeDocuments = tmpDocuments; ////// } ////// #endregion ////// applicationRequestTypes.Add(applicationRequestType); ////// } ////// #endregion ////// return applicationRequestTypes; //////} //////#endregion } }