Esempio n. 1
0
		public void AddOrder(MarketOrder order)
		{
			if (order.IsBid)
				BuyOrders.Add(order);
			else
				SellOrders.Add(order);
		}
		private void ParseDbRow(SNode node)
		{
			MarketOrder order = new MarketOrder();

			SNodeContainer members = node.Members;
			for ( int i = 0; i < members.Length; i++)
			{
				SNode value = members[i];
				i++;
				SMarker key = members[i] as SMarker;
				SIdent ident = members[i] as SIdent;

				int typeKey = -1;

				if (key != null)
					typeKey = key.ID;
				else if (ident != null && ident.Value == "issueDate")
					typeKey = 131;
				else
				{
					Console.WriteLine("Can't parse - giving up");
					break;
				}

				SInt intV = value as SInt;
				SLong longV = value as SLong;
				SReal realV = value as SReal;

				int sintV = 0;
				long slongV = 0;
				double srealV = 0.0;

				if (intV != null)
					sintV = intV.Value;
				else if (longV != null)
					slongV = longV.Value;
				else if (realV != null)
					srealV = realV.Value;

				switch (typeKey)
				{
					case 139:
					    order.Price = slongV;
					    break;
					case 161:
					    order.VolRemaining = srealV;
					    break;
					case 131:
					    order.Issued = slongV;
					    break;
					case 138:
					    order.OrderID = slongV;
					    break;
					case 160:
					    order.VolEntered = sintV;
					    break;
					case 137:
					    order.MinVolume = sintV;
					    break;
					case 155:
					    order.StationID = sintV;
					    break;
					case 141:
					    order.RegionID = sintV;
					    List.Region = sintV;
					    break;
					case 150:
					    order.SolarSystemID = sintV;
					    break;
					case 41:
					    order.Jumps = sintV;
					    break;
					case 74:
					    order.Type = sintV;
					    List.Type = sintV;
					    break;
					case 140:
					    order.Range = sintV;
					    break;
					case 126:
					    order.Duration = sintV;
					    break;
					case 116:
					    if ( sintV != 0)
					        order.IsBid = true;
					    else
					        order.IsBid = false;
					    break;
					default:
						Console.WriteLine("Unknown key ID:" + key.ID +  " r: " + srealV + " l: " + slongV + " i: " + sintV);
					    break;
				}
			}

			List.AddOrder(order);
		}