public static AgreementVersion Create(Phase phase, DateTime startDate)
        {
            int minimumAgreementVersion;

            if (phase == Phase.Phase1)
            {
                minimumAgreementVersion = Phase1Incentive.MinimumAgreementVersion(startDate);
            }
            else
            {
                minimumAgreementVersion = Phase2Incentive.MinimumAgreementVersion();
            }

            return(new AgreementVersion(minimumAgreementVersion));
        }
 private static LegalEntityDto MapLegalEntityDto(Models.Account model)
 {
     return(new LegalEntityDto
     {
         AccountId = model.Id,
         AccountLegalEntityId = model.AccountLegalEntityId,
         LegalEntityId = model.LegalEntityId,
         LegalEntityName = model.LegalEntityName,
         VrfVendorId = model.VrfVendorId,
         VrfCaseStatus = model.VrfCaseStatus,
         HashedLegalEntityId = model.HashedLegalEntityId,
         IsAgreementSigned = model.SignedAgreementVersion.HasValue && model.SignedAgreementVersion >= Phase2Incentive.MinimumAgreementVersion(),
         BankDetailsRequired = MapBankDetailsRequired(model.VrfCaseStatus, model.VrfVendorId)
     });
 }
 private Expression <Func <Models.Account, LegalEntityDto> > AccountToLegalEntityDto()
 {
     return(x => new LegalEntityDto
     {
         AccountId = x.Id,
         AccountLegalEntityId = x.AccountLegalEntityId,
         LegalEntityId = x.LegalEntityId,
         LegalEntityName = x.LegalEntityName,
         VrfVendorId = x.VrfVendorId,
         VrfCaseStatus = x.VrfCaseStatus,
         HashedLegalEntityId = x.HashedLegalEntityId,
         IsAgreementSigned = x.SignedAgreementVersion.HasValue && x.SignedAgreementVersion >= Phase2Incentive.MinimumAgreementVersion()
     });
 }