Пример #1
0
        protected CollectionBulkOrderDeed(Guid id, string profession, string bulkOrderDeedNameMatch, BulkOrderDeedType bulkOrderDeedType, int quantity, bool exceptional, string material, Guid vendor, Guid bulkOrderDeedBook)
        {
            Guard.ArgumentNotEmpty(nameof(id), id);
            Guard.ArgumentNotNullOrEmpty(nameof(profession), profession);
            Guard.ArgumentNotNullOrEmpty(nameof(bulkOrderDeedNameMatch), bulkOrderDeedNameMatch);
            Guard.ArgumentNotOfValue(nameof(quantity), quantity, BulkOrderDeedManager.PossibleQuantities);
            // Note that material CAN be null (for instance, for inscription bulk order deeds).

            Id         = id;
            Profession = profession;
            BulkOrderDeedDefinition = BulkOrderDeedManager.Instance.GetBulkOrderDeedDefinition(profession, bulkOrderDeedNameMatch, bulkOrderDeedType);
            Quantity    = quantity;
            Material    = material ?? String.Empty;
            Exceptional = exceptional;
            Location    = new BulkOrderDeedLocation(Vendor.None, BulkOrderDeedBook.None);
        }
        internal BulkOrderDeedDefinition GetBulkOrderDeedDefinition(string professionName, string bulkOrderDeedNameMatch, BulkOrderDeedType bulkOrderDeedType)
        {
            var profession = _Professions.FirstOrDefault(p => String.Compare(p.Name, professionName, true) == 0);

            if (profession == null)
            {
                throw new Exception($"Unable to find the \"{professionName}\" profession.");
            }

            var retVal = profession.BulkOrderDeedDefinitions.Definitions.FirstOrDefault(b => (String.Compare(b.DisplayName, bulkOrderDeedNameMatch, true) == 0) &&
                                                                                        ((bulkOrderDeedType == BulkOrderDeedType.Large && b is LargeBulkOrderDeedDefinition) || (bulkOrderDeedType == BulkOrderDeedType.Small && b is SmallBulkOrderDeedDefinition)));

            if (retVal == null)
            {
                throw new Exception($"Unable to find an \"{professionName}\" Bulk Order Deed for \"{bulkOrderDeedNameMatch}\".");
            }

            return(retVal);
        }