示例#1
0
        public void TestAcknowledgeConfirmation()
        {
            _confirmingDistributor.Distribute(_set, _tracked, ApplicationMessageType.AddAttribute);

            var trackingIds = _confirmingDistributor.AllTrackingIds;

            Assert.Single(trackingIds);

            var tackingId = trackingIds.ToList()[0];

            Assert.Equal(2, _confirmingDistributor.UnconfirmedNodesFor(tackingId).Count());
            _confirmingDistributor.AcknowledgeConfirmation(tackingId, _confirmingDistributor.UnconfirmedNodesFor(tackingId).ToList()[0]);
            Assert.Single(_confirmingDistributor.UnconfirmedNodesFor(tackingId));
            _confirmingDistributor.AcknowledgeConfirmation(tackingId, _confirmingDistributor.UnconfirmedNodesFor(tackingId).ToList()[0]);
            Assert.Empty(_confirmingDistributor.UnconfirmedNodesFor(tackingId));
        }
示例#2
0
    //=========================================
    // AttributesAgent (core)
    //=========================================
    #region AttributesAgent (core)

    public void Add <T>(string attributeSetName, string attributeName, T value)
    {
        var set = _repository.AttributeSetOf(attributeSetName);

        if (set.IsNone)
        {
            var newSet = AttributeSet.Named(attributeSetName);
            newSet.AddIfAbsent(Attribute <T> .From(attributeName, value));
            _repository.Add(newSet);
            _client.SyncWith(newSet);
            _confirmingDistributor.DistributeCreate(newSet);
        }
        else
        {
            var newlyTracked = set.AddIfAbsent(Attribute <T> .From(attributeName, value));
            if (!newlyTracked.IsDistributed)
            {
                _confirmingDistributor.Distribute(set, newlyTracked, ApplicationMessageType.AddAttribute);
            }
        }
    }