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