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)); }