internal IResult <AdditiveProduct> CreateAdditiveProduct(CreateAdditiveProductParameters parameters, DateTime timeStamp)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            var additiveType = _productUnitOfWork.AdditiveTypeRepository.FindByKey(parameters.AdditiveTypeKey);

            if (additiveType == null)
            {
                return(new InvalidResult <AdditiveProduct>(null, string.Format(UserMessages.AdditiveTypeNotFound, parameters.AdditiveTypeKey.KeyValue)));
            }

            var productResult = CreateProduct(parameters.Parameters, ProductTypeEnum.Additive);

            if (!productResult.Success)
            {
                return(productResult.ConvertTo((AdditiveProduct)null));
            }
            var product = productResult.ResultingObject;

            var additiveProduct = new AdditiveProduct
            {
                Id             = product.Id,
                AdditiveTypeId = parameters.AdditiveTypeKey.AdditiveTypeKey_AdditiveTypeId,

                Product = product
            };

            additiveProduct = _productUnitOfWork.AdditiveProductRepository.Add(additiveProduct);

            return(new SuccessResult <AdditiveProduct>(additiveProduct));
        }
Пример #2
0
        internal static void SetAdditiveType(this AdditiveProduct additiveProduct, IAdditiveTypeKey additiveTypeKey)
        {
            if (additiveProduct == null)
            {
                throw new ArgumentNullException("additiveProduct");
            }
            if (additiveTypeKey == null)
            {
                throw new ArgumentNullException("additiveTypeKey");
            }

            additiveProduct.AdditiveType   = null;
            additiveProduct.AdditiveTypeId = additiveTypeKey.AdditiveTypeKey_AdditiveTypeId;
        }
Пример #3
0
        internal static void AssertEqual(this AdditiveProduct additiveProduct, IInventoryProductReturn productReturn)
        {
            if (additiveProduct == null)
            {
                throw new ArgumentNullException("additiveProduct");
            }
            if (productReturn == null)
            {
                throw new ArgumentNullException("productReturn");
            }

            Assert.AreEqual(new ProductKey((IProductKey)additiveProduct).KeyValue, productReturn.ProductKey);
            Assert.AreEqual(additiveProduct.Product.Name, productReturn.ProductName);
            Assert.AreEqual(additiveProduct.Product.ProductType, productReturn.ProductType);
            Assert.AreEqual(additiveProduct.AdditiveType.Description, productReturn.ProductSubType);
        }
Пример #4
0
 public static string BuildKey(this AdditiveProduct additiveProduct)
 {
     return(new AdditiveProductKey(additiveProduct).ToString());
 }
Пример #5
0
 public static AdditiveProductKey GetKey(this AdditiveProduct additiveProduct)
 {
     return(new AdditiveProductKey(additiveProduct));
 }