public DBResult <LegalAgreement> GetActiveByAgreementType(LegalAgreementType agreementTypeCode)
        {
            LegalAgreement legalAgreement = this.dbContext.LegalAgreement
                                            .Where(la => la.EffectiveDate <= DateTime.UtcNow)
                                            .Where(la => agreementTypeCode.Equals(la.LegalAgreementCode))
                                            .OrderByDescending(la => la.EffectiveDate)
                                            .FirstOrDefault();

            return(new DBResult <LegalAgreement>()
            {
                Payload = legalAgreement,
                Status = DBStatusCode.Read,
            });
        }
        public void Process()
        {
            Console.WriteLine(this.GetType().Name);
            List <LegalAgreementConfig> agreementConfigs = this.configuration.GetSection($"{JobKey}:{AgreementsKey}").Get <List <LegalAgreementConfig> >();

            this.logger.LogInformation($"Found {agreementConfigs.Count} agreements to process");
            foreach (LegalAgreementConfig lac in agreementConfigs)
            {
                this.logger.LogInformation($"Processing {lac.Name}, looking up Legal Agreement code {lac.Code}");
                LegalAgreementType        agreement             = EnumUtility.ToEnum <LegalAgreementType>(lac.Code, true);
                DBResult <LegalAgreement> legalAgreementsResult = this.legalAgreementDelegate.GetActiveByAgreementType(agreement);
                if (legalAgreementsResult.Status == DBStatusCode.Read)
                {
                    this.ProcessLegalAgreement(legalAgreementsResult.Payload, lac);
                }
                else
                {
                    this.logger.LogCritical($"Unable to read {lac.Name} from the DB ABORTING...");
                }
            }
        }