Exemple #1
0
        protected override async Task <CdcDataOrchestratorResult <PersonCdcWrapperCollection, PersonCdcWrapper> > GetOutboxEntityDataAsync()
        {
            var pColl = new PersonCdcWrapperCollection();

            var result = await SelectQueryMultiSetAsync(
                new MultiSetCollArgs <PersonCdcWrapperCollection, PersonCdcWrapper>(_personCdcWrapperMapper, r => pColl = r, stopOnNull : true) // Root table: Demo.Person
                ).ConfigureAwait(false);

            result.Result.AddRange(pColl);
            return(result);
        }
Exemple #2
0
        protected override async Task <CdcDataOrchestratorResult <PersonCdcWrapperCollection, PersonCdcWrapper> > GetOutboxEntityDataAsync()
        {
            var pColl = new PersonCdcWrapperCollection();

            var result = await SelectQueryMultiSetAsync(
                new MultiSetCollArgs <PersonCdcWrapperCollection, PersonCdcWrapper>(_personCdcWrapperMapper, r => pColl = r, stopOnNull : true), // Root table: Legacy.Person
                new MultiSetCollArgs <PersonCdc.PersonAddressCdcCollection, PersonCdc.PersonAddressCdc>(_personAddressCdcMapper, r =>
            {
                foreach (var pa in r.GroupBy(x => new { x.PersonId }).Select(g => new { g.Key.PersonId, Coll = g.ToCollection <PersonCdc.PersonAddressCdcCollection, PersonCdc.PersonAddressCdc>() }))    // Join table: PersonAddress (Legacy.PersonAddress)
                {
                    pColl.Where(x => x.PersonId == pa.PersonId).ForEach(x => x.Addresses = pa.Coll);
                }
            })     // Related table: PersonAddress (Legacy.PersonAddress)
                ).ConfigureAwait(false);

            result.Result.AddRange(pColl);
            return(result);
        }
Exemple #3
0
 protected override Task <IEnumerable <EventData> > CreateEventsAsync(PersonCdcWrapperCollection coll, CancellationToken cancellationToken)
 => CreateEventsWithGetAsync <Person>(coll, w => _personManager.GetAsync(w.PersonId), cancellationToken);