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

            var orderKey = KeyParserHelper.ParseResult <ITreatmentOrderKey>(parameters.TreatmentOrderKey);

            if (!orderKey.Success)
            {
                return(orderKey.ConvertTo <ReceiveTreatmentOrderParameters>());
            }

            var locationKey = KeyParserHelper.ParseResult <ILocationKey>(parameters.DestinationLocationKey);

            if (!locationKey.Success)
            {
                return(locationKey.ConvertTo <ReceiveTreatmentOrderParameters>());
            }

            return(new SuccessResult <ReceiveTreatmentOrderParameters>(new ReceiveTreatmentOrderParameters
            {
                Parameters = parameters,
                TreatmentOrderKey = new TreatmentOrderKey(orderKey.ResultingObject),
                DestinationLocationKey = new LocationKey(locationKey.ResultingObject)
            }));
        }
Exemple #2
0
 public IResult ReceiveOrder(IReceiveTreatmentOrderParameters parameters)
 {
     try
     {
         return(_treatmentOrderServiceProvider.ReceiveOrder(parameters));
     }
     catch (Exception ex)
     {
         _exceptionLogger.LogException(ex);
         return(new FailureResult(ex.Message));
     }
 }
Exemple #3
0
        public IResult ReceiveOrder(IReceiveTreatmentOrderParameters parameters)
        {
            var parametersResult = parameters.ToParsedParameters();

            if (!parametersResult.Success)
            {
                return(parametersResult);
            }

            var receiveResult = new ReceiveTreatmentOrderConductor(_inventoryShipmentOrderUnitOfWork).Execute(_timeStamper.CurrentTimeStamp, parametersResult.ResultingObject);

            if (!receiveResult.Success)
            {
                return(receiveResult);
            }

            _inventoryShipmentOrderUnitOfWork.Commit();

            return(SyncParameters.Using(new SuccessResult(), parametersResult.ResultingObject.TreatmentOrderKey));
        }