コード例 #1
0
        public virtual void UpdateName(string newName, DateTime dateUpdatedUtc)
        {
            if (_name.Equals(newName))
            {
                return;
            }

            Apply(new BoardNameUpdated
            {
                Id             = _id,
                Name           = UpdatedInfo.From(_name).To(newName),
                DateUpdatedUtc = dateUpdatedUtc,
            });
        }
コード例 #2
0
        public void SplitTest()
        {
            var changeSet = new ChangeSet();

            //30
            changeSet.TrackChange(1, 1, 1);
            changeSet.TrackChange(2, 2, 1);

            //30
            changeSet.TrackChange(1, 1, (int?)1);
            changeSet.TrackChange(2, 2, (int?)1);
            changeSet.TrackChange(3, 2, (int?)1);

            //20
            changeSet.TrackChange(1, 1, (byte)1);
            changeSet.TrackChange(2, 2, (byte)1);
            changeSet.TrackChange(2, 3, (byte)1);

            //20
            changeSet.TrackChange(1, 1, (byte?)1);
            changeSet.TrackChange(2, 3, (byte?)1);
            changeSet.TrackChange(2, 3, (byte?)1);

            //30
            changeSet.TrackChange(1, 1, (float?)1);
            changeSet.TrackChange(2, 2, (float?)1);

            var size = changeSet.GetSizeInBytes();

            Assert.AreEqual(120, size);

            var splited = UpdateInfoHelper.Split(changeSet, 5);

            Assert.AreEqual(5, splited.Count);

            var updateInfo        = new UpdatedInfo(changeSet, 3);
            var splitedUpdateInfo = UpdateInfoHelper.Split(updateInfo, 60);

            Assert.AreEqual(3, splitedUpdateInfo.Count);

            updateInfo        = new UpdatedInfo(changeSet, 3);
            splitedUpdateInfo = UpdateInfoHelper.Split(updateInfo, 80);
            Assert.AreEqual(2, splitedUpdateInfo.Count);

            updateInfo        = new UpdatedInfo(changeSet, 3);
            splitedUpdateInfo = UpdateInfoHelper.Split(updateInfo, 300);
            Assert.AreEqual(1, splitedUpdateInfo.Count);
        }
コード例 #3
0
ファイル: BoardTests.cs プロジェクト: huysentruitw/Aggregator
 public void UpdateName_ShouldApplyBoardNameUpdatedEvent()
 {
     Scenario.ForCommand(() => new Board())
     .Given(new BoardCreated
     {
         Id             = Model.Id,
         Name           = Model.Name,
         DateCreatedUtc = Model.DateUtc,
     })
     .When(board => board.UpdateName(Model.NewName, Model.DateUtc))
     .Then(new BoardNameUpdated
     {
         Id             = Model.Id,
         Name           = UpdatedInfo.From(Model.Name).To(Model.NewName),
         DateUpdatedUtc = Model.DateUtc,
     })
     .Assert();
 }
コード例 #4
0
        public static List <UpdatedInfo> Split(UpdatedInfo updateInfo, int minSize)
        {
            var result      = new List <UpdatedInfo>();
            var currentSIze = updateInfo.GetSizeInBytes();
            var parts       = (currentSIze / minSize) + 1;

            if (parts == 1)
            {
                result.Add(updateInfo);
            }
            else
            {
                var changeSets = Split(updateInfo.ChangeSet, parts);
                foreach (var changeSet in changeSets)
                {
                    result.Add(new UpdatedInfo(changeSet, updateInfo.Revision));
                }
            }

            return(result);
        }