public CommunicationBlastRunner(BlobStorageServices blobs, TraffkRdbContext rdb, ITrackingEmailer emailer) { Requires.NonNull(blobs, nameof(blobs)); Requires.NonNull(rdb, nameof(rdb)); Requires.NonNull(emailer, nameof(emailer)); Blobs = blobs; Rdb = rdb; Emailer = emailer; }
public async Task Populate(TraffkRdbContext rdb, CrmDdbContext crm, bool includePhi, params CollectionNames[] supportedCollections) { foreach (var collection in supportedCollections) { Type baseType; GetCountsResult counts = null; switch (collection) { case CollectionNames.Contacts: counts = await rdb.GetContrainedFieldCountsAsync <Contact>(true); baseType = typeof(Contact); break; case CollectionNames.Eligibility: counts = await rdb.GetContrainedFieldCountsAsync <Eligibility>(true); baseType = typeof(Eligibility); break; case CollectionNames.Scores: counts = await rdb.GetContrainedFieldCountsAsync <Score>(true); baseType = typeof(Score); break; case CollectionNames.Demographics: counts = await rdb.GetContrainedFieldCountsAsync <Demographic>(true); baseType = typeof(Demographic); break; case CollectionNames.Pcp: counts = await rdb.GetContrainedFieldCountsAsync <MemberPCP>(true); baseType = typeof(MemberPCP); break; case CollectionNames.HighCostDiagnosis: counts = await rdb.GetContrainedFieldCountsAsync <HighCostDiagnosi>(true); baseType = typeof(HighCostDiagnosi); break; default: throw new UnexpectedSwitchValueException(collection); } var section = new QuerySection(collection, baseType, null, includePhi, counts); Sections.Add(section); } }