예제 #1
0
        private void SendLoanEvent(LoanCDCRecord cdc)
        {
            switch (cdc.Operation)
            {
            case CDCOperation.Delete:
                var loanDeletedEvent = new LoanDeletedEvent {
                    CorrelationId = Guid.NewGuid().ToString(), LoanId = cdc.LoanId, ChangeId = cdc.ChangeId
                };

                // publish Event
                PublishLoanDeletedEvent?.Invoke(this, new LoanPublishEventArgs <LoanDeletedEvent>(loanDeletedEvent));

                break;

            case CDCOperation.Insert:
            case CDCOperation.Upsert:
            case CDCOperation.UpdateAfterChange:
            case CDCOperation.UpdateBeforeChange:
                var loanUpsertEvent = new LoanUpsertEvent
                {
                    CorrelationId   = Guid.NewGuid().ToString(),
                    LoanId          = cdc.LoanId,
                    AmountInPennies = cdc.AmountInPennies,
                    //getting UtcNow repeatedly means the time will be going up. we may want to get it from the EventBatchDate in the DB
                    EventDateTime      = DateTime.UtcNow,
                    PropertyId         = cdc.PropertyId,
                    RequestedCloseDate = cdc.RequestedCloseDate,
                    ChangeId           = cdc.ChangeId
                };

                // publish Event
                var args = new LoanPublishEventArgs <LoanUpsertEvent>(loanUpsertEvent);
                PublishLoanUpsertEvent?.Invoke(this, args);

                break;
            }
        }
예제 #2
0
 private void LoanChangeDetector_PublishLoanDeletedEvent(object sender, LoanPublishEventArgs <LoanDeletedEvent> loanDeletedEvent)
 {
     // throw new NotImplementedException();
 }