Exemple #1
0
        internal static IResult <SetChileMaterialsReceivedItemParameters> ToParsedParameters(this IUpdateChileMaterialsReceivedItemParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            if (parameters.Quantity <= 0)
            {
                return(new InvalidResult <SetChileMaterialsReceivedItemParameters>(null, UserMessages.QuantityNotGreaterThanZero));
            }

            var toteKeyResult = ToteKeyParser.Parse(parameters.ToteKey);

            if (!toteKeyResult.Success)
            {
                return(toteKeyResult.ConvertTo <SetChileMaterialsReceivedItemParameters>());
            }

            ChileMaterialsReceivedItemKey itemKey = null;

            if (!string.IsNullOrWhiteSpace(parameters.ItemKey))
            {
                var itemKeyResult = KeyParserHelper.ParseResult <IChileMaterialsReceivedItemKey>(parameters.ItemKey);
                if (!itemKeyResult.Success)
                {
                    return(itemKeyResult.ConvertTo <SetChileMaterialsReceivedItemParameters>());
                }

                itemKey = itemKeyResult.ResultingObject.ToChileMaterialsReceivedItemKey();
            }

            var packagingProductKeyResult = KeyParserHelper.ParseResult <IPackagingProductKey>(parameters.PackagingProductKey);

            if (!packagingProductKeyResult.Success)
            {
                return(packagingProductKeyResult.ConvertTo <SetChileMaterialsReceivedItemParameters>());
            }

            var locationKeyResult = KeyParserHelper.ParseResult <ILocationKey>(parameters.LocationKey);

            if (!locationKeyResult.Success)
            {
                return(locationKeyResult.ConvertTo <SetChileMaterialsReceivedItemParameters>());
            }

            return(new SuccessResult <SetChileMaterialsReceivedItemParameters>(new SetChileMaterialsReceivedItemParameters
            {
                GrowerCode = parameters.GrowerCode,
                ToteKey = toteKeyResult.ResultingObject,
                ChileVariety = parameters.Variety,
                Quantity = parameters.Quantity,

                ItemKey = itemKey,
                PackagingProductKey = packagingProductKeyResult.ResultingObject.ToPackagingProductKey(),
                LocationKey = locationKeyResult.ResultingObject.ToLocationKey()
            }));
        }
            public void Returns_detail_with_Item_collection_as_expected_on_success()
            {
                //Arrange
                const int expectedItems        = 3;
                var       materialsReceivedKey = new LotKey(TestHelper.CreateObjectGraphAndInsertIntoDatabase <ChileMaterialsReceived>(d => d.Items = null, d => d.ChileLot.Lot.EmptyLot()));
                var       itemKey0             = new ChileMaterialsReceivedItemKey(TestHelper.CreateObjectGraphAndInsertIntoDatabase <ChileMaterialsReceivedItem>(i => i.ConstrainByKeys(materialsReceivedKey)));
                var       itemKey1             = new ChileMaterialsReceivedItemKey(TestHelper.CreateObjectGraphAndInsertIntoDatabase <ChileMaterialsReceivedItem>(i => i.ConstrainByKeys(materialsReceivedKey)));
                var       itemKey2             = new ChileMaterialsReceivedItemKey(TestHelper.CreateObjectGraphAndInsertIntoDatabase <ChileMaterialsReceivedItem>(i => i.ConstrainByKeys(materialsReceivedKey)));

                //Act
                var result = Service.GetChileMaterialsReceivedDetail(materialsReceivedKey.KeyValue);

                //Assert
                result.AssertSuccess();
                var items = result.ResultingObject.Items.ToList();

                Assert.AreEqual(expectedItems, items.Count);
                Assert.IsNotNull(items.Single(i => i.ItemKey == itemKey0.KeyValue));
                Assert.IsNotNull(items.Single(i => i.ItemKey == itemKey1.KeyValue));
                Assert.IsNotNull(items.Single(i => i.ItemKey == itemKey2.KeyValue));
            }