示例#1
0
        public IResult UpdateAdditiveProduct(IUpdateAdditiveProductParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            var parsedResults = parameters.ToParsedParameters();

            if (!parsedResults.Success)
            {
                return(parsedResults.ConvertTo <string>());
            }

            var commandResult = new UpdateProductCommand(_productUnitOfWork).UpdateAdditiveProduct(parsedResults.ResultingObject, _timeStamper.CurrentTimeStamp);

            if (!commandResult.Success)
            {
                return(commandResult.ConvertTo <string>());
            }

            _productUnitOfWork.Commit();

            return(SyncParameters.Using(new SuccessResult <string>(commandResult.ResultingObject.ToAdditiveProductKey()),
                                        new SyncProductParameters
            {
                ProductKey = commandResult.ResultingObject.ToProductKey()
            }));
        }
示例#2
0
 public IResult UpdateAdditiveProduct(IUpdateAdditiveProductParameters parameters)
 {
     try
     {
         return(_productServiceProvider.UpdateAdditiveProduct(parameters));
     }
     catch (Exception ex)
     {
         _exceptionLogger.LogException(ex);
         return(new FailureResult <string>(null, ex.Message));
     }
 }
        internal static IResult <UpdateAdditiveProductParameters> ToParsedParameters(this IUpdateAdditiveProductParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            var baseResult = ToParsedParameters <UpdateAdditiveProductParameters, IUpdateAdditiveProductParameters>(parameters);

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

            var additiveTypeKeyResult = KeyParserHelper.ParseResult <IAdditiveTypeKey>(parameters.AdditiveTypeKey);

            if (!additiveTypeKeyResult.Success)
            {
                return(additiveTypeKeyResult.ConvertTo <UpdateAdditiveProductParameters>());
            }

            baseResult.ResultingObject.AdditiveTypeKey = additiveTypeKeyResult.ResultingObject.ToAdditiveTypeKey();
            return(baseResult);
        }