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