/// <summary> /// /// </summary> /// <param name="floor"></param> /// <returns></returns> public string GetLowerPrice(AuctionCategoryFloorEnum floor) { AuctionEntry entry = FirstOrDefault(floor); if (entry == null) { return(""); } return(entry.Price.ToString()); }
/// <summary> /// /// </summary> /// <param name="floor"></param> /// <param name="auction"></param> public void Add(AuctionEntry auction) { var floor = GetFloorByQuantity(auction.Item.Quantity); if (floor == AuctionCategoryFloorEnum.INVALID) { throw new InvalidOperationException("AuctionCategory::Add invalid floor for quantity=" + auction.Item.Quantity); } m_auctionsByFloor[floor].Add(auction); m_auctionsByFloor[floor].Sort(); }
/// <summary> /// /// </summary> /// <param name="item"></param> /// <returns></returns> public bool IsValidForThisCategory(ItemDAO item) { AuctionEntry auction = FirstOrDefault(); if (auction == null) { throw new InvalidOperationException("AuctionCategory::IsValidForThisCategory empty category, should not happend."); } return(auction.Item.StringEffects == item.StringEffects); }
/// <summary> /// /// </summary> /// <returns></returns> public AuctionEntry FirstOrDefault() { AuctionEntry auction = null; foreach (var entries in m_auctionsByFloor.Values) { if (auction == null) { auction = entries.FirstOrDefault(); } } return(auction); }
/// <summary> /// /// </summary> /// <param name="entry"></param> public void Add(AuctionEntry entry) { var templateId = entry.Item.TemplateId; var itemType = entry.Item.Template.Type; AuctionCategory category = null; if (!m_categoriesByTemplate.ContainsKey(templateId)) { m_categoriesByTemplate.Add(templateId, new List <AuctionCategory>()); } category = m_categoriesByTemplate[templateId].Find(categ => categ.IsValidForThisCategory(entry.Item)); if (category == null) { category = new AuctionCategory(itemType, templateId, m_nextCategoryId++); var type = entry.Item.Template.Type; if (!m_templatesByType.ContainsKey(type)) { m_templatesByType.Add(type, new List <int>()); } if (!m_templatesByType[type].Contains(templateId)) { m_templatesByType[type].Add(templateId); } m_categoriesByTemplate[templateId].Add(category); m_categoryById.Add(category.Id, category); category.Add(entry); base.Dispatch(WorldMessage.AUCTION_HOUSE_CATEGORY_MOVEMENT(OperatorEnum.OPERATOR_ADD, category)); } else { category.Add(entry); } if (!m_auctionsByAccount.ContainsKey(entry.OwnerId)) { m_auctionsByAccount.Add(entry.OwnerId, new List <AuctionEntry>()); } m_auctionsByAccount[entry.OwnerId].Add(entry); UpdateMiddlePrice(category.TemplateId); }
/// <summary> /// /// </summary> /// <param name="auction"></param> public bool Remove(AuctionEntry auction) { return(m_auctionsByFloor[GetFloorByQuantity(auction.Item.Quantity)].Remove(auction)); }