private void TestByteSerialization(SpecCase x)
        {
            var stream = new ByteStream(0, true);
            var a      = new ItemCountAggregateDefinition()
            {
                Counts = new List <ItemCountDefinition>()
                {
                    new ItemCountDefinition()
                    {
                        TypeName = "type 1"
                    },
                    new ItemCountDefinition()
                    {
                        TypeName = "type 2"
                    }
                }
            };

            //Log.Trace("serializing", "TestByteSerialization");
            a.AddToByteSteam(stream);
            stream = new ByteStream(stream.Data, stream.Data.Length);
            //Log.Trace("deserializing", "TestByteSerialization");
            var a2 = new ItemCountAggregateDefinition(stream);

            x.Assert(a2.Counts[0].TypeName == "type 1",
                     "First item serializes/deserializes correctly.");
            x.Assert(a2.Counts[1].TypeName == "type 2",
                     "Second item serializes/deserializes correctly.");
        }
 public ItemCountsAggregate(ItemCountAggregateDefinition definition)
 {
     foreach (var countDef in definition.Counts)
     {
         var a = new PhysicalItemType(countDef.TypeName, countDef.SubtypeName);
         this.Set(a.DefinitionId, (MyFixedPoint)countDef.Count);
     }
 }
        public ItemCountAggregateDefinition GetDefinition()
        {
            var result = new ItemCountAggregateDefinition();

            foreach (var kvp in Counts)
            {
                if (kvp.Value <= 0)
                {
                    continue;
                }
                var item     = new PhysicalItemType(kvp.Key);
                var countDef = new ItemCountDefinition()
                {
                    TypeName    = item.TypeName,
                    SubtypeName = item.SubtypeName,
                    Count       = (double)kvp.Value,
                };
                result.Counts.Add(countDef);
            }

            return(result);
        }