예제 #1
0
        public async Task IsCallHandlersThatReturnTrueForModify()
        {
            mockIChangeEventHandlerOne.CanHandleReturn = true;
            mockIChangeEventHandlerTwo.CanHandleReturn = false;

            await _changeTracker.BroadcastModify(new object(), new object(), new Mock <IIdentity>().Object);

            mockIChangeEventHandlerOne.OnChangeCalled.ShouldBeTrue();
            mockIChangeEventHandlerTwo.OnChangeCalled.ShouldBeFalse();
        }
예제 #2
0
        public async Task <bool> Modify <T>(T model, IIdentity identity) where T : class, IDataModel
        {
            model.ThrowIfNull(nameof(model));
            identity.ThrowIfNull(nameof(identity));

            var original = await GetModel <T>(model.Id);

            if (original == null)
            {
                return(false);
            }

            await _dataMutator.BeforeModify(original, model, identity);

            await ModifyRecord(original, model);

            await _changeTracker.BroadcastModify(original, model, identity);

            return(true);
        }