Esempio n. 1
0
        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
            }));
        }