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 })); }
public IResult <string> CreateChileProduct(ICreateChileProductParameters parameters) { try { return(_productServiceProvider.CreateChileProduct(parameters)); } catch (Exception ex) { _exceptionLogger.LogException(ex); return(new FailureResult <string>(null, ex.Message)); } }
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 })); }