public Broker TryGetBrokerByNameOrId(string name, string id) { if (name == null && id == null) { throw new NullReferenceException(); } if (name != null) { if (Intermediaries.ContainsKey(name)) { return(Intermediaries[name]); } else if (Intermediaries.Any(x => x.Value.Name == name)) { return(Intermediaries.FirstOrDefault(x => x.Value.Name == name).Value); } } if (id != null && Intermediaries.Any(x => x.Value.IdList.Contains(id))) { return(Intermediaries.FirstOrDefault(x => x.Value.IdList.Contains(id)).Value); } return(null); }
private void AssignEntryToBrokerByName(string name, Entry entry, string id = null) { if (!Intermediaries.ContainsKey(name)) { var b = new Broker() { Name = name, Entries = new List <Entry>() { entry } }; if (id != null) { b.IdList.Add(id); } Intermediaries.Add(name, b); } else { Intermediaries[name].Entries.Add(entry); if (id != null && !Intermediaries[name].IdList.Contains(id)) { Intermediaries[name].IdList.Add(id); } } }
private void AssignEntryToBrokerById(string id, Entry entry) { // try find broker by id var b = Intermediaries.Where(x => x.Value.IdList.Contains(id)); if (!b.Any()) { var br = new Broker() { Name = "UNKNOWN_PARTY_ID_" + id, Entries = new List <Entry>() { entry } }; br.IdList.Add(id); br.Unknown = true; Intermediaries.Add(br.Name, br); } else if (b.Count() == 1) { var br = b.FirstOrDefault(); Intermediaries[br.Key].Entries.Add(entry); } else { throw new ArgumentException("Duplicate Ids cross brokers " + id); } }
//public void AssignEntryToBroker(Entry entry) //{ // if (entry.Message != null) // { // if (entry.Message.Header.IsSetField(new SenderSubID())) // { // var f = entry.Message.Header.GetField(new SenderSubID()); // if (!Intermediaries.ContainsKey(f.getValue())) // Intermediaries.Add(f.getValue(), // new Broker() {Name = f.getValue(), Id = f.getValue(), Entries = new List<Entry>()}); // else Intermediaries[f.getValue()].Entries.Add(entry); // } // else if (entry.Message.IsSetField(new SenderSubID())) // { // var f = entry.Message.GetField(new SenderSubID()); // if (!Intermediaries.ContainsKey(f.getValue())) // Intermediaries.Add(f.getValue(), // new Broker() {Name = f.getValue(), Id = f.getValue(), Entries = new List<Entry>() {entry}}); // else Intermediaries[f.getValue()].Entries.Add(entry); // } // else if (entry.Message.Header.IsSetField(new SenderCompID())) // { // var f = entry.Message.Header.GetField(new SenderCompID()); // if (!Intermediaries.ContainsKey(f.getValue())) // Intermediaries.Add(f.getValue(), // new Broker() { Name = f.getValue(), Id = f.getValue(), Entries = new List<Entry>() }); // else Intermediaries[f.getValue()].Entries.Add(entry); // } // else if (entry.Message.IsSetField(new SenderCompID())) // { // var f = entry.Message.GetField(new SenderCompID()); // if (!Intermediaries.ContainsKey(f.getValue())) // Intermediaries.Add(f.getValue(), // new Broker() { Name = f.getValue(), Id = f.getValue(), Entries = new List<Entry>() { entry } }); // else Intermediaries[f.getValue()].Entries.Add(entry); // } // else // { // if (!Intermediaries.ContainsKey("UNKNOWN")) // Intermediaries.Add("UNKNOWN", // new Broker() { Name = "UNKNOWN", Id = "UNKNOWN", Entries = new List<Entry>() { entry } }); // else Intermediaries["UNKNOWN"].Entries.Add(entry); // } // } // else if(entry.Error?.ParsedMessage != null) // { // if (entry.Error.ParsedMessage.Header.IsSetField(new SenderSubID())) // { // var f = entry.Error.ParsedMessage.Header.GetField(new SenderSubID()); // if (!Intermediaries.ContainsKey(f.getValue())) // Intermediaries.Add(f.getValue(), // new Broker() { Name = f.getValue(), Id = f.getValue(), Entries = new List<Entry>() }); // else Intermediaries[f.getValue()].Entries.Add(entry); // } // else if (entry.Error.ParsedMessage.IsSetField(new SenderSubID())) // { // var f = entry.Error.ParsedMessage.GetField(new SenderSubID()); // if (!Intermediaries.ContainsKey(f.getValue())) // Intermediaries.Add(f.getValue(), // new Broker() {Name = f.getValue(), Id = f.getValue(), Entries = new List<Entry>() {entry}}); // else Intermediaries[f.getValue()].Entries.Add(entry); // } // else if (entry.Error.ParsedMessage.Header.IsSetField(new SenderCompID())) // { // var f = entry.Error.ParsedMessage.Header.GetField(new SenderCompID()); // if (!Intermediaries.ContainsKey(f.getValue())) // Intermediaries.Add(f.getValue(), // new Broker() { Name = f.getValue(), Id = f.getValue(), Entries = new List<Entry>() }); // else Intermediaries[f.getValue()].Entries.Add(entry); // } // else if (entry.Error.ParsedMessage.IsSetField(new SenderCompID())) // { // var f = entry.Error.ParsedMessage.GetField(new SenderCompID()); // if (!Intermediaries.ContainsKey(f.getValue())) // Intermediaries.Add(f.getValue(), // new Broker() { Name = f.getValue(), Id = f.getValue(), Entries = new List<Entry>() { entry } }); // else Intermediaries[f.getValue()].Entries.Add(entry); // } // else // { // if (!Intermediaries.ContainsKey("UNKNOWN")) // Intermediaries.Add("UNKNOWN", // new Broker() { Name = "UNKNOWN", Id = "UNKNOWN", Entries = new List<Entry>() { entry } }); // else Intermediaries["UNKNOWN"].Entries.Add(entry); // } // } //} private void AssignEntryToTrader(Entry entry, string name = null) { if (!Intermediaries.ContainsKey("TRADER")) { var b = new Broker() { Name = name ?? "TRADER", Entries = new List <Entry>() { entry }, Trader = true }; b.IdList.Add("0"); b.IdList.Add("1"); Intermediaries.Add("TRADER", b); } else { Intermediaries["TRADER"].Entries.Add(entry); if (name != null) { Intermediaries["TRADER"].Name = name; } } }