Esempio n. 1
0
 public UpdateInventoryItem(InventoryItemDto inventoryItem)
 {
     AggregateId = inventoryItem.Id;
     Timestamp   = DateTime.UtcNow;
     EventName   = "UpdateInventoryItem";
     EventData   = new UpdateInventoryItemData(inventoryItem);
 }
        private void SetupInventoryItems()
        {
            CrudProxy inventoryItem = new InventoryItemProxy();

            string guid = Guid.NewGuid().ToString().Remove(0, 20);

            this.AsusLaptop                      = new InventoryItemDto();
            this.AsusLaptop.Code                 = "ASUS-" + guid;
            this.AsusLaptop.Description          = "Asus Laptop";
            this.AsusLaptop.IsInventoried        = true;
            this.AsusLaptop.AssetAccountUid      = this.AssetInventory.Uid;
            this.AsusLaptop.IsBought             = true;
            this.AsusLaptop.PurchaseTaxCode      = TaxCode.ExpInclGst;
            this.AsusLaptop.IsSold               = true;
            this.AsusLaptop.SaleIncomeAccountUid = this.IncomeHardwareSales.Uid;
            this.AsusLaptop.SaleTaxCode          = TaxCode.SaleInclGst;
            this.AsusLaptop.RrpInclTax           = 1111.11M;
            this.AsusLaptop.SaleCoSAccountUid    = this.CoSHardware.Uid;
            inventoryItem.Insert(this.AsusLaptop);

            this.Cat5Cable                      = new InventoryItemDto();
            this.Cat5Cable.Code                 = "Cat5-" + guid;
            this.Cat5Cable.Description          = "Cat 5 Cable (in meter)";
            this.Cat5Cable.IsInventoried        = true;
            this.Cat5Cable.AssetAccountUid      = this.AssetInventory.Uid;
            this.Cat5Cable.IsBought             = true;
            this.Cat5Cable.PurchaseTaxCode      = TaxCode.ExpInclGst;
            this.Cat5Cable.IsSold               = true;
            this.Cat5Cable.SaleIncomeAccountUid = this.IncomeHardwareSales.Uid;
            this.Cat5Cable.SaleTaxCode          = TaxCode.SaleInclGst;
            this.Cat5Cable.RrpInclTax           = 2.55M;
            this.Cat5Cable.SaleCoSAccountUid    = this.CoSHardware.Uid;
            inventoryItem.Insert(this.Cat5Cable);

            this.HardDisk                      = new InventoryItemDto();
            this.HardDisk.Code                 = "Seagate-" + guid;
            this.HardDisk.Description          = "Seagate HDD - 300G";
            this.HardDisk.IsInventoried        = true;
            this.HardDisk.AssetAccountUid      = this.AssetInventory.Uid;
            this.HardDisk.IsBought             = true;
            this.HardDisk.PurchaseTaxCode      = TaxCode.ExpInclGst;
            this.HardDisk.IsSold               = true;
            this.HardDisk.SaleIncomeAccountUid = this.IncomeHardwareSales.Uid;
            this.HardDisk.SaleTaxCode          = TaxCode.SaleInclGst;
            this.HardDisk.RrpInclTax           = 110.95M;
            this.HardDisk.SaleCoSAccountUid    = this.CoSHardware.Uid;
            inventoryItem.Insert(this.HardDisk);

            this.Shipping1             = new InventoryItemDto();
            this.Shipping1.Code        = "Shipping1-" + guid;
            this.Shipping1.Description = "Shipping - 1";
            this.Shipping1.IsBought    = true;
            this.Shipping1.PurchaseExpenseAccountUid = this.ExpenseMisc.Uid;
            this.Shipping1.PurchaseTaxCode           = TaxCode.ExpInclGst;
            this.Shipping1.IsSold = true;
            this.Shipping1.SaleIncomeAccountUid = this.IncomeShipping.Uid;
            this.Shipping1.SaleTaxCode          = TaxCode.SaleInclGst;
            this.Shipping1.RrpInclTax           = 59.95M;
            inventoryItem.Insert(this.Shipping1);
        }
Esempio n. 3
0
 public CreateInventoryItem(InventoryItemDto inventoryItem)
 {
     AggregateId = inventoryItem.Id;
     Timestamp   = inventoryItem.LastEventTimestamp;
     EventName   = "CreateInventoryItem";
     EventData   = new CreateInventoryItemData(inventoryItem);
 }
Esempio n. 4
0
 public static void AssertEqual(InventoryItemDto expected, InventoryItemDto actual)
 {
     Assert.AreEqual(expected.Code, actual.Code, "Incorrect Code.");
     Assert.AreEqual(expected.Description, actual.Description, "Incorrect description.");
     Assert.AreEqual(expected.Notes, actual.Notes, "Incorrect Notes.");
     Assert.AreEqual(expected.IsActive, actual.IsActive, "Incorrect IsActive.");
     Assert.AreEqual(expected.MinimumStockLevel, actual.MinimumStockLevel, "Incorrect MinimumStockLevel");
     Assert.AreEqual(expected.StockOnHand, actual.StockOnHand, "Incorrect StockOnHand");
     Assert.AreEqual(expected.IsInventoried, actual.IsInventoried, "Incorrect IsInventoried.");
     Assert.AreEqual(expected.AssetAccountUid, actual.AssetAccountUid, "Incorrect AssetAccountUid.");
     Assert.AreEqual(expected.IsSold, actual.IsSold, "Incorrect IsSold.");
     Assert.AreEqual(expected.SaleIncomeAccountUid, actual.SaleIncomeAccountUid, "Incorrect SaleIncomeAccountUid.");
     Assert.AreEqual(expected.SaleTaxCode, actual.SaleTaxCode, "Incorrect SaleTaxCode.");
     Assert.AreEqual(expected.SaleCoSAccountUid, actual.SaleCoSAccountUid, "Incorrect SaleCoSAccountUid.");
     Assert.AreEqual(expected.RrpInclTax, actual.RrpInclTax, "Incorrect RrpInclTax.");
     Assert.AreEqual(expected.IsBought, actual.IsBought, "Incorrect IsBought.");
     Assert.AreEqual(expected.PurchaseExpenseAccountUid, actual.PurchaseExpenseAccountUid, "Incorrect PurchaseExpenseAccountUid.");
     Assert.AreEqual(expected.PurchaseTaxCode, actual.PurchaseTaxCode, "Incorrect PurchaseTaxType.");
     Assert.AreEqual(expected.PrimarySupplierContactUid, actual.PrimarySupplierContactUid, "Incorrect PrimarySupplierContactUid.");
     Assert.AreEqual(expected.PrimarySupplierItemCode, actual.PrimarySupplierItemCode, "Incorrect PrimarySupplierItemCode.");
     Assert.AreEqual(expected.DefaultReOrderQuantity, actual.DefaultReOrderQuantity, "Incorrect DefaultReOrderQuantity.");
     Assert.AreEqual(expected.BuyingPrice, actual.BuyingPrice, "Incorrect BuyingPrice");
     Assert.AreEqual(expected.IsBuyingPriceIncTax, actual.IsBuyingPriceIncTax, "Incorrect IsBuyingPriceIncTax.");
     Assert.AreEqual(expected.IsVoucher, actual.IsVoucher, "Incorrect IsVoucher.");
     Assert.AreEqual(expected.ValidFrom, actual.ValidFrom, "Incorrect ValidFrom.");
     Assert.AreEqual(expected.ValidTo, actual.ValidTo, "Incorrect ValidTo.");
 }
        public InventoryItem(NancyContext context, InventoryItemDto item)
            : base(context.Request.Url.ToString(), new [] { "item", "detail" })
        {
            Properties = new Dictionary <string, object>
            {
                { "Name", item.Name },
                { "Quantity", item.Quantity }
            };

            Links = new LinksFactory(context)
                    .With(new GetInventoryLink(), WithLink <GetInventoryLink> .Property(x => x.Title = "Back to inventory"))
                    .Build();

            Actions = new ActionsFactory(context)
                      .With(new AddInventoryItemQuantityAction(item.Id, item.Version),
                            WithAction <AddInventoryItemQuantityAction>
                            .Field(x => x.Version)
                            .Having(x => x.Type = "hidden"))
                      .With(new RemoveInventoryItemQuantityAction(item.Id, item.Version),
                            WithAction <RemoveInventoryItemQuantityAction>
                            .Field(x => x.Version)
                            .Having(x => x.Type = "hidden"))
                      .With(new RenameInventoryItemAction(item.Id, item.Version, item.Name),
                            WithAction <RenameInventoryItemAction>
                            .Field(x => x.Version)
                            .Having(x => x.Type = "hidden"))
                      .Build();
        }
Esempio n. 6
0
        public Task AddInventoryItem(InventoryItemDto item)
        {
            foreach (var availability in item.Availabilities)
            {
                var warehouse = context.Warehouses.Find(_ => _.Id == availability.WarehouseId);
                if (warehouse == null)
                {
                    warehouse = new Warehouse
                    {
                        Id = availability.WarehouseId
                    };

                    context.Warehouses.Add(warehouse);
                }

                warehouse.Items.Add(new InventoryItem
                {
                    Id       = item.Id,
                    Name     = item.Name,
                    Quantity = availability.Quantity
                });
            }

            return(Task.CompletedTask);
        }
Esempio n. 7
0
        public void GetByDescription()
        {
            string code1 = Guid.NewGuid().ToString().Substring(0, 10);
            string code2 = Guid.NewGuid().ToString().Substring(0, 10);

            string description1 = Guid.NewGuid().ToString().Substring(0, 20);
            string description2 = description1 + "bar";

            InventoryItemProxy proxy = new InventoryItemProxy();

            InventoryItemDto dto = new InventoryItemDto();

            dto.Code        = code1;
            dto.Description = description1;
            proxy.Insert(dto);

            dto             = new InventoryItemDto();
            dto.Code        = code2;
            dto.Description = description2;
            proxy.Insert(dto);

            List <InventoryItemDto> list = proxy.FindList <InventoryItemDto>(InventoryItemProxy.ResponseXPath,
                                                                             "DescriptionBeginsWith", description1);

            Assert.AreEqual(2, list.Count, string.Format("Incorrect number of items returned for code {0}", description1));
        }
        public void Handle(InventoryItemQuantityAdded @event)
        {
            InventoryItemDto d = _readDocumentStore.Documents["InventoryItem"][@event.Id];

            d.Quantity += @event.Quantity;
            d.Version   = @event.Version;
        }
Esempio n. 9
0
        private InvoiceDto GetPurchaseOrder(InventoryItemDto itemDto)
        {
            InvoiceDto dto = new InvoiceDto(TransactionType.Purchase, InvoiceLayout.Item);

            dto.Date                = DateTime.Parse("6-Oct-05");
            dto.ContactUid          = this.MrSmith.Uid;
            dto.Summary             = "Test Insert Item Purchase";
            dto.Notes               = "From REST";
            dto.DueOrExpiryDate     = DateTime.Parse("6-Nov-05");
            dto.Layout              = InvoiceLayout.Item;
            dto.Status              = InvoiceStatus.Order;
            dto.InvoiceNumber       = "<Auto Number>";
            dto.PurchaseOrderNumber = "PO333";

            ItemInvoiceItemDto item = null;

            item                    = new ItemInvoiceItemDto();
            item.Quantity           = 20;
            item.InventoryItemUid   = itemDto.Uid;
            item.Description        = "Asus Laptop";
            item.TaxCode            = TaxCode.SaleInclGst;
            item.UnitPriceInclTax   = 1200.75M;
            item.PercentageDiscount = 12.50M;

            dto.Items.Add(item);

            return(dto);
        }
Esempio n. 10
0
        public async Task Duplicate_Row_Exception()
        {
            // Note: DbContext with SQLite throws a different exception when a compound unique key is used
            // In this case the unique index key is Guid and Timestamp

            var inventoryRepository = new InventoryEventRepository(_dbContext);

            Guid id = Guid.NewGuid();

            InventoryItemDto item = new InventoryItemDto()
            {
                Id = Guid.NewGuid(),
                LastEventTimestamp = DateTime.UtcNow,
                Name     = "Duplicate Test",
                IsActive = false,
                Count    = 0,
                Note     = ""
            };

            CreateInventoryItem itemEvent = new CreateInventoryItem(item);

            await inventoryRepository.AppendEventAsync(itemEvent);

            await inventoryRepository.AppendEventAsync(itemEvent);
        }
Esempio n. 11
0
        public InventoryItemDto Parse(string data)
        {
            InventoryItemDto result = null;

            if (string.IsNullOrWhiteSpace(data))
            {
                return(result);
            }

            var match = _regex.Match(data);

            if (match.Success)
            {
                result      = new InventoryItemDto();
                result.Name = match.Groups["name"].Value;
                result.Id   = match.Groups["id"].Value;

                var availabilities = match.Groups["availability"].Captures;
                for (int i = 0; i < availabilities.Count; i++)
                {
                    var availabilityMatch = _availability.Match(availabilities[i].Value);
                    if (availabilityMatch.Success)
                    {
                        var availabilityDto = new AvailabilityDto
                        {
                            WarehouseId = availabilityMatch.Groups["warehouse"].Value,
                            Quantity    = int.Parse(availabilityMatch.Groups["quantity"].Value)
                        };
                        result.Availabilities.Add(availabilityDto);
                    }
                }
            }

            return(result);
        }
Esempio n. 12
0
        public void CheckQuantityOnOrderAndQuantityCommitted()
        {
            CrudProxy        proxy = new InventoryItemProxy();
            InventoryItemDto dto1  = this.GetInventoryItem();

            dto1.RrpInclTax = 7.75M;
            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after save.");

            InvoiceDto saleOrder = this.GetSaleOrder(dto1);
            CrudProxy  invoice   = new InvoiceProxy();

            invoice.Insert(saleOrder);

            dto1 = (InventoryItemDto)proxy.GetByUid(dto1.Uid);
            Assert.AreEqual(5, dto1.QuantityCommitted, "Incorrect # of stocks committed (used by sale orders)");

            InvoiceDto po = this.GetPurchaseOrder(dto1);

            po.PurchaseOrderNumber = "<Auto Number>";
            invoice.Insert(po);

            dto1 = (InventoryItemDto)proxy.GetByUid(dto1.Uid);
            Assert.AreEqual(5, dto1.QuantityCommitted, "Incorrect # of stocks committed (used by sale orders)");

            dto1 = (InventoryItemDto)proxy.GetByUid(dto1.Uid);
            Assert.AreEqual(20, dto1.QuantityOnOrder, "Incorrect # of stocks on order(used by purchase orders)");
        }
        public void Handle(InventoryItemRenamed @event)
        {
            InventoryItemDto d = _readDocumentStore.Documents["InventoryItem"][@event.Id];

            d.Name    = @event.NewName;
            d.Version = @event.Version;
        }
Esempio n. 14
0
        private InventoryItemDto GetInventoryItem()
        {
            string code = "CODE_" + System.Guid.NewGuid().ToString().Remove(0, 10);

            InventoryItemDto info = new InventoryItemDto();

            info.Code              = code;
            info.Description       = "Description for " + code;
            info.Notes             = "Notes for " + code;
            info.IsActive          = true;
            info.MinimumStockLevel = 99;

            info.IsInventoried   = true;
            info.AssetAccountUid = this.AssetInventory.Uid;

            info.IsSold = true;
            info.SaleIncomeAccountUid = this.IncomeHardwareSales.Uid;
            info.SaleTaxCode          = TaxCode.SaleInclGst;
            info.SaleCoSAccountUid    = this.CoSHardware.Uid;
            info.RrpInclTax           = 19.95M;

            info.IsBought                  = true;
            info.PurchaseTaxCode           = TaxCode.ExpInclGst;
            info.PrimarySupplierContactUid = this.MrsSmith.Uid;
            info.PrimarySupplierItemCode   = "S_CODE";
            info.DefaultReOrderQuantity    = 20;

            return(info);
        }
        private void SetupInventoryItems()
        {
            this.Item1 = this.GetItem1();
            CrudProxy proxy = new InventoryItemProxy();

            proxy.Insert(this.Item1);
            Assert.IsTrue(this.Item1.Uid > 0, "Uid must be > 0 after save.");
        }
        public void ValidateSerialNumberExists_ReturnsTrue_WhenSerialNumberIsInInventoryList()
        {
            var inventoryList = new List<InventoryItemDto>();
            var item = new InventoryItemDto() { SerialNumberk__BackingField = 123456 };
            inventoryList.Add(item);

            Assert.IsTrue(_validator.ValidateSerialNumberExists(item.SerialNumberk__BackingField, inventoryList));
        }
Esempio n. 17
0
 public CreateInventoryItemData(InventoryItemDto inventoryItem)
 {
     InventoryItemData = new InventoryItemData()
     {
         Name     = inventoryItem.Name,
         IsActive = inventoryItem.IsActive,
         Count    = inventoryItem.Count,
         Note     = inventoryItem.Note
     };
 }
Esempio n. 18
0
 public EditInventoryItem(InventoryItemDto inventoryItem)
 {
     Original = new InventoryItemData()
     {
         Name     = inventoryItem.Name,
         IsActive = inventoryItem.IsActive,
         Count    = inventoryItem.Count,
         Note     = (inventoryItem.Note ?? "")
     };
     Editable = inventoryItem;
 }
 public InventoryItemModel(InventoryItemDto inventoryItemDto)
 {
     //AthleteNickname = inventoryItemDto.Athlete.Nicknamek__BackingField;
     SerialNumber = inventoryItemDto.SerialNumber;
     ModelNumber = inventoryItemDto.ModelDto.ModelNumber;
     ModelName = inventoryItemDto.ModelDto.ModelName;
     SizeM = inventoryItemDto.SizeM;
     SizeW = inventoryItemDto.SizeW;
     Width = inventoryItemDto.Width;
     RequestName = inventoryItemDto.RequestName;
     Status = inventoryItemDto.Status;
     StatusLastChanged = inventoryItemDto.StatusLastChanged;
 }
Esempio n. 20
0
        public void InsertAndGet()
        {
            CrudProxy        proxy = new InventoryItemProxy();
            InventoryItemDto dto1  = this.GetInventoryItem();

            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after save.");

            InventoryItemDto dto2 = (InventoryItemDto)proxy.GetByUid(dto1.Uid);

            AssertEqual(dto1, dto2);
        }
Esempio n. 21
0
        public void TestAverageCostIsReturnedForInventoryItem()
        {
            CrudProxy proxy             = new InventoryAdjustmentProxy();
            InventoryAdjustmentDto dto1 = this.GetInventoryAdjustment();

            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after save.");

            proxy = new InventoryItemProxy();
            InventoryItemDto itemDto = (InventoryItemDto)proxy.GetByUid(HardDisk.Uid);

            Assert.IsTrue(itemDto.AverageCost == 200.50M);
        }
Esempio n. 22
0
        public void InsertWithDefaultBuyingPrice()
        {
            CrudProxy        proxy = new InventoryItemProxy();
            InventoryItemDto dto1  = this.GetInventoryItem();

            dto1.BuyingPrice         = 250M;
            dto1.IsBuyingPriceIncTax = true;
            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after save.");

            InventoryItemDto dto2 = (InventoryItemDto)proxy.GetByUid(dto1.Uid);

            AssertEqual(dto1, dto2);
        }
Esempio n. 23
0
        public async Task <IActionResult> Create([Bind("Id,Name,IsActive,Count,Note")] InventoryItemDto inventoryItem)
        {
            if (ModelState.IsValid)
            {
                inventoryItem.Id = Guid.NewGuid();
                inventoryItem.LastEventTimestamp = DateTime.UtcNow;
                inventoryItem.Note = (inventoryItem.Note ?? "");

                await _inventoryService.PostItemAsync(inventoryItem);

                return(RedirectToAction(nameof(Index)));
            }

            return(View(inventoryItem));
        }
Esempio n. 24
0
        public IHttpActionResult CreateInventoryItem(InventoryItemDto inventoryItemDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var inventoryItem = Mapper.Map <InventoryItemDto, InventoryItem>(inventoryItemDto);

            _context.InventoryItems.Add(inventoryItem);
            _context.SaveChanges();

            inventoryItemDto.Id = inventoryItem.Id;

            return(Created(new Uri(Request.RequestUri + "/" + inventoryItem.Id), inventoryItemDto));
        }
        public async Task <bool> CreateInventoryItemAsync(InventoryItemDto item)
        {
            var itemsStorage =
                await StateManager.GetOrAddAsync <IReliableDictionary <Guid, InventoryItemDto> >(InventoryItemsStorageKey);

            using (var transaction = StateManager.CreateTransaction())
            {
                await itemsStorage.AddAsync(transaction, item.Id, item);

                await transaction.CommitAsync();

                ServiceEventSource.Current.ServiceMessage(this, "Inventory item has been added to storage: {0}", item);
            }

            return(true);
        }
Esempio n. 26
0
        public async Task UpdateAsync(Guid id, InventoryItemDto model)
        {
            try
            {
                _dbContext.InventoryItems.Update(model);

                await _dbContext.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (_dbContext.InventoryItems.Any(e => e.Id == id))
                {
                    throw;
                }
            }
        }
Esempio n. 27
0
        public void InsertSellPriceIncTax()
        {
            CrudProxy        proxy = new InventoryItemProxy();
            InventoryItemDto dto1  = this.GetInventoryItem();

            dto1.SellingPrice         = 7.75M;
            dto1.IsSellingPriceIncTax = true;
            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after save.");

            InventoryItemDto dto2 = (InventoryItemDto)proxy.GetByUid(dto1.Uid);

            Assert.AreEqual(7.75M, dto1.SellingPrice, "Diff. selling price");
            Assert.AreEqual(true, dto1.IsSellingPriceIncTax, "Is selling price exc tax should be true.");
        }
Esempio n. 28
0
        public void InsertVirtualItem()
        {
            CrudProxy        proxy = new InventoryItemProxy();
            InventoryItemDto dto1  = this.GetInventoryItem();

            dto1.IsVirtual = true;
            dto1.VType     = "Plan";

            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after save.");

            InventoryItemDto dto2 = (InventoryItemDto)proxy.GetByUid(dto1.Uid);

            AssertEqual(dto1, dto2);
        }
Esempio n. 29
0
        public void InsertUsingDeprecatedRrpInclTax()
        {
            CrudProxy        proxy = new InventoryItemProxy();
            InventoryItemDto dto1  = this.GetInventoryItem();

            dto1.RrpInclTax = 7.75M;
            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after save.");

            InventoryItemDto dto2 = (InventoryItemDto)proxy.GetByUid(dto1.Uid);

            Assert.AreEqual(7.75M, dto2.RrpInclTax, "Diff. rrp. incl. tax.");
            Assert.AreEqual(7.75M, dto2.SellingPrice, "Diff. selling price.");
            Assert.AreEqual(true, dto2.IsSellingPriceIncTax, "Is selling price exc tax should be true.");
        }
Esempio n. 30
0
        public void InsertVoucherItem()
        {
            CrudProxy        proxy = new InventoryItemProxy();
            InventoryItemDto dto1  = this.GetInventoryItem();

            dto1.IsVoucher = true;
            dto1.ValidFrom = DateTime.Now.Date;
            dto1.ValidTo   = dto1.ValidFrom.AddMonths(3);

            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after save.");

            InventoryItemDto dto2 = (InventoryItemDto)proxy.GetByUid(dto1.Uid);

            AssertEqual(dto1, dto2);
        }
        private InventoryItemDto GetItem1()
        {
            string code = "CODE_" + System.Guid.NewGuid().ToString().Remove(0, 10);

            InventoryItemDto info = new InventoryItemDto();

            info.Code        = code;
            info.Description = "BOOKING FOR STUFF";
            info.IsActive    = true;

            info.IsSold = true;
            info.SaleIncomeAccountUid = this.IncomeSubscription.Uid;
            info.SaleTaxCode          = TaxCode.SaleInclGst;
            info.RrpInclTax           = 1500M;

            return(info);
        }
Esempio n. 32
0
        public void Delete()
        {
            CrudProxy        proxy = new InventoryItemProxy();
            InventoryItemDto dto1  = this.GetInventoryItem();

            proxy.Insert(dto1);

            proxy.DeleteByUid(dto1.Uid);

            try
            {
                proxy.GetByUid(dto1.Uid);
            }
            catch (RestException ex)
            {
                Assert.AreEqual("RecordNotFoundException", ex.Type);
            }
        }
        private void RecallItem(InventoryItemDto inventoryItemDto)
        {
            SerialNumber = inventoryItemDto.SerialNumberk__BackingField;
            SelectedMovementType = Constants.RECALL;

            ProcessInventoryMovement();
        }
        public void ProcessMovementCommand_ReturnedByAthlete()
        {
            var athlete = new AthleteDto() { Nicknamek__BackingField = "TestAthlete" };
            var inventoryItem = new InventoryItemDto() { SerialNumberk__BackingField = 123456, Statusk__BackingField = Constants.DISTRIBUTED };
            athlete.Inventoryk__BackingField = new List<InventoryItemDto>();
            athlete.Inventoryk__BackingField.Add(inventoryItem);

            _inventoryViewModel.MyAthletes = new ObservableCollection<AthleteDto>();
            _inventoryViewModel.MyAthletes.Add(athlete);
            _inventoryViewModel.SerialNumber = inventoryItem.SerialNumberk__BackingField;
            _inventoryViewModel.SelectedMovementType = Constants.RETURNED_BY_ATHLETE;

            _mockAppService.Setup(x => x.ReturnedByAthlete(inventoryItem, It.IsAny<String>())).Returns(new InventoryItemDto() { SerialNumberk__BackingField = inventoryItem.SerialNumberk__BackingField, Statusk__BackingField = Constants.IN_STOCK });

            _inventoryViewModel.ProcessMovementCommand.Execute(null);

            // update to assign shoe to dummy athlete
            Assert.AreEqual(0, _inventoryViewModel.MyInventory.Count);
            Assert.AreEqual(0, _inventoryViewModel.MyAthletes[0].Inventoryk__BackingField.Count);
            _mockAppService.VerifyAll();
        }
        private void ReturnItemToVendor(InventoryItemDto inventoryItemDto)
        {
            SerialNumber = inventoryItemDto.SerialNumberk__BackingField;
            SelectedMovementType = Constants.RETURN_TO_VENDOR;

            ProcessInventoryMovement();
        }
        private void RecordItemAsLost(InventoryItemDto inventoryItemDto)
        {
            SerialNumber = inventoryItemDto.SerialNumberk__BackingField;
            SelectedMovementType = Constants.RECORD_AS_LOST;

            ProcessInventoryMovement();
        }
        public void SavingInventoryItemClearsSelectedItemsFields()
        {
            var athlete = new AthleteDto() { FirstNamek__BackingField = "John", LastNamek__BackingField = "Doe", Inventoryk__BackingField = new List<InventoryItemDto>() };
            _inventoryViewModel.MyAthletes = new ObservableCollection<AthleteDto>();
            _inventoryViewModel.MyAthletes.Add(athlete);
            var eventArea = new EventAreaDto() { EventNamek__BackingField = Constants.POLE_VAULT };
            var model = new ModelDto() { ModelNamek__BackingField = "Model name" };
            _inventoryViewModel.NewInventorySelectedAthlete = athlete;
            _inventoryViewModel.NewInventorySelectedEventArea = eventArea;
            _inventoryViewModel.NewInventorySelectedModel = model;
            _inventoryViewModel.NewInventoryItemSize = 14;
            _inventoryViewModel.NewInventorySelectedSizeIsM = true;
            _inventoryViewModel.NewInventorySelectedSizeIsW = false;
            _inventoryViewModel.NewInventoryItemWidth = "N";
            var inventoryItemDto = new InventoryItemDto() { SerialNumberk__BackingField = 123456, Statusk__BackingField = Constants.IN_STOCK };
            _mockAppService.Setup(x => x.SaveInventoryItem(It.IsAny<InventoryItemDto>())).Returns(inventoryItemDto);

            _inventoryViewModel.SaveNewInventoryCommand.Execute(null);

            Assert.AreEqual(null, _inventoryViewModel.NewInventorySelectedAthlete);
            Assert.AreEqual(null, _inventoryViewModel.NewInventorySelectedEventArea);
            Assert.AreEqual(null, _inventoryViewModel.NewInventorySelectedModel);
            Assert.AreEqual(null, _inventoryViewModel.NewInventoryItemSize);
            Assert.AreEqual(true, _inventoryViewModel.NewInventorySelectedSizeIsM);
            Assert.AreEqual(false, _inventoryViewModel.NewInventorySelectedSizeIsW);
            Assert.AreEqual(String.Empty, _inventoryViewModel.NewInventoryItemWidth);
            Assert.AreEqual(-1, _inventoryViewModel.NewInventoryAthleteIndex);
        }
        public void SaveNewInventoryCommand()
        {
            var athlete = new AthleteDto() { Inventoryk__BackingField = new List<InventoryItemDto>() };
            _inventoryViewModel.MyAthletes = new ObservableCollection<AthleteDto>();
            _inventoryViewModel.MyAthletes.Add(athlete);

            _inventoryViewModel.NewInventorySelectedAthlete = _inventoryViewModel.MyAthletes[0];
            _inventoryViewModel.NewInventorySelectedModel = new ModelDto();
            _inventoryViewModel.NewInventorySelectedStatus = Constants.IN_STOCK;
            _inventoryViewModel.NewInventoryItemWidth = "Wide";

            var returnedItem = new InventoryItemDto() { SerialNumberk__BackingField = 1234 };
            _mockAppService.Setup(x => x.SaveInventoryItem(It.IsAny<InventoryItemDto>())).Returns(returnedItem);

            _inventoryViewModel.SaveNewInventoryCommand.Execute(null);

            Assert.AreEqual(returnedItem.SerialNumberk__BackingField.ToString(), _inventoryViewModel.InventoryLabelModel.SerialNumber);
            Assert.AreEqual(1, _inventoryViewModel.MyInventory.Count);
            Assert.AreEqual(1, _inventoryViewModel.MyAthletes[0].Inventoryk__BackingField.Count);
            InventoryEntryFieldsAreReset();
        }
        private void SaveNewInventoryItem()
        {
            var newInventoryItem = new InventoryItemDto();

            newInventoryItem.AthleteNicknamek__BackingField = newInventorySelectedAthlete.Nicknamek__BackingField;
            newInventoryItem.ModelDtok__BackingField = newInventorySelectedModel;
            newInventoryItem.Statusk__BackingField = newInventorySelectedStatus;
            newInventoryItem.StatusLastChangedk__BackingField = DateTime.Now;
            newInventoryItem.RequestNamek__BackingField = "Pre-existing inventory";

            if (newInventorySelectedSizeIsM)
                newInventoryItem.SizeMk__BackingField = NewInventoryItemSize;
            else
                newInventoryItem.SizeWk__BackingField = NewInventoryItemSize;

            newInventoryItem.Widthk__BackingField = newInventorySelectedWidth;

            newInventoryItem = _service.SaveInventoryItem(newInventoryItem);

            newInventorySelectedAthlete.Inventoryk__BackingField.Add(newInventoryItem);

            ResetNewInventoryEntryFields();
            inventoryLabelModel.SerialNumber = newInventoryItem.SerialNumberk__BackingField.ToString();

            Messenger.Default.Send<ObservableCollection<AthleteDto>>(this.myAthletes);
            RaisePropertyChanged("InventoryLabelModel");
            RaisePropertyChanged("MyAthletes");
            RaisePropertyChanged("MyInventoryToShow");
        }
        private void ReturnToStock(InventoryItemDto inventoryItemDto)
        {
            SerialNumber = inventoryItemDto.SerialNumberk__BackingField;
            SelectedMovementType = Constants.RETURNED_BY_ATHLETE;

            ProcessInventoryMovement();
        }
        private void SurplusItem(InventoryItemDto inventoryItemDto)
        {
            SerialNumber = inventoryItemDto.SerialNumberk__BackingField;
            SelectedMovementType = Constants.SURPLUS;

            ProcessInventoryMovement();
        }
 private void ShowInventoryItemHistory(InventoryItemDto inventoryItemDto)
 {
 }
        public void ProcessMovementCommand_Surplus()
        {
            var athlete = new AthleteDto() { Nicknamek__BackingField = "TestAthlete" };
            var inventoryItem = new InventoryItemDto() { SerialNumberk__BackingField = 123456, Statusk__BackingField = Constants.DISTRIBUTED };
            athlete.Inventoryk__BackingField = new List<InventoryItemDto>();
            athlete.Inventoryk__BackingField.Add(inventoryItem);

            _inventoryViewModel.MyAthletes = new ObservableCollection<AthleteDto>();
            _inventoryViewModel.MyAthletes.Add(athlete);
            _inventoryViewModel.SerialNumber = inventoryItem.SerialNumberk__BackingField;
            _inventoryViewModel.SelectedMovementType = Constants.SURPLUS;

            _mockAppService.Setup(x => x.Surplus(inventoryItem, It.IsAny<String>())).Returns(new InventoryItemDto() { SerialNumberk__BackingField = inventoryItem.SerialNumberk__BackingField, Statusk__BackingField = Constants.SURPLUSED });

            _inventoryViewModel.ProcessMovementCommand.Execute(null);

            Assert.AreEqual(1, _inventoryViewModel.MyInventory.Count);
            Assert.AreEqual(1, _inventoryViewModel.MyAthletes[0].Inventoryk__BackingField.Count);
            Assert.AreEqual(Constants.SURPLUSED, _inventoryViewModel.MyAthletes[0].Inventoryk__BackingField[0].Statusk__BackingField);
            _mockAppService.VerifyAll();
        }
        public void SavingInventoryItemSetsSerialNumberInInventoryLabelModel()
        {
            var athlete = new AthleteDto() { FirstNamek__BackingField = "John", LastNamek__BackingField = "Doe", Inventoryk__BackingField = new List<InventoryItemDto>() };
            var eventArea = new EventAreaDto() { EventNamek__BackingField = Constants.POLE_VAULT };
            var model = new ModelDto() { ModelNamek__BackingField = "Model name" };
            _inventoryViewModel.NewInventorySelectedAthlete = athlete;
            _inventoryViewModel.NewInventorySelectedEventArea = eventArea;
            _inventoryViewModel.NewInventorySelectedModel = model;
            _inventoryViewModel.NewInventoryItemSize = 14;
            _inventoryViewModel.NewInventorySelectedSizeIsM = true;
            _inventoryViewModel.NewInventorySelectedSizeIsW = false;
            _inventoryViewModel.NewInventoryItemWidth = "N";
            var inventoryItemDto = new InventoryItemDto() { SerialNumberk__BackingField = 123456 };
            _mockAppService.Setup(x => x.SaveInventoryItem(It.IsAny<InventoryItemDto>())).Returns(inventoryItemDto);

            _inventoryViewModel.SaveNewInventoryCommand.Execute(null);

            Assert.AreEqual(inventoryItemDto.SerialNumberk__BackingField.ToString(), _inventoryViewModel.InventoryLabelModel.SerialNumber);
        }
 private void AssignInventoryItemToAnotherAthlete(InventoryItemDto inventoryItemDto)
 {
 }
        private void DistributeItem(InventoryItemDto inventoryItemDto)
        {
            SerialNumber = inventoryItemDto.SerialNumberk__BackingField;
            SelectedMovementType = Constants.DISTRIBUTE;

            ProcessInventoryMovement();
        }
        private void PrintInventoryLabel(InventoryItemDto inventoryItemDto)
        {
            if (inventoryItemDto != null)
            {
                var label = new InventoryLabelModel();

                label.EventAreaAbbreviation = "H";
                label.SizingGender = "F";
                label.Size = 11;
                label.SerialNumber = inventoryItemDto.SerialNumberk__BackingField.ToString();
                label.ReceivedMonth = "Nov";
                label.ReceivedYear = "2012";
                label.ModelName = "Zoom Air Pegasus +29 (WIDE)";
                var athlete = myAthletes.Where(x => x.Nicknamek__BackingField == inventoryItemDto.AthleteNicknamek__BackingField).FirstOrDefault();
                label.AthleteFirstAndLastName = String.Format("{0} {1}", athlete.FirstNamek__BackingField, athlete.LastNamek__BackingField);

                _labelPrinter.Setup(label);
                _labelPrinter.Print();
            }
            else
                MessageBox.Show("An error occurred while trying to print the inventory label.");
        }
        public void FilterRemovesAppropriateRowsFromMyInventoryOnEachCallAndResetsAfterClearingFilter()
        {
            var athlete1 = new AthleteDto() { FirstNamek__BackingField = "Jeff", LastNamek__BackingField = "Artis-Gray", Nicknamek__BackingField = "JArtis-Gray", Genderk__BackingField = 'M', TrainerSizeMk__BackingField = 14, TrainerSizeWk__BackingField = 12, SpikeSizeMk__BackingField = 14, SpikeSizeWk__BackingField = 12, Notesk__BackingField = "Notes about Jeff Artis-Gray", Statusk__BackingField = "Future", Inventoryk__BackingField = new List<InventoryItemDto>() };
            var athlete2 = new AthleteDto() { FirstNamek__BackingField = "Darren", LastNamek__BackingField = "Barlow", Nicknamek__BackingField = "DBarlow", Genderk__BackingField = 'M', TrainerSizeMk__BackingField = 14, TrainerSizeWk__BackingField = 12, SpikeSizeMk__BackingField = 14, SpikeSizeWk__BackingField = 12, Notesk__BackingField = "Notes about Darren Barlow", Statusk__BackingField = "Past", Inventoryk__BackingField = new List<InventoryItemDto>() };
            var athlete3 = new AthleteDto() { FirstNamek__BackingField = "Jared", LastNamek__BackingField = "Berman", Nicknamek__BackingField = "JBerman", Genderk__BackingField = 'M', TrainerSizeMk__BackingField = 13, TrainerSizeWk__BackingField = 11, SpikeSizeMk__BackingField = 13, SpikeSizeWk__BackingField = 11, Notesk__BackingField = "Notes about Jared Berman", Statusk__BackingField = "Past", Inventoryk__BackingField = new List<InventoryItemDto>() };

            var model1 = new ModelDto() { ModelNumberk__BackingField = "524395-386", ModelNamek__BackingField = "Air Pegasus+ 29 Trail", Typek__BackingField = "Running", Pricek__BackingField = 105, Colork__BackingField = "Silver Sage/Team Red/University Red/Total Orange", IsDiscontinuedk__BackingField = false };
            var model2 = new ModelDto() { ModelNumberk__BackingField = "524395-038", ModelNamek__BackingField = "Air Pegasus+ 29 Trail", Typek__BackingField = "Running", Pricek__BackingField = 105, Colork__BackingField = "Cool Grey/Total Orange/Signal Blue/Electric Green", IsDiscontinuedk__BackingField = false };

            var inventoryItem1 = new InventoryItemDto() { ModelDtok__BackingField = model1, SizeMk__BackingField = 9, SizeWk__BackingField = 7, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete1.Nicknamek__BackingField, Statusk__BackingField = Constants.REQUESTED, ReceivedOnk__BackingField = new DateTime(2012, 8, 18, 11, 26, 13).ToShortDateString() };
            var inventoryItem2 = new InventoryItemDto() { ModelDtok__BackingField = model1, SizeMk__BackingField = 11, SizeWk__BackingField = 9, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete1.Nicknamek__BackingField, Statusk__BackingField = Constants.ORDERED, ReceivedOnk__BackingField = new DateTime(2012, 2, 16, 11, 4, 23).ToShortDateString() };
            var inventoryItem3 = new InventoryItemDto() { ModelDtok__BackingField = model1, SizeMk__BackingField = 12, SizeWk__BackingField = 10, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete1.Nicknamek__BackingField, Statusk__BackingField = Constants.IN_STOCK, ReceivedOnk__BackingField = new DateTime(2012, 11, 26, 8, 16, 22).ToShortDateString() };
            var inventoryItem4 = new InventoryItemDto() { ModelDtok__BackingField = model1, SizeMk__BackingField = 12, SizeWk__BackingField = 10, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete2.Nicknamek__BackingField, Statusk__BackingField = Constants.DISTRIBUTED, ReceivedOnk__BackingField = new DateTime(2012, 12, 28, 15, 3, 13).ToShortDateString() };
            var inventoryItem5 = new InventoryItemDto() { ModelDtok__BackingField = model1, SizeMk__BackingField = 9, SizeWk__BackingField = 7, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete2.Nicknamek__BackingField, Statusk__BackingField = Constants.SURPLUSED, ReceivedOnk__BackingField = new DateTime(2012, 1, 12, 22, 49, 55).ToShortDateString() };
            var inventoryItem6 = new InventoryItemDto() { ModelDtok__BackingField = model2, SizeMk__BackingField = 11, SizeWk__BackingField = 9, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete2.Nicknamek__BackingField, Statusk__BackingField = Constants.RETURNED, ReceivedOnk__BackingField = new DateTime(2012, 9, 18, 10, 59, 31).ToShortDateString() };
            var inventoryItem7 = new InventoryItemDto() { ModelDtok__BackingField = model2, SizeMk__BackingField = 9, SizeWk__BackingField = 7, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete3.Nicknamek__BackingField, Statusk__BackingField = Constants.RECALLED, ReceivedOnk__BackingField = new DateTime(2012, 5, 21, 21, 45, 33).ToShortDateString() };
            var inventoryItem8 = new InventoryItemDto() { ModelDtok__BackingField = model2, SizeMk__BackingField = 12, SizeWk__BackingField = 10, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete3.Nicknamek__BackingField, Statusk__BackingField = Constants.RECORDED_AS_LOST, ReceivedOnk__BackingField = new DateTime(2012, 1, 19, 2, 50, 54).ToShortDateString() };
            var inventoryItem9 = new InventoryItemDto() { ModelDtok__BackingField = model2, SizeMk__BackingField = 9, SizeWk__BackingField = 7, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete3.Nicknamek__BackingField, Statusk__BackingField = Constants.IN_STOCK, ReceivedOnk__BackingField = new DateTime(2012, 6, 3, 16, 58, 1).ToShortDateString() };

            athlete1.Inventoryk__BackingField.Add(inventoryItem1);
            athlete1.Inventoryk__BackingField.Add(inventoryItem2);
            athlete1.Inventoryk__BackingField.Add(inventoryItem3);
            athlete2.Inventoryk__BackingField.Add(inventoryItem4);
            athlete2.Inventoryk__BackingField.Add(inventoryItem5);
            athlete2.Inventoryk__BackingField.Add(inventoryItem6);
            athlete3.Inventoryk__BackingField.Add(inventoryItem7);
            athlete3.Inventoryk__BackingField.Add(inventoryItem8);
            athlete3.Inventoryk__BackingField.Add(inventoryItem9);

            _inventoryViewModel.MyAthletes = new ObservableCollection<AthleteDto>();
            _inventoryViewModel.MyAthletes.Add(athlete1);
            _inventoryViewModel.MyAthletes.Add(athlete2);
            _inventoryViewModel.MyAthletes.Add(athlete3);

            _inventoryViewModel.MyInventory.Add(inventoryItem1);
            _inventoryViewModel.MyInventory.Add(inventoryItem2);
            _inventoryViewModel.MyInventory.Add(inventoryItem3);
            _inventoryViewModel.MyInventory.Add(inventoryItem4);
            _inventoryViewModel.MyInventory.Add(inventoryItem5);
            _inventoryViewModel.MyInventory.Add(inventoryItem6);
            _inventoryViewModel.MyInventory.Add(inventoryItem7);
            _inventoryViewModel.MyInventory.Add(inventoryItem8);
            _inventoryViewModel.MyInventory.Add(inventoryItem9);

            _inventoryViewModel.ShowAllInventoryItems = true;
            _inventoryViewModel.ShowOnlyDefaultInventoryItems = false;
            Assert.AreEqual(9, _inventoryViewModel.MyInventory.Count);
            Assert.AreEqual(9, _inventoryViewModel.MyInventoryToShow.Count);

            Assert.AreEqual(3, _inventoryViewModel.FilterInventoryModel.Athletes.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Athletes.Contains(athlete1.Nicknamek__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Athletes.Contains(athlete2.Nicknamek__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Athletes.Contains(athlete3.Nicknamek__BackingField));

            Assert.AreEqual(8, _inventoryViewModel.FilterInventoryModel.Statuses.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.REQUESTED));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.ORDERED));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.IN_STOCK));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.DISTRIBUTED));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.SURPLUSED));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.RETURNED));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.RECALLED));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.RECORDED_AS_LOST));

            Assert.AreEqual(1, _inventoryViewModel.FilterInventoryModel.ModelNames.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ModelNames.Contains(model1.ModelNamek__BackingField));

            Assert.AreEqual(2, _inventoryViewModel.FilterInventoryModel.ModelNumbers.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ModelNumbers.Contains(model1.ModelNumberk__BackingField));

            Assert.AreEqual(3, _inventoryViewModel.FilterInventoryModel.SizeMs.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeMs.Contains("9"));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeMs.Contains("11"));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeMs.Contains("12"));

            Assert.AreEqual(3, _inventoryViewModel.FilterInventoryModel.SizeWs.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeWs.Contains("7"));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeWs.Contains("9"));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeWs.Contains("10"));

            Assert.AreEqual(1, _inventoryViewModel.FilterInventoryModel.Widths.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Widths.Contains("N"));

            Assert.AreEqual(9, _inventoryViewModel.FilterInventoryModel.ReceivedOns.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem1.ReceivedOnk__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem2.ReceivedOnk__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem3.ReceivedOnk__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem4.ReceivedOnk__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem5.ReceivedOnk__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem6.ReceivedOnk__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem7.ReceivedOnk__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem8.ReceivedOnk__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem9.ReceivedOnk__BackingField));

            _inventoryViewModel.FilterInventoryModel.SelectedAthlete = athlete1.Nicknamek__BackingField;
            _inventoryViewModel.FilterCommand.Execute(null);

            Assert.AreEqual(3, _inventoryViewModel.MyInventory.Count);

            Assert.AreEqual(1, _inventoryViewModel.FilterInventoryModel.Athletes.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Athletes.Contains(athlete1.Nicknamek__BackingField));

            Assert.AreEqual(3, _inventoryViewModel.FilterInventoryModel.Statuses.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.REQUESTED));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.ORDERED));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.IN_STOCK));

            Assert.AreEqual(1, _inventoryViewModel.FilterInventoryModel.ModelNames.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ModelNames.Contains(model1.ModelNamek__BackingField));

            Assert.AreEqual(1, _inventoryViewModel.FilterInventoryModel.ModelNumbers.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ModelNumbers.Contains(model1.ModelNumberk__BackingField));

            Assert.AreEqual(3, _inventoryViewModel.FilterInventoryModel.SizeMs.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeMs.Contains("9"));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeMs.Contains("11"));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeMs.Contains("12"));

            Assert.AreEqual(3, _inventoryViewModel.FilterInventoryModel.SizeWs.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeWs.Contains("7"));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeWs.Contains("9"));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeWs.Contains("10"));

            Assert.AreEqual(1, _inventoryViewModel.FilterInventoryModel.Widths.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Widths.Contains("N"));

            _inventoryViewModel.FilterInventoryModel.SelectedStatus = Constants.REQUESTED;
            _inventoryViewModel.FilterCommand.Execute(null);

            Assert.AreEqual(1, _inventoryViewModel.MyInventory.Count);

            Assert.AreEqual(1, _inventoryViewModel.FilterInventoryModel.Athletes.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Athletes.Contains(athlete1.Nicknamek__BackingField));

            Assert.AreEqual(1, _inventoryViewModel.FilterInventoryModel.Statuses.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.REQUESTED));

            Assert.AreEqual(1, _inventoryViewModel.FilterInventoryModel.ModelNames.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ModelNames.Contains(model1.ModelNamek__BackingField));

            Assert.AreEqual(1, _inventoryViewModel.FilterInventoryModel.ModelNumbers.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ModelNumbers.Contains(model1.ModelNumberk__BackingField));

            Assert.AreEqual(1, _inventoryViewModel.FilterInventoryModel.SizeMs.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeMs.Contains("9"));

            Assert.AreEqual(1, _inventoryViewModel.FilterInventoryModel.SizeWs.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeWs.Contains("7"));

            Assert.AreEqual(1, _inventoryViewModel.FilterInventoryModel.Widths.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Widths.Contains("N"));

            _inventoryViewModel.ClearFilterCommand.Execute(null);

            Assert.AreEqual(9, _inventoryViewModel.MyInventory.Count);
            Assert.AreEqual(9, _inventoryViewModel.MyInventoryToShow.Count);

            Assert.AreEqual(3, _inventoryViewModel.FilterInventoryModel.Athletes.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Athletes.Contains(athlete1.Nicknamek__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Athletes.Contains(athlete2.Nicknamek__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Athletes.Contains(athlete3.Nicknamek__BackingField));

            Assert.AreEqual(8, _inventoryViewModel.FilterInventoryModel.Statuses.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.REQUESTED));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.ORDERED));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.IN_STOCK));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.DISTRIBUTED));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.SURPLUSED));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.RETURNED));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.RECALLED));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Statuses.Contains(Constants.RECORDED_AS_LOST));

            Assert.AreEqual(1, _inventoryViewModel.FilterInventoryModel.ModelNames.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ModelNames.Contains(model1.ModelNamek__BackingField));

            Assert.AreEqual(2, _inventoryViewModel.FilterInventoryModel.ModelNumbers.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ModelNumbers.Contains(model1.ModelNumberk__BackingField));

            Assert.AreEqual(3, _inventoryViewModel.FilterInventoryModel.SizeMs.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeMs.Contains("9"));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeMs.Contains("11"));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeMs.Contains("12"));

            Assert.AreEqual(3, _inventoryViewModel.FilterInventoryModel.SizeWs.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeWs.Contains("7"));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeWs.Contains("9"));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.SizeWs.Contains("10"));

            Assert.AreEqual(1, _inventoryViewModel.FilterInventoryModel.Widths.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.Widths.Contains("N"));

            Assert.AreEqual(9, _inventoryViewModel.FilterInventoryModel.ReceivedOns.Count);
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem1.ReceivedOnk__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem2.ReceivedOnk__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem3.ReceivedOnk__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem4.ReceivedOnk__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem5.ReceivedOnk__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem6.ReceivedOnk__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem7.ReceivedOnk__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem8.ReceivedOnk__BackingField));
            Assert.IsTrue(_inventoryViewModel.FilterInventoryModel.ReceivedOns.Contains(inventoryItem9.ReceivedOnk__BackingField));
        }
        public void ProcessingMovementDoesNotResetInventoryFilters()
        {
            var athlete1 = new AthleteDto() { FirstNamek__BackingField = "Jeff", LastNamek__BackingField = "Artis-Gray", Nicknamek__BackingField = "JArtis-Gray", Genderk__BackingField = 'M', TrainerSizeMk__BackingField = 14, TrainerSizeWk__BackingField = 12, SpikeSizeMk__BackingField = 14, SpikeSizeWk__BackingField = 12, Notesk__BackingField = "Notes about Jeff Artis-Gray", Statusk__BackingField = "Future", Inventoryk__BackingField = new List<InventoryItemDto>() };
            var athlete2 = new AthleteDto() { FirstNamek__BackingField = "Darren", LastNamek__BackingField = "Barlow", Nicknamek__BackingField = "DBarlow", Genderk__BackingField = 'M', TrainerSizeMk__BackingField = 14, TrainerSizeWk__BackingField = 12, SpikeSizeMk__BackingField = 14, SpikeSizeWk__BackingField = 12, Notesk__BackingField = "Notes about Darren Barlow", Statusk__BackingField = "Past", Inventoryk__BackingField = new List<InventoryItemDto>() };
            var athlete3 = new AthleteDto() { FirstNamek__BackingField = "Jared", LastNamek__BackingField = "Berman", Nicknamek__BackingField = "JBerman", Genderk__BackingField = 'M', TrainerSizeMk__BackingField = 13, TrainerSizeWk__BackingField = 11, SpikeSizeMk__BackingField = 13, SpikeSizeWk__BackingField = 11, Notesk__BackingField = "Notes about Jared Berman", Statusk__BackingField = "Past", Inventoryk__BackingField = new List<InventoryItemDto>() };

            var model1 = new ModelDto() { ModelNumberk__BackingField = "524395-386", ModelNamek__BackingField = "Air Pegasus+ 29 Trail", Typek__BackingField = "Running", Pricek__BackingField = 105, Colork__BackingField = "Silver Sage/Team Red/University Red/Total Orange", IsDiscontinuedk__BackingField = false };
            var model2 = new ModelDto() { ModelNumberk__BackingField = "524395-038", ModelNamek__BackingField = "Air Pegasus+ 29 Trail", Typek__BackingField = "Running", Pricek__BackingField = 105, Colork__BackingField = "Cool Grey/Total Orange/Signal Blue/Electric Green", IsDiscontinuedk__BackingField = false };

            var inventoryItem1 = new InventoryItemDto() { ModelDtok__BackingField = model1, SizeMk__BackingField = 9, SizeWk__BackingField = 7, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete1.Nicknamek__BackingField, Statusk__BackingField = Constants.REQUESTED, ReceivedOnk__BackingField = new DateTime(2012, 8, 18, 11, 26, 13).ToShortDateString() };
            var inventoryItem2 = new InventoryItemDto() { ModelDtok__BackingField = model1, SizeMk__BackingField = 11, SizeWk__BackingField = 9, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete1.Nicknamek__BackingField, Statusk__BackingField = Constants.ORDERED, ReceivedOnk__BackingField = new DateTime(2012, 2, 16, 11, 4, 23).ToShortDateString() };
            var inventoryItem3 = new InventoryItemDto() { ModelDtok__BackingField = model1, SizeMk__BackingField = 12, SizeWk__BackingField = 10, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete1.Nicknamek__BackingField, Statusk__BackingField = Constants.IN_STOCK, ReceivedOnk__BackingField = new DateTime(2012, 11, 26, 8, 16, 22).ToShortDateString() };
            var inventoryItem4 = new InventoryItemDto() { ModelDtok__BackingField = model1, SizeMk__BackingField = 12, SizeWk__BackingField = 10, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete2.Nicknamek__BackingField, Statusk__BackingField = Constants.DISTRIBUTED, ReceivedOnk__BackingField = new DateTime(2012, 12, 28, 15, 3, 13).ToShortDateString() };
            var inventoryItem5 = new InventoryItemDto() { ModelDtok__BackingField = model1, SizeMk__BackingField = 9, SizeWk__BackingField = 7, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete2.Nicknamek__BackingField, Statusk__BackingField = Constants.SURPLUSED, ReceivedOnk__BackingField = new DateTime(2012, 1, 12, 22, 49, 55).ToShortDateString() };
            var inventoryItem6 = new InventoryItemDto() { ModelDtok__BackingField = model2, SizeMk__BackingField = 11, SizeWk__BackingField = 9, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete2.Nicknamek__BackingField, Statusk__BackingField = Constants.RETURNED, ReceivedOnk__BackingField = new DateTime(2012, 9, 18, 10, 59, 31).ToShortDateString() };
            var inventoryItem7 = new InventoryItemDto() { ModelDtok__BackingField = model2, SizeMk__BackingField = 9, SizeWk__BackingField = 7, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete3.Nicknamek__BackingField, Statusk__BackingField = Constants.RECALLED, ReceivedOnk__BackingField = new DateTime(2012, 5, 21, 21, 45, 33).ToShortDateString() };
            var inventoryItem8 = new InventoryItemDto() { ModelDtok__BackingField = model2, SizeMk__BackingField = 12, SizeWk__BackingField = 10, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete3.Nicknamek__BackingField, Statusk__BackingField = Constants.RECORDED_AS_LOST, ReceivedOnk__BackingField = new DateTime(2012, 1, 19, 2, 50, 54).ToShortDateString() };
            var inventoryItem9 = new InventoryItemDto() { ModelDtok__BackingField = model2, SizeMk__BackingField = 9, SizeWk__BackingField = 7, Widthk__BackingField = "N", AthleteNicknamek__BackingField = athlete3.Nicknamek__BackingField, Statusk__BackingField = Constants.IN_STOCK, ReceivedOnk__BackingField = new DateTime(2012, 6, 3, 16, 58, 1).ToShortDateString() };

            athlete1.Inventoryk__BackingField.Add(inventoryItem1);
            athlete1.Inventoryk__BackingField.Add(inventoryItem2);
            athlete1.Inventoryk__BackingField.Add(inventoryItem3);
            athlete2.Inventoryk__BackingField.Add(inventoryItem4);
            athlete2.Inventoryk__BackingField.Add(inventoryItem5);
            athlete2.Inventoryk__BackingField.Add(inventoryItem6);
            athlete3.Inventoryk__BackingField.Add(inventoryItem7);
            athlete3.Inventoryk__BackingField.Add(inventoryItem8);
            athlete3.Inventoryk__BackingField.Add(inventoryItem9);

            _inventoryViewModel.MyAthletes = new ObservableCollection<AthleteDto>();
            _inventoryViewModel.MyAthletes.Add(athlete1);
            _inventoryViewModel.MyAthletes.Add(athlete2);
            _inventoryViewModel.MyAthletes.Add(athlete3);

            _inventoryViewModel.MyInventory.Add(inventoryItem1);
            _inventoryViewModel.MyInventory.Add(inventoryItem2);
            _inventoryViewModel.MyInventory.Add(inventoryItem3);
            _inventoryViewModel.MyInventory.Add(inventoryItem4);
            _inventoryViewModel.MyInventory.Add(inventoryItem5);
            _inventoryViewModel.MyInventory.Add(inventoryItem6);
            _inventoryViewModel.MyInventory.Add(inventoryItem7);
            _inventoryViewModel.MyInventory.Add(inventoryItem8);
            _inventoryViewModel.MyInventory.Add(inventoryItem9);

            _inventoryViewModel.ShowAllInventoryItems = true;
            _inventoryViewModel.ShowOnlyDefaultInventoryItems = false;

            _inventoryViewModel.FilterInventoryModel.SelectedAthlete = _inventoryViewModel.MyAthletes[0].Nicknamek__BackingField;

            _inventoryViewModel.FilterCommand.Execute(null);

            Assert.AreEqual(3, _inventoryViewModel.MyInventory.Count);

            _inventoryViewModel.SerialNumber = _inventoryViewModel.MyAthletes[0].Inventoryk__BackingField[0].SerialNumberk__BackingField;
            _inventoryViewModel.SelectedMovementType = Constants.DISTRIBUTE;

            inventoryItem1.Statusk__BackingField = Constants.DISTRIBUTED;
            _mockAppService.Setup(x => x.Distribute(It.IsAny<InventoryItemDto>(), It.IsAny<String>())).Returns(inventoryItem1);

            _inventoryViewModel.ProcessMovementCommand.Execute(null);

            Assert.AreEqual(3, _inventoryViewModel.MyInventory.Count);
        }