Пример #1
0
 public static void UpdateCachedListForSaleGoodsData(SaleGoodsData saleGoodsData, int[] typeAndID, bool add)
 {
     lock (SaleManager.Mutex_SaleGoodsDict)
     {
         if (SaleManager._OrderdSaleGoodsListDict.Count != 0)
         {
             if (null != typeAndID)
             {
                 List <SearchArgs> list = new List <SearchArgs>();
                 int color     = Global.GetEquipColor(saleGoodsData.SalingGoodsData);
                 int moneyType = SaleManager.GetSaleMoneyType(saleGoodsData.SalingGoodsData);
                 List <SearchArgs> argsList = SaleManager._OrderdSaleGoodsListDict.Keys.ToList <SearchArgs>();
                 foreach (SearchArgs key in argsList)
                 {
                     if ((key.ID == 0 && key.Type == typeAndID[0]) || key.ID == typeAndID[1] || key.Type == 1)
                     {
                         if ((1 << color - 1 & key.ColorFlags) != 0)
                         {
                             if ((key.MoneyFlags & moneyType) != 0)
                             {
                                 SaleManager.UpdateOrderdList(SaleManager._OrderdSaleGoodsListDict[key], saleGoodsData, key.OrderBy == 0, add, (SearchOrderTypes)key.OrderTypeFlags);
                             }
                         }
                     }
                 }
             }
         }
     }
 }
Пример #2
0
        public static void AddSaleGoodsData(SaleGoodsData saleGoodsData)
        {
            int goodsID = saleGoodsData.SalingGoodsData.GoodsID;

            int[] typeAndID = SaleManager.GetTypeAndID(goodsID);
            if (null != typeAndID)
            {
                lock (SaleManager.Mutex_SaleGoodsDict)
                {
                    List <SaleGoodsData> list = SaleManager._SaleGoodsDict2[typeAndID[0]][typeAndID[1]];
                    SaleManager.UpdateOrderdList(list, saleGoodsData, true, true, SearchOrderTypes.OrderByMoney);
                    SaleManager._SaleGoodsDict[saleGoodsData.GoodsDbID] = saleGoodsData;
                    SaleManager.UpdateCachedListForSaleGoodsData(saleGoodsData, typeAndID, true);
                }
            }
        }
Пример #3
0
 public static void RemoveSaleGoodsItem(int goodsDbID)
 {
     lock (SaleManager.Mutex_SaleGoodsDict)
     {
         SaleGoodsData saleGoodsData;
         if (SaleManager._SaleGoodsDict.TryGetValue(goodsDbID, out saleGoodsData))
         {
             int   goodsID   = saleGoodsData.SalingGoodsData.GoodsID;
             int[] typeAndID = SaleManager.GetTypeAndID(goodsID);
             if (null != typeAndID)
             {
                 List <SaleGoodsData> list = SaleManager._SaleGoodsDict2[typeAndID[0]][typeAndID[1]];
                 SaleManager.UpdateOrderdList(list, saleGoodsData, true, false, SearchOrderTypes.OrderByMoney);
             }
             SaleManager._SaleGoodsDict.Remove(goodsDbID);
             SaleManager.UpdateCachedListForSaleGoodsData(saleGoodsData, typeAndID, false);
         }
     }
 }