示例#1
0
 public HttpResponseMessage Post(RecipeDetailsModel value)
 {
     if (ModelState.IsValid)
     {
         var id = ro.AddRecipe(value, User != null ? User.Identity.Name : "");
         var resp = new HttpResponseMessage(HttpStatusCode.Created);
         resp.Headers.Location = new Uri("/api/recipe/" + id.ToString(), UriKind.Relative);
         return resp;
     }
     else
     {
         return new HttpResponseMessage(HttpStatusCode.BadRequest);
     }
 }
示例#2
0
 public void UpdateRecipe(int id, RecipeDetailsModel updated, string editor)
 {
     using (var db = new RecipesEntities())
     {
         var dbRecipe = db.Recipes.FirstOrDefault(r => r.ID == id && r.Owner == editor);
         if (dbRecipe == null)
             return;
         dbRecipe.Name = updated.Name;
         dbRecipe.Summary = updated.Summary;
         dbRecipe.CookingTime = updated.CookingTimeInMinutes;
         dbRecipe.Ingredients = updated.Ingredients;
         dbRecipe.Instructions = updated.Instructions;
         db.SaveChanges();
     }
 }
示例#3
0
 public int AddRecipe(RecipeDetailsModel r, string owner)
 {
     using (var db = new RecipesEntities())
     {
         var toAdd = new Recipes
         {
             Name = r.Name,
             Summary = r.Summary,
             CookingTime = r.CookingTimeInMinutes,
             Ingredients = r.Ingredients,
             Instructions = r.Instructions,
             Owner = owner
         };
         db.Recipes.Add(toAdd);
         db.SaveChanges();
         return toAdd.ID;
     }
 }
示例#4
0
 public HttpResponseMessage Put(int id, RecipeDetailsModel value)
 {
     if (ModelState.IsValid)
     {
         if (ro.GetRecipe(id) != null)
         {
             ro.UpdateRecipe(id, value, User != null ? User.Identity.Name : "");
             return new HttpResponseMessage(HttpStatusCode.OK);
         }
         else
         {
             return new HttpResponseMessage(HttpStatusCode.NotFound);
         }
     }
     else
     {
         return new HttpResponseMessage(HttpStatusCode.BadRequest);
     }
 }
        public void PostSubmitAddsRecipeAndRedirectsCorrectly()
        {
            roStub.AddRecipe(null, null)
                .ReturnsForAnyArgs(42);
            var testModel = new RecipeDetailsModel();

            var result = sut.Submit(testModel) as RedirectToRouteResult;
            Assert.IsNotNull(result, "Result redirects");

            roStub.Received().AddRecipe(testModel, "");
            Assert.AreEqual(42, (int)result.RouteValues["id"], "Correct ID in redirect");
        }
        public void PostEditValidates()
        {
            var testModel = new RecipeDetailsModel();

            sut.ModelState.AddModelError("dummy", "error");
            var result = sut.Edit(1, testModel) as ViewResult;

            Assert.IsNotNull(result, "Get view result on error");
            Assert.AreSame(testModel, result.Model);

            roStub.DidNotReceive().UpdateRecipe(1, Arg.Any<RecipeDetailsModel>(), "");
        }
        public void PostEditUpdatesDetailsAndRedirects()
        {
            var testModel = new RecipeDetailsModel();

            var result = sut.Edit(13, testModel) as RedirectToRouteResult;
            Assert.IsNotNull(result, "Result redirects");

            roStub.Received().UpdateRecipe(13, testModel, ""); 
            Assert.AreEqual(13, (int)result.RouteValues["id"], "Correct ID in redirect");
        }