internal IResult <PackagingProduct> UpdatePackagingProduct(UpdatePackagingProductParameters parameters, DateTime timeStamp)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            if (parameters.Parameters.Weight < 0)
            {
                return(new InvalidResult <PackagingProduct>(null, UserMessages.NegativeWeight));
            }

            if (parameters.Parameters.PackagingWeight < 0)
            {
                return(new InvalidResult <PackagingProduct>(null, UserMessages.NegativeWeight));
            }

            if (parameters.Parameters.PalletWeight < 0)
            {
                return(new InvalidResult <PackagingProduct>(null, UserMessages.NegativePalletWeight));
            }

            var packagingProduct = _productUnitOfWork.PackagingProductRepository.FindByKey(parameters.ProductKey, p => p.Product);

            if (packagingProduct == null)
            {
                return(new InvalidResult <PackagingProduct>(null, string.Format(UserMessages.PackagingProductNotFound, parameters.ProductKey.KeyValue)));
            }

            var update = UpdateProduct(packagingProduct.Product, parameters.Parameters);

            if (!update.Success)
            {
                return(update.ConvertTo <PackagingProduct>());
            }

            packagingProduct.Weight          = parameters.Parameters.Weight;
            packagingProduct.PackagingWeight = parameters.Parameters.PackagingWeight;
            packagingProduct.PalletWeight    = parameters.Parameters.PalletWeight;

            return(new SuccessResult <PackagingProduct>(packagingProduct));
        }
Beispiel #2
0
            public void Updates_tblPackaging_record_as_expected()
            {
                //Arrange
                var packaging = RVCUnitOfWork.PackagingProductRepository.FindBy(p => true, p => p.Product);

                if (packaging == null)
                {
                    Assert.Inconclusive("No suitable PackagingProduct to test.");
                }

                var parameters = new UpdatePackagingProductParameters
                {
                    UserToken       = TestUser.UserName,
                    ProductKey      = packaging.ToPackagingProductKey(),
                    ProductName     = "Test Packaging Product",
                    ProductCode     = packaging.Product.ProductCode,
                    Weight          = packaging.Weight,
                    PackagingWeight = packaging.PackagingWeight,
                    PalletWeight    = packaging.PalletWeight
                };

                //Act
                var result = Service.UpdatePackagingProduct(parameters);

                result.AssertSuccess();
                var resultString = GetKeyFromConsoleString(ConsoleOutput.SynchedTblPackaging);

                //Assert
                MockKillSwitch.Verify(k => k.Engage(), Times.Never());

                var pkgId = int.Parse(resultString);

                using (var oldContext = new RioAccessSQLEntities())
                {
                    var tblProduct = oldContext.tblPackagings.FirstOrDefault(p => p.PkgID == pkgId);
                    Assert.AreEqual(parameters.ProductName, tblProduct.Packaging);
                    Assert.AreEqual(int.Parse(parameters.ProductCode), tblProduct.PkgID);
                    Assert.AreEqual(parameters.Weight, tblProduct.NetWgt);
                    Assert.AreEqual(parameters.PackagingWeight, tblProduct.PkgWgt);
                    Assert.AreEqual(parameters.PalletWeight, tblProduct.PalletWgt);
                }
            }