Exemple #1
0
        // aktualizacja danych obiektu po odebraniu ich z sieci
        internal void Update(DTO.MarketOfferData data)
        {
            //TODO: NOL3 na razie przysyła zawsze Level=1 i bez określenia nowy/zmiana.
            data.Update = (Count > 0);

            if (data.Level > (data.Update ? Count : Count + 1))
            {
                MyUtil.PrintWarning(string.Format("BosOffers.Update - unexpected level: {0} (current max: {1})", data.Level, Count));
                while (list.Count < data.Level)
                {
                    list.Add(null);
                }
            }
            var n = data.Level - 1;

            if (data.Volume > 0)
            {
                var offer = new BosOffer(data);
                if (data.Update)
                {
                    list[n] = offer;
                }
                else
                {
                    list.Insert(n, offer);
                }
            }
            else
            {
                list.RemoveAt(n);
            }
        }
		// funkcja pomocnicza konwertująca dane z Fixml.MDEntry na DTO.MarketOfferData
		private static MarketOfferData MarketData_GetOfferData(MDEntry entry)
		{
			var offer = new MarketOfferData();
			offer.Level = (int)entry.Level;
			offer.Update = (entry.UpdateAction != MDUpdateAction.New);
			if (entry.UpdateAction != MDUpdateAction.Delete)
			{
				switch (entry.PriceStr)
				{
					case "PKC": offer.PriceType = PriceType.PKC; break;
					case "PCR": offer.PriceType = PriceType.PCR; break;
					case "PCRO": offer.PriceType = PriceType.PCRO; break;
				}
				offer.PriceLimit = entry.Price;
				offer.Volume = (uint)entry.Size;
				offer.Count = (uint)entry.Orders;
			}
			return offer;
		}
Exemple #3
0
 // konstruktor, wywoływany spod BosOffers.Update()
 internal BosOffer(DTO.MarketOfferData data)
 {
     Price  = BosPrice.Create(data.PriceType, data.PriceLimit);
     Volume = data.Volume;
     Count  = data.Count;
 }