Ejemplo n.º 1
0
        public IResult <string> CreateChileProduct(ICreateChileProductParameters 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 CreateProductCommand(_productUnitOfWork).CreateChileProduct(parsedResults.ResultingObject, _timeStamper.CurrentTimeStamp, out deletedIngredients);

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

            _productUnitOfWork.Commit();

            return(SyncParameters.Using(new SuccessResult <string>(commandResult.ResultingObject.ToChileProductKey()),
                                        new SyncProductParameters
            {
                ProductKey = commandResult.ResultingObject.ToProductKey(),
                DeletedIngredients = deletedIngredients
            }));
        }
Ejemplo n.º 2
0
 public IResult <string> CreateChileProduct(ICreateChileProductParameters parameters)
 {
     try
     {
         return(_productServiceProvider.CreateChileProduct(parameters));
     }
     catch (Exception ex)
     {
         _exceptionLogger.LogException(ex);
         return(new FailureResult <string>(null, ex.Message));
     }
 }
Ejemplo n.º 3
0
        internal static IResult <CreateChileProductParameters> ToParsedParameters(this ICreateChileProductParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

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

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

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

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

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

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

            return(new SuccessResult().ConvertTo(new CreateChileProductParameters
            {
                Parameters = parameters,
                ChileTypeKey = chileTypeKeyResult.ResultingObject.ToChileTypeKey(),
                AttributeRanges = rangesResult.ResultingObject,
                Ingredients = ingredientsResult.ResultingObject
            }));
        }