Exemple #1
0
        public void RemoveItemsFromStorageFacility(InventoryDomainEventCheckoutItems domainEvent)
        {
            IMongoQuery query = Query <StorageFacility> .EQ(e => e.FacilityId, domainEvent.FacilityId);

            StorageFacility storageFacility = _database.GetCollection <StorageFacility>(DatabaseName).FindOneAs <StorageFacility>(query);

            foreach (string itemId in domainEvent.ItemIdsToBeRemovedList)
            {
                Item itemToRemove = storageFacility.Inventory.Items.FirstOrDefault(x => x.ItemId == itemId);
                storageFacility.Inventory.Items.Remove(itemToRemove);
            }

            SaveStorageFacility(storageFacility);
        }
        public void TestCheckOutItemsFromStorageFacility()
        {
            InventoryDomainEventCheckoutItems domainEventCheckoutItems = new InventoryDomainEventCheckoutItems()
            {
                EventType              = DomainEventType.InventoryDomainEventCheckoutItems,
                FacilityId             = "ABC4321",
                SourceDomain           = "Test",
                TargetDomain           = "Inventory",
                ItemIdsToBeRemovedList = new[]
                {
                    "ITEM3"
                }
            };

            InventoryRepository inventoryRepository = new InventoryRepository();

            inventoryRepository.RemoveItemsFromStorageFacility(domainEventCheckoutItems);

            StorageFacility storageFacilityFromDb = inventoryRepository.GetStorageFacility(FacilityIdConst);

            Assert.IsNotNull(storageFacilityFromDb);
            Assert.AreEqual(FacilityIdConst, storageFacilityFromDb.FacilityId);
            Assert.AreEqual(2, storageFacilityFromDb.Inventory.Items.Count);
        }
 // POST api/values
 public void Post(InventoryDomainEventCheckoutItems value)
 {
     _svc.HandlePost(value);
 }