コード例 #1
0
        public TrackableSet <T> ConvertToTrackableSet(BsonArray bson)
        {
            var set = new TrackableSet <T>();

            ConvertToSet(bson, set);
            return(set);
        }
コード例 #2
0
        public SimpleAbilities(IEnumerable <Static> simpleAbilities)
        {
            _all = new TrackableList <SimpleAbility>(
                simpleAbilities.Select(x => new SimpleAbility(x)));

            _active = new TrackableSet <Static>(simpleAbilities);
        }
コード例 #3
0
ファイル: JsonExample.cs プロジェクト: tteogi/TrackableData
        private static void RunTrackableSet()
        {
            Log.WriteLine("***** TrackableSet (Json) *****");

            var set = new TrackableSet <int>();

            set.SetDefaultTracker();

            set.Add(1);
            set.Add(2);
            set.Add(3);

            var json = JsonConvert.SerializeObject(set.Tracker, JsonSerializerSettings);

            Log.WriteLine(json);
            set.Tracker.Clear();

            set.Remove(1);
            set.Add(4);

            var json2 = JsonConvert.SerializeObject(set.Tracker, JsonSerializerSettings);

            Log.WriteLine(json2);
            set.Tracker.Clear();

            Log.WriteLine();
        }
コード例 #4
0
        private static void RunTrackableSet()
        {
            Log.WriteLine("***** TrackableSet (Protobuf) *****");

            var set = new TrackableSet <int>();

            set.SetDefaultTracker();

            set.Add(1);
            set.Add(2);
            set.Add(3);

            var buf = PrintBytes(Serialize(set.Tracker));

            Log.WriteLine(Deserialize <TrackableSetTracker <int> >(buf).ToString());
            set.Tracker.Clear();

            set.Remove(1);
            set.Add(4);

            var buf2 = PrintBytes(Serialize(set.Tracker));

            Log.WriteLine(Deserialize <TrackableSetTracker <int> >(buf2).ToString());
            set.Tracker.Clear();

            Log.WriteLine();
        }
コード例 #5
0
        public SimpleAbilities(IEnumerable<Static> simpleAbilities)
        {
            _all = new TrackableList<SimpleAbility>(
            simpleAbilities.Select(x => new SimpleAbility(x)));

              _active = new TrackableSet<Static>(simpleAbilities);
        }
コード例 #6
0
 private TrackableSet<int> CreateTestSet()
 {
     var set = new TrackableSet<int>();
     set.Add(1);
     set.Add(2);
     set.Add(3);
     return set;
 }
コード例 #7
0
        private TrackableSet <int> CreateTestSet()
        {
            var set = new TrackableSet <int>();

            set.Add(1);
            set.Add(2);
            set.Add(3);
            return(set);
        }
コード例 #8
0
        public async Task <TrackableSet <T> > LoadAsync(DbDataReader reader)
        {
            var set = new TrackableSet <T>();

            while (await reader.ReadAsync())
            {
                var value = (T)_valueColumn.ConvertFromDbValue(reader.GetValue(0));
                set.Add(value);
            }
            return(set);
        }
コード例 #9
0
        public TrackableSet <T> ConvertToTrackableSet(BsonDocument doc, params object[] partialKeys)
        {
            var partialDoc = DocumentHelper.QueryValue(doc, partialKeys);

            if (partialDoc == null)
            {
                return(null);
            }

            var set = new TrackableSet <T>();

            ConvertToSet(partialDoc.AsBsonArray, set);
            return(set);
        }
コード例 #10
0
ファイル: SetTest.cs プロジェクト: SaladLab/TrackableData
        public void TestSet_SymmetricExceptWith_Work()
        {
            var lowNumbers = new TrackableSet<int>() { 0, 1, 2, 3, 4, 5 };
            var highNumbers = new TrackableSet<int>() { 3, 4, 5, 6, 7, 8, 9 };

            lowNumbers.SetDefaultTrackerDeep();
            lowNumbers.SymmetricExceptWith(highNumbers);

            Assert.Equal(new[] { 0, 1, 2, 6, 7, 8, 9 },
                         lowNumbers.OrderBy(x => x));

            var tracker = (TrackableSetTracker<int>)lowNumbers.Tracker;
            Assert.Equal(new[] { 6, 7, 8, 9 },
                         tracker.AddValues.OrderBy(x => x));
            Assert.Equal(new[] { 3, 4, 5 },
                         tracker.RemoveValues.OrderBy(x => x));
        }
コード例 #11
0
ファイル: SetTest.cs プロジェクト: SaladLab/TrackableData
        public void TestSet_UnionWith_Work()
        {
            var evenNumbers = new TrackableSet<int>() { 0, 2, 4, 6, 8 };
            var oddNumbers = new TrackableSet<int>() { 1, 3, 5, 7, 9 };

            evenNumbers.SetDefaultTrackerDeep();
            evenNumbers.UnionWith(oddNumbers);

            Assert.Equal(new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
                         evenNumbers.OrderBy(x => x));

            var tracker = (TrackableSetTracker<int>)evenNumbers.Tracker;
            Assert.Equal(new[] { 1, 3, 5, 7, 9 },
                         tracker.AddValues.OrderBy(x => x));
            Assert.Equal(new int[0],
                         tracker.RemoveValues.OrderBy(x => x));
        }
コード例 #12
0
        public void Serialize(ref MessagePackWriter writer, TrackableSet <T> value, MessagePackSerializerOptions options)
        {
            if (value == null)
            {
                writer.WriteNil();
            }
            else
            {
                IMessagePackFormatter <T> formatter = options.Resolver.GetFormatterWithVerify <T>();

                var c = value.Count;
                writer.WriteArrayHeader(c);

                foreach (var item in value)
                {
                    formatter.Serialize(ref writer, item, options);
                }

                writer.CancellationToken.ThrowIfCancellationRequested();
            }
        }
コード例 #13
0
        private static void RunTrackableSet()
        {
            Console.WriteLine("***** TrackableSet *****");

            var set = new TrackableSet<int>();
            set.SetDefaultTracker();

            set.Add(1);
            set.Add(2);
            set.Add(3);

            Console.WriteLine(set.Tracker);
            set.Tracker.Clear();

            set.Remove(1);
            set.Add(4);

            Console.WriteLine(set.Tracker);
            set.Tracker.Clear();

            Console.WriteLine();
        }
コード例 #14
0
ファイル: BasicExample.cs プロジェクト: tteogi/TrackableData
        private static void RunTrackableSet()
        {
            Console.WriteLine("***** TrackableSet *****");

            var set = new TrackableSet <int>();

            set.SetDefaultTracker();

            set.Add(1);
            set.Add(2);
            set.Add(3);

            Console.WriteLine(set.Tracker);
            set.Tracker.Clear();

            set.Remove(1);
            set.Add(4);

            Console.WriteLine(set.Tracker);
            set.Tracker.Clear();

            Console.WriteLine();
        }
コード例 #15
0
ファイル: SetTest.cs プロジェクト: qipa/TrackableData
        public void TestSet_ExceptWith_Work()
        {
            var lowNumbers = new TrackableSet <int>()
            {
                0, 1, 2, 3, 4, 5
            };
            var highNumbers = new TrackableSet <int>()
            {
                3, 4, 5, 6, 7, 8, 9
            };

            lowNumbers.SetDefaultTrackerDeep();
            lowNumbers.ExceptWith(highNumbers);

            Assert.Equal(new[] { 0, 1, 2 },
                         lowNumbers.OrderBy(x => x));

            var tracker = (TrackableSetTracker <int>)lowNumbers.Tracker;

            Assert.Equal(new int[0],
                         tracker.AddValues.OrderBy(x => x));
            Assert.Equal(new[] { 3, 4, 5 },
                         tracker.RemoveValues.OrderBy(x => x));
        }
コード例 #16
0
ファイル: SetTest.cs プロジェクト: qipa/TrackableData
        public void TestSet_UnionWith_Work()
        {
            var evenNumbers = new TrackableSet <int>()
            {
                0, 2, 4, 6, 8
            };
            var oddNumbers = new TrackableSet <int>()
            {
                1, 3, 5, 7, 9
            };

            evenNumbers.SetDefaultTrackerDeep();
            evenNumbers.UnionWith(oddNumbers);

            Assert.Equal(new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
                         evenNumbers.OrderBy(x => x));

            var tracker = (TrackableSetTracker <int>)evenNumbers.Tracker;

            Assert.Equal(new[] { 1, 3, 5, 7, 9 },
                         tracker.AddValues.OrderBy(x => x));
            Assert.Equal(new int[0],
                         tracker.RemoveValues.OrderBy(x => x));
        }
コード例 #17
0
ファイル: JsonExample.cs プロジェクト: SaladLab/TrackableData
        private static void RunTrackableSet()
        {
            Log.WriteLine("***** TrackableSet (Json) *****");

            var set = new TrackableSet<int>();
            set.SetDefaultTracker();

            set.Add(1);
            set.Add(2);
            set.Add(3);

            var json = JsonConvert.SerializeObject(set.Tracker, JsonSerializerSettings);
            Log.WriteLine(json);
            set.Tracker.Clear();

            set.Remove(1);
            set.Add(4);

            var json2 = JsonConvert.SerializeObject(set.Tracker, JsonSerializerSettings);
            Log.WriteLine(json2);
            set.Tracker.Clear();

            Log.WriteLine();
        }
コード例 #18
0
 protected override Task SaveAsync(TrackableSet<int> set)
 {
     return _mapper.SaveAsync(_db.Connection, set.Tracker);
 }
コード例 #19
0
 protected abstract Task SaveAsync(TrackableSet<int> set);
コード例 #20
0
 protected override Task SaveAsync(TrackableSet <int> set)
 {
     return(_mapper.SaveAsync(_db, set.Tracker, _testId));
 }
コード例 #21
0
 protected override Task SaveAsync(TrackableSet <int> set)
 {
     return(_mapper.SaveAsync(_db.Connection, set.Tracker, 1, "One"));
 }
コード例 #22
0
        public async Task <TrackableSet <T> > LoadAsync(IDatabase db, RedisKey key)
        {
            var set = new TrackableSet <T>();

            return(await LoadAsync(db, set, key).ConfigureAwait(false) ? set : null);
        }
コード例 #23
0
        private TTrackableContainer CreateTestContainer(bool withTracker)
        {
            dynamic container = new TTrackableContainer();

            dynamic person = new TTrackablePerson();

            container.Person = person;
            var missions = new TrackableDictionary <int, MissionData>();

            container.Missions = missions;

            var tags = new TrackableList <TagData>();

            if (_useList)
            {
                container.Tags = tags;
            }

            var aliases = new TrackableSet <string>();

            if (_useSet)
            {
                container.Aliases = aliases;
            }

            if (withTracker)
            {
                ((ITrackable)container).SetDefaultTracker();
            }

            // Person
            {
                person.Name = "Testor";
                person.Age  = 10;
            }

            // Missions
            {
                var value1 = new MissionData();
                value1.Kind  = 101;
                value1.Count = 1;
                value1.Note  = "Handmade Sword";
                missions.Add(1, value1);
                var value2 = new MissionData();
                value2.Kind  = 102;
                value2.Count = 3;
                value2.Note  = "Lord of Ring";
                missions.Add(2, value2);
            }

            // Tags
            if (_useList)
            {
                tags.Add(new TagData {
                    Text = "Hello", Priority = 1
                });
                tags.Add(new TagData {
                    Text = "World", Priority = 2
                });
            }

            // Aliases
            if (_useSet)
            {
                aliases.Add("alpha");
                aliases.Add("beta");
                aliases.Add("gamma");
            }

            return(container);
        }
コード例 #24
0
 private void AssertEqual(TrackableSet <string> a, TrackableSet <string> b)
 {
     Assert.Equal(a.OrderBy(x => x).ToList(), b.OrderBy(x => x).ToList());
 }
コード例 #25
0
 protected override Task SaveAsync(TrackableSet <int> set)
 {
     return(_mapper.SaveAsync(_collection, set.Tracker, _testId, 1, "V"));
 }
コード例 #26
0
 protected abstract Task SaveAsync(TrackableSet <int> set);