private void HandleTradeRecord(ClientTrade trade, Dictionary <string, TemporaryAggregatedData> tempDataByLimitOrderAndDtId)
        {
            var key = TemporaryAggregatedData.CreateKey(trade.LimitOrderId, trade.DateTime);

            if (!tempDataByLimitOrderAndDtId.ContainsKey(key))
            {
                tempDataByLimitOrderAndDtId.Add(key, new TemporaryAggregatedData
                {
                    Asset1   = trade.AssetId,
                    ClientId = trade.ClientId,
                    LimitOrderAndDateTimeKey = key,
                    Volume1 = Math.Abs(trade.Amount),
                    Price   = trade.Price,
                    Dt      = trade.DateTime
                });
                return;
            }

            var tempRecord = tempDataByLimitOrderAndDtId[key];

            if (tempRecord.ClientId == trade.ClientId)
            {
                tempRecord.Asset2  = trade.AssetId;
                tempRecord.Volume2 = Math.Abs(trade.Amount);
            }
        }
        private TradeOffer AddTradeOffer(Ship creator)
        {
            ClientTrade TradeStub = new ClientTrade();

            TradeStub.Offered.Add(new GoodsTransfer(1, 5));        //building material
            TradeStub.Offered.Add(new GoodsTransfer(2, 10));       //food
            TradeStub.Requested.Add(new GoodsTransfer(10, 12));    //metal
            TradeStub.SenderId   = creator.id;
            TradeStub.SenderType = 0;

            return(TradeWorker.createTrade(TradeStub, creator.userid));
        }