public override bool IsNotRestrictedFromMaterial(BulkOrderDeedMaterial bulkOrderDeedMaterial)
        {
            var retVal = true;

            if (RestrictedToMaterials.Any())
            {
                retVal = RestrictedToMaterials.Contains(bulkOrderDeedMaterial.Name);
            }

            return(retVal);
        }
        public override bool IsNotRestrictedFromMaterial(BulkOrderDeedMaterial bulkOrderDeedMaterial)
        {
            var retVal = true;

            var firstSmallBulkOrderDeedDefinition = SmallBulkOrderDeedDefinitions.First();

            if (firstSmallBulkOrderDeedDefinition.RestrictedToMaterials.Any())
            {
                retVal = firstSmallBulkOrderDeedDefinition.RestrictedToMaterials.Contains(bulkOrderDeedMaterial.Name);
            }

            return(retVal);
        }
        public override int CalculatePoints(Profession profession, int quantity, BulkOrderDeedMaterial material, bool isExceptional)
        {
            PointTableEntry entry = null;

            foreach (var pointTableEntry in profession.PointTable.PointTableEntries)
            {
                // Make sure we are looking at the correct type of bulk order.
                if (!(pointTableEntry is LargeBulkOrderPointTableEntry))
                {
                    continue;
                }

                // Check quality, quantity.
                if ((pointTableEntry.Exceptional != isExceptional) || (pointTableEntry.Quantity != quantity))
                {
                    continue;
                }

                // Check that the material matches if it's set.
                if ((material != null) && (String.Compare(material.Name, pointTableEntry.Material, true) != 0))
                {
                    continue;
                }

                // Check the large bulk order deed name.
                if ((String.Compare(BulkOrderDeedType, ((LargeBulkOrderPointTableEntry)pointTableEntry).BulkOrderDeedType, true) != 0))
                {
                    continue;
                }

                if (String.IsNullOrEmpty(pointTableEntry.Overrides))
                {
                    // If we get there, then it was a match; however, we can't just stop here because there could be an override further down the list,
                    // so we have to keep checking, and let the override take over if need be.
                    entry = pointTableEntry;
                }
                else
                {
                    // Override entry check.
                    if ((String.Compare(BulkOrderDeedType, pointTableEntry.Overrides) == 0))
                    {
                        entry = pointTableEntry;
                        break;
                    }
                }
            }

            return(entry != null ? entry.Points : 0);
        }
Example #4
0
 public abstract int CalculatePoints(Profession profession, int quantity, BulkOrderDeedMaterial material, bool isExceptional);
Example #5
0
 public abstract bool IsNotRestrictedFromMaterial(BulkOrderDeedMaterial bulkOrderDeedMaterial);
 public SmallCollectionBulkOrderDeed(Profession profession, SmallBulkOrderDeedDefinition bulkOrderDeedDefinition, int quantity, bool exceptional, BulkOrderDeedMaterial material, Vendor vendor, BulkOrderDeedBook bulkOrderDeedBook, int completedCount)
     : base(profession, bulkOrderDeedDefinition, quantity, exceptional, material, vendor, bulkOrderDeedBook)
 {
     CompletedCount = completedCount;
 }
 public SmallCollectionBulkOrderDeed(Profession profession, SmallBulkOrderDeedDefinition bulkOrderDeedDefinition, int quantity, bool exceptional, BulkOrderDeedMaterial material)
     : base(profession, bulkOrderDeedDefinition, quantity, exceptional, material, Vendor.None, BulkOrderDeedBook.None)
 {
 }
Example #8
0
        protected CollectionBulkOrderDeed(Profession profession, BulkOrderDeedDefinition bulkOrderDeedDefinition, int quantity, bool exceptional, BulkOrderDeedMaterial material, Vendor vendor, BulkOrderDeedBook bulkOrderDeedBook)
        {
            Guard.ArgumentNotNull(nameof(profession), profession);
            Guard.ArgumentNotNull(nameof(bulkOrderDeedDefinition), bulkOrderDeedDefinition);
            Guard.ArgumentAtLeast(nameof(quantity), 1, quantity);
            // Note that material CAN be null (for instance, for inscription bulk order deeds).

            Id         = Guid.NewGuid();
            Profession = profession.Name;
            BulkOrderDeedDefinition = bulkOrderDeedDefinition;
            Quantity    = quantity;
            Material    = material != null ? material.Name : String.Empty;
            Exceptional = exceptional;
            Location    = new BulkOrderDeedLocation(vendor, bulkOrderDeedBook);
        }
        public LargeCollectionBulkOrderDeed(Profession profession, LargeBulkOrderDeedDefinition bulkOrderDeedDefinition, int quantity, bool exceptional, BulkOrderDeedMaterial material, Vendor vendor, BulkOrderDeedBook bulkOrderDeedBook, IDictionary <SmallBulkOrderDeedDefinition, bool> completedStates)
            : base(profession, bulkOrderDeedDefinition, quantity, exceptional, material, vendor, bulkOrderDeedBook)
        {
            _CollectionBulkOrderDeedItems = new List <CollectionBulkOrderDeedItem>();
            AddCollectionBulkOrderDeedItems(bulkOrderDeedDefinition, quantity);

            foreach (var keyValuePair in completedStates)
            {
                var item = _CollectionBulkOrderDeedItems.FirstOrDefault(i => String.Compare(i.Name, keyValuePair.Key.Name, true) == 0);

                if (item != null)
                {
                    item.IsCompleted = keyValuePair.Value;
                }
            }
        }
 public LargeCollectionBulkOrderDeed(Profession profession, LargeBulkOrderDeedDefinition bulkOrderDeedDefinition, int quantity, bool exceptional, BulkOrderDeedMaterial material)
     : base(profession, bulkOrderDeedDefinition, quantity, exceptional, material, Vendor.None, BulkOrderDeedBook.None)
 {
     _CollectionBulkOrderDeedItems = new List <CollectionBulkOrderDeedItem>();
     AddCollectionBulkOrderDeedItems(bulkOrderDeedDefinition, quantity);
 }