Exemplo n.º 1
0
        /// <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());
        }
Exemplo n.º 2
0
        /// <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();
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="auction"></param>
 public bool Remove(AuctionEntry auction)
 {
     return(m_auctionsByFloor[GetFloorByQuantity(auction.Item.Quantity)].Remove(auction));
 }