internal static IEnumerable <Vendor> LoadFromXml(XmlNode rootNode)
        {
            var retVal = new List <Vendor>();
            var nodes  = rootNode.SelectNodes($"{XmlRootName}/{_XmlItemName}");

            if (nodes != null)
            {
                foreach (var node in nodes.OfType <XmlNode>())
                {
                    try
                    {
                        var idString           = node.Attributes[_IdAttributeName].Value;
                        var name               = node.Attributes[_NameAttributeName].Value;
                        var bulkOrderDeedBooks = BulkOrderDeedBook.LoadFromXml(node);

                        if (!String.IsNullOrEmpty(idString) && !String.IsNullOrEmpty(name))
                        {
                            var id = Guid.Parse(idString);

                            retVal.Add(new Vendor(id, name, bulkOrderDeedBooks));
                        }
                    }
                    catch
                    {
                    }
                }
            }

            return(retVal);
        }
예제 #2
0
        public BulkOrderDeedBookEventArgs(Vendor vendor, BulkOrderDeedBook bulkOrderDeedBook)
        {
            // Vendor can be null.
            Guard.ArgumentNotNull(nameof(bulkOrderDeedBook), bulkOrderDeedBook);

            BulkOrderDeedBook = bulkOrderDeedBook;
            Vendor            = vendor;
        }
        public void RemoveBulkOrderDeedBook(BulkOrderDeedBook bulkOrderDeedBook)
        {
            lock (_BulkOrderDeedBooks)
            {
                _BulkOrderDeedBooks.Remove(bulkOrderDeedBook);
            }

            OnBulkOrderDeedBookRemoved(bulkOrderDeedBook);
        }
        public void AddBulkOrderDeedBook(BulkOrderDeedBook bulkOrderDeedBook)
        {
            lock (_BulkOrderDeedBooks)
            {
                _BulkOrderDeedBooks.Add(bulkOrderDeedBook);
            }

            OnBulkOrderDeedBookAdded(bulkOrderDeedBook);
        }
        public BulkOrderDeedLocation(Vendor vendor, BulkOrderDeedBook bulkOrderDeedBook)
        {
            if (vendor == null && bulkOrderDeedBook == null)
            {
                throw new ArgumentNullException($"At least one parameter cannot be null:  vendor, bulkOrderDeedBook");
            }

            Vendor            = vendor;
            BulkOrderDeedBook = bulkOrderDeedBook;
        }
        public void AddBulkOrderDeedBook(BulkOrderDeedBook bulkOrderDeedBook)
        {
            Guard.ArgumentNotNull(nameof(bulkOrderDeedBook), bulkOrderDeedBook);

            lock (_BulkOrderDeedBooksSync)
            {
                _BulkOrderDeedBooks.Add(bulkOrderDeedBook);
                SaveBulkOrderDeedBooks();
            }

            OnBulkOrderDeedBookAdded(bulkOrderDeedBook);
        }
        private void LoadBulkOrderDeedBooksInLock()
        {
            if (!File.Exists(_BulkOrderDeedBooksFullPath))
            {
                return;
            }

            var xmlDocument = new XmlDocument();

            xmlDocument.Load(_BulkOrderDeedBooksFullPath);

            var bulkOrderDeedBooks = BulkOrderDeedBook.LoadFromXml(xmlDocument);

            _BulkOrderDeedBooks.AddRange(bulkOrderDeedBooks);
        }
        public void RemoveBulkOrderDeedBook(BulkOrderDeedBook bulkOrderDeedBook)
        {
            Guard.ArgumentNotNull(nameof(bulkOrderDeedBook), bulkOrderDeedBook);

            lock (_BulkOrderDeedBooksSync)
            {
                _BulkOrderDeedBooks.Remove(bulkOrderDeedBook);

                foreach (var collectionBulkOrderDeed in _Collection)
                {
                    if (collectionBulkOrderDeed.Location.BulkOrderDeedBook.Id == bulkOrderDeedBook.Id)
                    {
                        collectionBulkOrderDeed.Location.BulkOrderDeedBook = BulkOrderDeedBook.None;
                    }
                }

                SaveBulkOrderDeedBooks();
            }

            OnBulkOrderDeedBookRemoved(bulkOrderDeedBook);
        }
        private void OnBulkOrderDeedBookRemoved(BulkOrderDeedBook bulkOrderDeedBook)
        {
            var handler = BulkOrderDeedBookRemoved;

            handler?.Invoke(this, new BulkOrderDeedBookEventArgs(this, bulkOrderDeedBook));
        }
 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;
 }
예제 #11
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;
                }
            }
        }
예제 #13
0
 public BulkOrderDeedBookEventArgs(BulkOrderDeedBook bulkOrderDeedBook)
     : this(null, bulkOrderDeedBook)
 {
 }