Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static readonly Dictionary<DeclarationDocflowState, RegistrationPipelineState> declarationDocflowStateResolver = new Dictionary<DeclarationDocflowState, RegistrationPipelineState>
- {
- { DeclarationDocflowState.Unknown, RegistrationPipelineState.CreatedDeclaration },
- { DeclarationDocflowState.Sent, RegistrationPipelineState.SentDeclaration },
- { DeclarationDocflowState.HasFailedTransaction, RegistrationPipelineState.SentDeclaration },
- { DeclarationDocflowState.HasSuccessfulTransaction, RegistrationPipelineState.SentDeclaration },
- { DeclarationDocflowState.Successful, RegistrationPipelineState.AcceptedDeclaration },
- { DeclarationDocflowState.Failed, RegistrationPipelineState.RejectedDeclaration }
- };
- private static readonly Dictionary<DeclarationDemandDocflowState, RegistrationPipelineState> declarationDemandDocflowStateResolver = new Dictionary<DeclarationDemandDocflowState, RegistrationPipelineState>
- {
- { DeclarationDemandDocflowState.Unknown, RegistrationPipelineState.SentDeclaration },
- { DeclarationDemandDocflowState.AcceptedDeclaration, RegistrationPipelineState.AcceptedDeclarationDemand },
- { DeclarationDemandDocflowState.RejectedDeclaration, RegistrationPipelineState.RejectedDeclarationDemand }
- };
- private static readonly Dictionary<ReportDocflowState, RegistrationPipelineState> reportDocflowStateResolver = new Dictionary<ReportDocflowState, RegistrationPipelineState>
- {
- { ReportDocflowState.Unknown, RegistrationPipelineState.ReportCreated },
- { ReportDocflowState.Sent, RegistrationPipelineState.ReportSent },
- { ReportDocflowState.HasFailedTransaction, RegistrationPipelineState.SentDeclaration },
- { ReportDocflowState.HasSuccessfulTransaction, RegistrationPipelineState.SentDeclaration },
- { ReportDocflowState.Successful, RegistrationPipelineState.ReportAccepted },
- { ReportDocflowState.Failed, RegistrationPipelineState.ReportRejected }
- };
- private static TValue SafeGet<TKey,TValue>(TKey key, Dictionary<TKey, TValue> source)
- => source.ContainsKey(key)? source[key] : throw new ArgumentOutOfRangeException();
- private static RegistrationPipelineState GetFirstStageState(DeclarationDocflowState declarationDocflowState)
- => SafeGet(declarationDocflowState, declarationDocflowStateResolver);
- private static RegistrationPipelineState GetSecondStageState(DeclarationDemandDocflowState declarationDemandDocflowState)
- => SafeGet(declarationDemandDocflowState, declarationDemandDocflowStateResolver);
- private static RegistrationPipelineState GetThirdStageState(ReportDocflowState reportDocflowState)
- => SafeGet(reportDocflowState, reportDocflowStateResolver);
- private static RegistrationPipelineState GetState(
- DeclarationDocflowState declarationDocflowState,
- DeclarationDemandDocflowState declarationDemandDocflowState,
- ReportDocflowState reportDocflowState)
- {
- try
- {
- var lastStage = GetFirstStageState(declarationDocflowState);
- if (lastStage != RegistrationPipelineState.AcceptedDeclaration)
- {
- lastStage = GetSecondStageState(declarationDemandDocflowState);
- if (lastStage != RegistrationPipelineState.AcceptedDeclarationDemand)
- {
- lastStage = GetThirdStageState(reportDocflowState);
- if (lastStage != RegistrationPipelineState.ReportAccepted)
- {
- //lastStage = GetForthState(reportDemandDocflowState);
- }
- }
- }
- return lastStage;
- }
- catch (ArgumentOutOfRangeException e)
- {
- throw new IllegalProgramException("Unknown RegistrationPipelineState")
- .AddData("DeclarationDocflowState", declarationDocflowState)
- .AddData("DeclarationDemandDocflowState", declarationDemandDocflowState)
- .AddData("ReportDocflowState", reportDocflowState)
- .AddData("Exception", e);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement