Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
 public bool HasStockManager(IStockManager sm)
 {
     foreach (var entry in familiesMap)
     {
         if (entry.Value.ContainsKey(sm.GetUID()))
         {
             return(true);
         }
     }
     return(false);
 }
Ejemplo n.º 4
0
 public CachedStockManager(IStockManager manager)
 {
     Manager  = manager;
     Families = manager.GetProductFamilies();
     UID      = manager.GetUID();
 }