Example #1
0
        internal static IResult <ReceiveInventoryItemParameters> ToParsedParameters(this IReceiveInventoryItemParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

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

            if (!packagingKeyResult.Success)
            {
                return(packagingKeyResult.ConvertTo <ReceiveInventoryItemParameters>());
            }

            var warehouseLocationKeyResult = KeyParserHelper.ParseResult <ILocationKey>(parameters.WarehouseLocationKey);

            if (!warehouseLocationKeyResult.Success)
            {
                return(warehouseLocationKeyResult.ConvertTo <ReceiveInventoryItemParameters>());
            }

            var inventoryTreatmentKeyResult = KeyParserHelper.ParseResult <IInventoryTreatmentKey>(parameters.TreatmentKey);

            if (!inventoryTreatmentKeyResult.Success)
            {
                return(inventoryTreatmentKeyResult.ConvertTo <ReceiveInventoryItemParameters>());
            }

            return(new SuccessResult <ReceiveInventoryItemParameters>(new ReceiveInventoryItemParameters
            {
                Parameters = parameters,
                PackagingProductKey = new PackagingProductKey(packagingKeyResult.ResultingObject),
                LocationKey = new LocationKey(warehouseLocationKeyResult.ResultingObject),
                TreatmentKey = new InventoryTreatmentKey(inventoryTreatmentKeyResult.ResultingObject)
            }));
        }
        internal static bool IsAsExpected(this IReceiveInventoryItemParameters parameters, Inventory inventory)
        {
            if (parameters.Quantity != inventory.Quantity)
            {
                return(false);
            }

            if (parameters.PackagingProductKey != new PackagingProductKey(inventory).KeyValue)
            {
                return(false);
            }

            if (parameters.WarehouseLocationKey != new LocationKey(inventory).KeyValue)
            {
                return(false);
            }

            if (parameters.TreatmentKey != new InventoryTreatmentKey(inventory).KeyValue)
            {
                return(false);
            }

            return(parameters.ToteKey == inventory.ToteKey);
        }