Ejemplo n.º 1
0
        public IResult UpdateSalesOrder(IUpdateSalesOrderParameters parameters)
        {
            var parsedParametersResult = parameters.ToParsedParameters();

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

            var updateResult = new UpdateSalesOrderConductor(_inventoryShipmentOrderUnitOfWork).Execute(_timeStamper.CurrentTimeStamp, parsedParametersResult.ResultingObject);

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

            _inventoryShipmentOrderUnitOfWork.Commit();

            var salesOrderKey = updateResult.ResultingObject.ToSalesOrderKey();

            return(SyncParameters.Using(new SuccessResult <string>(salesOrderKey), new SyncSalesOrderParameters
            {
                SalesOrderKey = salesOrderKey,
                New = false
            }));
        }
Ejemplo n.º 2
0
 public IResult UpdateSalesOrder(IUpdateSalesOrderParameters parameters)
 {
     try
     {
         return(_salesServiceProvider.UpdateSalesOrder(parameters));
     }
     catch (Exception ex)
     {
         ex = ex.GetBaseException();
         _exceptionLogger.LogException(ex);
         return(new FailureResult(ex.Message));
     }
 }
        internal static IResult <UpdateSalesOrderCommandParameters> ToParsedParameters(this IUpdateSalesOrderParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            var customerOrderKeyResult = KeyParserHelper.ParseResult <ISalesOrderKey>(parameters.SalesOrderKey);

            if (!customerOrderKeyResult.Success)
            {
                return(customerOrderKeyResult.ConvertTo <UpdateSalesOrderCommandParameters>());
            }

            var facilityKeyResult = KeyParserHelper.ParseResult <IFacilityKey>(parameters.FacilitySourceKey);

            if (!facilityKeyResult.Success)
            {
                return(facilityKeyResult.ConvertTo <UpdateSalesOrderCommandParameters>());
            }

            ICompanyKey brokerKey = null;

            if (!string.IsNullOrWhiteSpace(parameters.BrokerKey))
            {
                var brokerKeyResult = KeyParserHelper.ParseResult <ICompanyKey>(parameters.BrokerKey);
                if (!brokerKeyResult.Success)
                {
                    return(brokerKeyResult.ConvertTo <UpdateSalesOrderCommandParameters>());
                }
                brokerKey = brokerKeyResult.ResultingObject;
            }

            var orderItemsResult = parameters.PickOrderItems == null ? null : parameters.PickOrderItems.ToParsedParametersList();

            if (orderItemsResult != null && !orderItemsResult.Success)
            {
                return(orderItemsResult.ConvertTo <UpdateSalesOrderCommandParameters>());
            }

            return(new SuccessResult().ConvertTo(new UpdateSalesOrderCommandParameters
            {
                UpdateParameters = parameters,
                SalesOrderKey = customerOrderKeyResult.ResultingObject.ToSalesOrderKey(),
                BrokerKey = brokerKey == null ? null : brokerKey.ToCompanyKey(),
                ShipFromFacilityKey = facilityKeyResult.ResultingObject.ToFacilityKey(),
                OrderItems = orderItemsResult == null ? null : orderItemsResult.ResultingObject
            }));
        }