public void Register(string[] productFamilies, IStockManager sm, PropagateToken token) { logger.Info("Registering families {0} for stock manager {1}", productFamilies, sm.GetUID()); lock (familiesMap) { foreach (string family in productFamilies) { if (!familiesMap.ContainsKey(family)) { familiesMap.Add(family, new Dictionary <string, IStockManager>()); } var dic = familiesMap[family]; if (!dic.ContainsKey(sm.GetUID())) { dic.Add(sm.GetUID(), sm); } else { logger.Warn("Stock manager {0} already registered, discarding", sm.GetUID()); } } } SendServerAction(token); }
public void Unregister(IStockManager sm, PropagateToken token) { logger.Info("Unregistering stock manager {0}", sm.GetUID()); lock (familiesMap) { foreach (var entry in familiesMap) { if (entry.Value.ContainsKey(sm.GetUID())) { entry.Value.Remove(sm.GetUID()); } } } SendServerAction(token); }
public bool HasStockManager(IStockManager sm) { foreach (var entry in familiesMap) { if (entry.Value.ContainsKey(sm.GetUID())) { return(true); } } return(false); }
public CachedStockManager(IStockManager manager) { Manager = manager; Families = manager.GetProductFamilies(); UID = manager.GetUID(); }