public void CompleteTrackingSession()
        {
            foreach (var item in _trackedItems)
            {
                UnitOfWorkContext.AddEvent(() =>
                {
                    var updated = item.Operation == ChangeTrackingOperation.Delete ? null : _stateService.GetState(item.TrackedEntity);

                    var result = new EntityStateChangedEvent
                    {
                        CorrelationId     = _correlationId,
                        StateChangeType   = _userAction,
                        EntityType        = item.TrackedEntity.GetType().Name,
                        EntityId          = item.TrackedEntity.Id,
                        ProviderId        = _providerId,
                        EmployerAccountId = _employerAccountId,
                        InitialState      = item.InitialState == null ? null : JsonConvert.SerializeObject(item.InitialState),
                        UpdatedState      = updated == null ? null : JsonConvert.SerializeObject(updated),
                        UpdatedOn         = DateTime.UtcNow,
                        UpdatingParty     = _party,
                        UpdatingUserId    = _userInfo?.UserId ?? "Unknown",
                        UpdatingUserName  = _userInfo?.UserDisplayName ?? "Unknown"
                    };

                    return(result);
                });
            }

            _trackedItems.Clear();
        }
Пример #2
0
            public EntityStateChangedEventHandlerTestsFixture()
            {
                _mediator = new Mock <IMediator>();

                _differences = new List <DiffItem>();
                _diffService = new Mock <IDiffService>();
                _diffService.Setup(x =>
                                   x.GenerateDiff(It.IsAny <Dictionary <string, object> >(), It.IsAny <Dictionary <string, object> >()))
                .Returns(_differences.AsReadOnly);

                _initialState = new Dictionary <string, object> {
                    { "test", "initial" }
                };
                _updatedState = new Dictionary <string, object> {
                    { "test", "updated" }
                };

                _message = new EntityStateChangedEvent {
                    InitialState = JsonConvert.SerializeObject(_initialState), UpdatedState = JsonConvert.SerializeObject(_updatedState)
                };

                _handler = new EntityStateChangedEventHandler(_mediator.Object, _diffService.Object);
            }