public IResult <string> CreateInventoryAdjustment(ICreateInventoryAdjustmentParameters parameters) { if (parameters == null) { throw new ArgumentNullException("parameters"); } var parseResult = parameters.ToParsedParameters(); if (!parseResult.Success) { return(parseResult.ConvertTo <string>()); } var createResult = new CreateInventoryAdjustmentConductor(_inventoryUnitOfWork).Execute(_timeStamper.CurrentTimeStamp, parseResult.ResultingObject); if (!createResult.Success) { return(createResult.ConvertTo <string>()); } _inventoryUnitOfWork.Commit(); var key = new InventoryAdjustmentKey(createResult.ResultingObject); return(SyncParameters.Using(new SuccessResult <string>(key), key)); }
public IResult <string> CreateInventoryAdjustment(ICreateInventoryAdjustmentParameters parameters) { try { return(_inventoryAdjustmentsProvider.CreateInventoryAdjustment(parameters)); } catch (Exception ex) { _exceptionLogger.LogException(ex); return(new FailureResult <string>(null, ex.Message)); } }
internal static IResult <CreateInventoryAdjustmentConductorParameters> ToParsedParameters(this ICreateInventoryAdjustmentParameters parameters) { if (parameters == null) { throw new ArgumentNullException("parameters"); } if (parameters.InventoryAdjustments == null || !parameters.InventoryAdjustments.Any()) { return(new InvalidResult <CreateInventoryAdjustmentConductorParameters>(null, UserMessages.InventoryAdjustmentItemsRequired)); } var parsedItems = new List <CreateInventoryAdjustmentItemCommandParameters>(); foreach (var adjustment in parameters.InventoryAdjustments) { var parsedItemResult = adjustment.ToParsedParameters(); if (!parsedItemResult.Success) { return(parsedItemResult.ConvertTo((CreateInventoryAdjustmentConductorParameters)null)); } parsedItems.Add(parsedItemResult.ResultingObject); } return(new SuccessResult <CreateInventoryAdjustmentConductorParameters>(new CreateInventoryAdjustmentConductorParameters { CreateInventoryAdjustmentParameters = parameters, Items = parsedItems })); }