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