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); }