Пример #1
0
        public IResult UpdateChileProduct(IUpdateChileProductParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            var parsedResults = parameters.ToParsedParameters();

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

            List <AdditiveTypeKey> deletedIngredients;
            var commandResult = new UpdateProductCommand(_productUnitOfWork).UpdateChileProduct(parsedResults.ResultingObject, _timeStamper.CurrentTimeStamp, out deletedIngredients);

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

            _productUnitOfWork.Commit();

            return(SyncParameters.Using(new SuccessResult(),
                                        new SyncProductParameters
            {
                ProductKey = commandResult.ResultingObject.ToProductKey(),
                DeletedIngredients = deletedIngredients
            }));
        }
Пример #2
0
 public IResult UpdateChileProduct(IUpdateChileProductParameters parameters)
 {
     try
     {
         return(_productServiceProvider.UpdateChileProduct(parameters));
     }
     catch (Exception ex)
     {
         _exceptionLogger.LogException(ex);
         return(new FailureResult <string>(null, ex.Message));
     }
 }
        internal static IResult <UpdateChileProductParameters> ToParsedParameters(this IUpdateChileProductParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            var baseResult = ToParsedParameters <UpdateChileProductParameters, IUpdateChileProductParameters>(parameters);

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

            var chileTypeKeyResult = KeyParserHelper.ParseResult <IChileTypeKey>(parameters.ChileTypeKey);

            if (!chileTypeKeyResult.Success)
            {
                return(chileTypeKeyResult.ConvertTo <UpdateChileProductParameters>());
            }

            var rangesResult = parameters.AttributeRanges.ToParsedParameters(r => r.ToParsedParameters());

            if (!rangesResult.Success)
            {
                return(rangesResult.ConvertTo <UpdateChileProductParameters>());
            }

            var ingredientsResult = parameters.Ingredients.ToParsedParameters(i => i.ToParsedParameters());

            if (!ingredientsResult.Success)
            {
                return(ingredientsResult.ConvertTo <UpdateChileProductParameters>());
            }

            baseResult.ResultingObject.ChileTypeKey    = chileTypeKeyResult.ResultingObject.ToChileTypeKey();
            baseResult.ResultingObject.AttributeRanges = rangesResult.ResultingObject;
            baseResult.ResultingObject.Ingredients     = ingredientsResult.ResultingObject;
            return(baseResult);
        }