internal IResult <AdditiveProduct> UpdateAdditiveProduct(UpdateAdditiveProductParameters parameters, DateTime timeStamp) { if (parameters == null) { throw new ArgumentNullException("parameters"); } var additiveProduct = _productUnitOfWork.AdditiveProductRepository.FindByKey(parameters.ProductKey, p => p.Product); if (additiveProduct == null) { return(new InvalidResult <AdditiveProduct>(null, string.Format(UserMessages.AdditiveProductNotFound, parameters.ProductKey.KeyValue))); } var additiveType = _productUnitOfWork.AdditiveTypeRepository.FindByKey(parameters.AdditiveTypeKey); if (additiveType == null) { return(new InvalidResult <AdditiveProduct>(null, string.Format(UserMessages.AdditiveTypeNotFound, parameters.AdditiveTypeKey.KeyValue))); } var update = UpdateProduct(additiveProduct.Product, parameters.Parameters); if (!update.Success) { return(update.ConvertTo <AdditiveProduct>()); } additiveProduct.AdditiveTypeId = additiveType.Id; return(new SuccessResult <AdditiveProduct>(additiveProduct)); }
public void Updates_tblProduct_record_as_expected() { //Arrange var additiveProduct = RVCUnitOfWork .AdditiveProductRepository .FindBy(a => true, c => c.Product); if (additiveProduct == null) { Assert.Inconclusive("No suitable AdditiveProduct to test."); } var parameters = new UpdateAdditiveProductParameters { UserToken = TestUser.UserName, ProductKey = additiveProduct.ToAdditiveProductKey(), AdditiveTypeKey = additiveProduct.ToAdditiveTypeKey(), ProductName = additiveProduct.Product.Name, ProductCode = additiveProduct.Product.ProductCode }; //Act var result = Service.UpdateAdditiveProduct(parameters); result.AssertSuccess(); var resultString = GetKeyFromConsoleString(ConsoleOutput.SynchedTblProduct); //Assert MockKillSwitch.Verify(k => k.Engage(), Times.Never()); var prodId = int.Parse(resultString); using (var oldContext = new RioAccessSQLEntities()) { var tblProduct = oldContext.tblProducts.FirstOrDefault(p => p.ProdID == prodId); Assert.AreEqual(parameters.ProductName, tblProduct.Product); Assert.AreEqual(int.Parse(parameters.ProductCode), tblProduct.ProdID); Assert.AreEqual(additiveProduct.AdditiveTypeId, tblProduct.IngrID); } }