示例#1
0
        public IHttpActionResult Create([FromBody] LabelIngredientRequest req)
        {
            var ingredientName = req.IngredientName;
            var assignLabel    = req.AssignLabel;

            using (FFDBContext db = new FFDBContext())
            {
                string userID = User.Identity.GetUserId();
                if (userID != null)
                {
                    int ingredientID = db.LabelledIngredients.Where(s => s.Name == ingredientName).Select(s => s.ID).FirstOrDefault();
                    if (ingredientID == 0)
                    {
                        LabelledIngredient labelIngredient = new LabelledIngredient {
                            Name = ingredientName
                        };
                        try
                        {
                            db.LabelledIngredients.Add(labelIngredient);
                            db.SaveChanges();
                            ingredientID = labelIngredient.ID;
                        }
                        catch
                        {
                            var jsonData_failed_ingredient_add = new JsonResponse
                            {
                                success  = false,
                                message  = "Ingredient not added to database",
                                redirect = false
                            };


                            return(Ok(jsonData_failed_ingredient_add));
                        }
                    }
                    if (db.UserIngredients.Where(s => s.LabelledIngredientID == ingredientID && s.userID == userID).Count() > 0)
                    {
                        var existingRecord = db.UserIngredients.FirstOrDefault(s => s.LabelledIngredientID == ingredientID && s.userID == userID);
                        existingRecord.Label = assignLabel;
                        db.SaveChanges();
                        var jsonData_edit_record = new JsonResponse
                        {
                            success  = true,
                            message  = "Label has been changed in the record",
                            redirect = false
                        };

                        return(Ok(jsonData_edit_record));
                    }
                    else
                    {
                        UserIngredient userIng = new UserIngredient(userID, assignLabel, ingredientID);
                        try
                        {
                            db.UserIngredients.Add(userIng);
                            db.SaveChanges();
                            var jsonData_success = new JsonResponse
                            {
                                success  = true,
                                message  = "Label has been saved.",
                                redirect = false
                            };

                            return(Ok(jsonData_success));
                        }
                        catch (Exception e)
                        {
                            var jsonData_fail = new JsonResponse
                            {
                                success  = false,
                                message  = $"Something went wrong: {e.InnerException.InnerException.Message}",
                                redirect = false
                            };

                            return(Ok(jsonData_fail));
                        }
                    }
                }

                var jsonData3 = new JsonResponse
                {
                    success  = false,
                    message  = "User not logged in.",
                    redirect = true
                };

                return(Ok(jsonData3));
            }
        }
示例#2
0
        //[ValidateAntiForgeryToken]
        public ContentResult Create(string assignLabel, string ingredientName)
        {
            string userID = User.Identity.GetUserId();

            if (userID != null)
            {
                int ingredientID = db.LabelledIngredients.Where(s => s.Name == ingredientName).Select(s => s.ID).FirstOrDefault();
                if (ingredientID == 0)
                {
                    LabelledIngredient labelIngredient = new LabelledIngredient();
                    labelIngredient.Name = ingredientName;
                    try
                    {
                        db.LabelledIngredients.Add(labelIngredient);
                        db.SaveChanges();
                        ingredientID = labelIngredient.ID;
                    }
                    catch
                    {
                        var jsonData_failed_ingredient_add = new
                        {
                            success  = false,
                            message  = "Ingredient not added to database",
                            redirect = false
                        };

                        var result = JObject.FromObject(jsonData_failed_ingredient_add);
                        return(Content(result.ToString(), "Application/json"));
                    }
                }
                if (db.UserIngredients.Where(s => s.LabelledIngredientID == ingredientID && s.userID == userID).Count() > 0)
                {
                    var existingRecord = db.UserIngredients.FirstOrDefault(s => s.LabelledIngredientID == ingredientID && s.userID == userID);
                    existingRecord.Label = assignLabel;
                    db.SaveChanges();
                    var jsonData_edit_record = new
                    {
                        success  = true,
                        message  = "Label has been changed in the record",
                        redirect = false
                    };

                    var result = JObject.FromObject(jsonData_edit_record);
                    return(Content(result.ToString(), "Application/json"));
                }
                else
                {
                    UserIngredient userIng = new UserIngredient(userID, assignLabel, ingredientID);
                    try
                    {
                        db.UserIngredients.Add(userIng);
                        db.SaveChanges();
                        var jsonData_success = new
                        {
                            success  = true,
                            message  = "Label has been saved.",
                            redirect = false
                        };

                        var result = JObject.FromObject(jsonData_success);
                        return(Content(result.ToString(), "Application/json"));
                    }
                    catch
                    {
                        var jsonData_fail = new
                        {
                            success  = false,
                            message  = "Something went wrong",
                            redirect = false
                        };

                        var result2 = JObject.FromObject(jsonData_fail);
                        return(Content(result2.ToString(), "Application/json"));
                    }
                }
            }

            var jsonData3 = new
            {
                success  = false,
                message  = "User not logged in.",
                redirect = true
            };

            var result3 = JObject.FromObject(jsonData3);

            return(Content(result3.ToString(), "Application/json"));
        }