示例#1
0
        public AddRecipeResponse AddRecipes(AddRecipeRequest request)
        {
            var response = new AddRecipeResponse();
            var recipe   = new Recipe
            {
                Title = request.model.Title
            };

            if (request.model.Ingredients != null && request.model.Ingredients.Count() > 0)
            {
                var items = new List <RecipeItem>();
                foreach (var item in request.model.Ingredients)
                {
                    var newItem = new RecipeItem
                    {
                        IngredientId = item.IngredientId,
                        Measure      = (Measure)item.Measure,
                        Quantity     = item.Quantity
                    };
                    items.Add(newItem);
                }
                recipe.Ingredients = items.AsEnumerable();
            }

            if (!recipe.isValid())
            {
                throw new BusinessRuleException("There was some errors", recipe.getBrokedRules());
            }

            _recipeRepository.Insert(recipe);
            _unitOfWork.Commit();

            response.recipe = recipe.ToRecipeViewModel();
            return(response);
        }
示例#2
0
        public async Task <IActionResult> AddRecipeAsync([FromBody] AddRecipeRequest request)
        {
            var recipe = await _mediator.Send(new AddRecipeCommand(
                                                  request.Name,
                                                  request.Products,
                                                  request.Description,
                                                  request.RecipeCategory,
                                                  request.RequiredTime,
                                                  request.LevelOfDifficulty
                                                  ));

            return(Created(string.Empty, recipe));
        }
        public HttpResponseMessage Add(AddRecipeRequest model)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState));
            }
            int rowsAffected = _service.AddRecipe(model);

            if (rowsAffected > 0)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, rowsAffected));
            }
            return(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState));
        }
        public void Should_Add_A_Recipe_Wit_Items_Successfully()
        {
            var recipe = new NewRecipeViewModel();

            recipe.Title = "Integration Recipe";

            var ingredients = new List <NewRecipeItemViewModel>()
            {
                new NewRecipeItemViewModel()
                {
                    IngredientId = Guid.Parse("FB1BCEE5-B3F2-443A-B14D-511C52C959EA"),
                    Measure      = MeasureViewModel.TSP,
                    Quantity     = 0.5
                }
            };

            recipe.Ingredients = ingredients.AsEnumerable();

            var request = new AddRecipeRequest()
            {
                model = recipe
            };
            var response = _recipeService.AddRecipes(request);
        }
示例#5
0
 public int AddRecipe(AddRecipeRequest data)
 {
     using (var conn = GetConnection())
     {
         var cmd = conn.CreateCommand();
         cmd.CommandText = "dbo.InsertUserRecipe";
         cmd.CommandType = CommandType.StoredProcedure;
         cmd.Parameters.AddWithValue("@UserId", data.UserId);
         cmd.Parameters.AddWithValue("@Title", data.Title);
         cmd.Parameters.AddWithValue("@Carbs", data.Carbs);
         cmd.Parameters.AddWithValue("@Calories", data.Calories);
         cmd.Parameters.AddWithValue("@Fat", data.Fat);
         cmd.Parameters.AddWithValue("@Protein", data.Protein);
         cmd.Parameters.AddWithValue("@ApiId", data.ApiId);
         var steps = new SqlParameter("@Steps", SqlDbType.Structured);
         if (data.Steps.Any())
         {
             steps.Value = new Data.Structured.NVarCharTable(data.Steps);
         }
         ;
         cmd.Parameters.Add(steps);
         return(cmd.ExecuteNonQuery());
     }
 }
 public void AddRecipe([FromBody] AddRecipeRequest addRecipeRequest)
 {
     _addRecipeHandler.Handle(addRecipeRequest);
 }