예제 #1
0
        public void TestAddRemoveAndClearMethods()
        {
            var sut = new IndexedList <ItemMetadata>();

            sut.AddIndex("Idx", metadata => metadata.BlobRef);

            var item1 = new ItemMetadata
            {
                BlobRef = Guid.NewGuid().ToString(),
                Name    = "Tag",
                Value   = "Cuba"
            };

            var item2 = new ItemMetadata
            {
                BlobRef = Guid.NewGuid().ToString(),
                Name    = "Tag",
                Value   = "beach"
            };

            var item3 = new ItemMetadata
            {
                BlobRef = Guid.NewGuid().ToString(),
                Name    = "Tag",
                Value   = "pooltable"
            };

            Assert.That(sut.Count, Is.EqualTo(0));

            sut.Add(item1);

            Assert.That(sut.Count, Is.EqualTo(1));

            sut.Add(item2);

            Assert.That(sut.Count, Is.EqualTo(2));

            sut.Insert(1, item3);
            Assert.That(sut.Count, Is.EqualTo(3));

            sut.RemoveAt(2);

            Assert.That(sut.Count, Is.EqualTo(2));
            Assert.That(sut[0].Value, Is.EqualTo("Cuba"));

            sut.Clear();

            Assert.That(sut.Count, Is.EqualTo(0));
        }
예제 #2
0
        private async Task PersistPositions()
        {
            if (_positions.Count() < 1)
            {
                return;
            }

            using (var scope = _scopeFactory.CreateScope()) {
                var db = GetContext(scope);
                await db.Positions.AddRangeAsync(_positions.Flattened());

                await db.SaveChangesAsync();
            }

            _positions.Clear();
        }
예제 #3
0
 protected override void OnWorldChanged(ChangeEventArgs <SNOWorld> args)
 {
     RecentPositions.Clear();
     _centroid.Clear();
 }