Exemplo n.º 1
0
        public ActionResult New()
        {
            int newRecipeIdentifier = 0;

            using (RecipesMVC.Models.EF_DB.RecipesAppEntities entities = new Models.EF_DB.RecipesAppEntities())
            {
                var      RecipesTable = entities.Set <RecipesMVC.Models.EF_DB.Recipe>();
                DateTime uploadDT     = DateTime.Now;

                /*var lastSub = (from re in entities.Recipes orderby re.ID ascending select re);
                 * var last = lastSub.AsEnumerable().ToArray()[lastSub.AsEnumerable().ToArray().Count()-1];
                 * int NewID = last.ID += 1;*/
                var newRecipe = (new Models.EF_DB.Recipe
                {
                    UserID = (from u in entities.Users where u.UserName == User.Identity.Name select u.ID).First(),
                    publicStatus = false,
                    UploadedAt = DateTime.Now
                });
                RecipesTable.Add(newRecipe);
                entities.SaveChanges();
                var newRecipeSub = (from re in entities.Recipes orderby re.ID ascending select re);
                newRecipe           = newRecipeSub.ToArray().Last();
                newRecipeIdentifier = newRecipe.ID;
            }
            return(Redirect("~/Recipes/Edit/" + newRecipeIdentifier));
        }
Exemplo n.º 2
0
 public ActionResult ResetV(ResetVModel m)
 {
     if (m.id != null && m.pass != null && (m.pass == m.pass0))
     {
         using (RecipesMVC.Models.EF_DB.RecipesAppEntities entities = new Models.EF_DB.RecipesAppEntities())
         {
             if (entities.Users.Any(u => u.ResetGUID == m.id))
             {
                 if (entities.Users.Any(u => u.ResetGUID == m.id && u.Password == m.pass))
                 {
                     return(Json(new { Message = "ERROR", Error = "SameAsOld" }, JsonRequestBehavior.AllowGet));
                 }
                 var user = (from u in entities.Users where u.ResetGUID == m.id select u).FirstOrDefault();
                 user.ResetGUID    = null;
                 user.ResetGUIDexp = null;
                 user.Password     = m.pass;
                 entities.SaveChanges();
                 entities.Dispose();
                 return(Json(new { Message = "SUCCESS" }, JsonRequestBehavior.AllowGet));
             }
             else
             {
                 return(Json(new { Message = "ERROR", Error = "FalseCode" }, JsonRequestBehavior.AllowGet));
             }
         }
     }
     return(Json(new { Message = "ERROR", Error = "NotSame" }, JsonRequestBehavior.AllowGet));
 }
Exemplo n.º 3
0
 // GET: Recipes
 public ActionResult Index()
 {
     using (RecipesMVC.Models.EF_DB.RecipesAppEntities entities = new Models.EF_DB.RecipesAppEntities())
     {
         ViewBag.Categories = (from c in entities.Categories select c.Name).ToList();
     }
     return(View());
 }
Exemplo n.º 4
0
 public ActionResult Rate(RecipesMVC.Models.RateModel rate)
 {
     if ((rate.Score.HasValue || rate.CommTitle != null || rate.CommBody != null) && rate.Recipe != null)
     {
         using (Models.EF_DB.RecipesAppEntities entities = new Models.EF_DB.RecipesAppEntities())
         {
             try
             {
                 Models.EF_DB.Rating NewRating;
                 var currUser   = (from u in entities.Users where u.UserName == User.Identity.Name select u).First();
                 var currRecipe = from re in entities.Recipes where re.RouteURL == rate.Recipe select re;
                 if (entities.Ratings.Any(ra => ra.UserID == currUser.ID && ra.Recipe_ID == currRecipe.FirstOrDefault().ID)) //if user already responded
                 {
                     NewRating = (from ra in entities.Ratings where ra.UserID == currUser.ID && ra.Recipe_ID == currRecipe.FirstOrDefault().ID select ra).First();
                     if (rate.CommTitle != null || rate.CommBody != null)
                     {
                         NewRating.Title   = rate.CommTitle;
                         NewRating.Comment = rate.CommBody;
                     }
                     else if (rate.Score.HasValue)
                     {
                         NewRating.Starts = rate.Score.Value;
                     }
                 }
                 else //if user didn't respond
                 {
                     NewRating = new Models.EF_DB.Rating()
                     {
                         Recipe_ID = currRecipe.First().ID,
                         Starts    = rate.Score.Value,
                         UserID    = currUser.ID,
                         UserName  = User.Identity.Name
                     };
                     var ratings = entities.Set <Models.EF_DB.Rating>();
                     ratings.Add(NewRating);
                 }
                 entities.SaveChanges();
                 return(Json(new { Message = "SUCCESS" }, JsonRequestBehavior.AllowGet));
             }
             catch (InvalidOperationException)
             {
                 return(Json(new { Message = "Error", Error = "RecipeNotFound" }));
             }
         }
     }
     return(Json(new { Message = "ERROR", Error = "SimpleInvalid" }));
 }
Exemplo n.º 5
0
 public ActionResult Change(RecipesMVC.Models.EF_DB.User m)
 {
     if (m.Email != null && m.UserName != null && m.BirthDay.HasValue)
     {
         var entities = new Models.EF_DB.RecipesAppEntities();
         var user     = (from u in entities.Users where u.UserName == User.Identity.Name select u).First();
         user.UserName  = m.UserName;
         user.Email     = m.Email;
         user.BirthDay  = m.BirthDay;
         user.FirstName = m.FirstName;
         entities.SaveChanges();
         entities.Dispose();
         return(Json(new { Message = "SUCCESS" }, JsonRequestBehavior.AllowGet));
     }
     else
     {
         return(Json(new { Message = "Error", Error = "InfoNotFull" }, JsonRequestBehavior.AllowGet));
     }
 }
Exemplo n.º 6
0
        public ActionResult Index(ConfigurationModel m)
        {
            var entities = new Models.EF_DB.RecipesAppEntities();

            if (m.SmtpEnabled)
            {
                if (m.Smtp.Password != null && m.Smtp.User != null && m.Smtp.Server != null)
                {
                    ConfigurationManager.AppSettings["SmtpUser"]     = m.Smtp.User;
                    ConfigurationManager.AppSettings["SmtpPassword"] = m.Smtp.Password;
                    ConfigurationManager.AppSettings["SmtpServer"]   = m.Smtp.Server;
                    ConfigurationManager.AppSettings["SmtpEnabled"]  = m.SmtpEnabled.ToString();
                }
            }
            ConfigurationManager.AppSettings["SmtpUser"] = m.DarkMode.ToString();
            ConfigurationManager.AppSettings["SmtpUser"] = m.FontFamily;
            ConfigurationManager.AppSettings["SmtpUser"] = m.SiteName;
            entities.Dispose();
            return(Json(new { Message = "Error" }));
        }
Exemplo n.º 7
0
 public ActionResult Login(LoginModel Credentials)
 {
     if (Credentials.LoginUser != null && Credentials.LoginPwd != null)
     {
         List <string> ValidateNo = new List <string>();
         ValidateNo.Add("\'");
         ValidateNo.Add("\"");
         ValidateNo.Add("=");
         ValidateNo.Add("+");
         ValidateNo.Add("--");
         if (Credentials.LoginPwd.Any(word => Credentials.LoginUser.Contains(word)))
         {
             if (Credentials.LoginPwd.Any(word => Credentials.LoginPwd.Contains(word)))
             {
                 using (RecipesMVC.Models.EF_DB.RecipesAppEntities entities = new Models.EF_DB.RecipesAppEntities())
                 {
                     var SubQuery = (from u in entities.Users where (u.UserName == Credentials.LoginUser && u.Password == Credentials.LoginPwd) select u);
                     try
                     {
                         var query = SubQuery.First();
                         if (query != null)
                         {
                             FormsAuthentication.SetAuthCookie(query.UserName, Credentials.RememberMe);
                             return(Json(new { Message = "SUCCESS" }, JsonRequestBehavior.AllowGet));
                         }
                         else
                         {
                             return(Json(new { Message = "ERROR", Error = "Credentials" }, JsonRequestBehavior.AllowGet));
                         }
                     }
                     catch (InvalidOperationException) //= The row doesn't exist.
                     {
                         return(Json(new { Message = "ERROR", Error = "Credentials" }, JsonRequestBehavior.AllowGet));
                     }
                 }
             }
         }
         return(Json(new { Message = "ERROR", Error = "InvalidChars" }, JsonRequestBehavior.AllowGet));
     }
     return(Json(new { Message = "ERROR", Error = "Null" }));
 }
Exemplo n.º 8
0
 public ActionResult ResetV(string id)
 {
     if (id != null)
     {
         using (RecipesMVC.Models.EF_DB.RecipesAppEntities entities = new Models.EF_DB.RecipesAppEntities())
         {
             if (entities.Users.Any(u => u.ResetGUID == id))
             {
                 return(View());
             }
             else
             {
                 return(HttpNotFound());
             }
         }
     }
     else
     {
         return(HttpNotFound());
     }
 }
Exemplo n.º 9
0
        public ActionResult Edit(int id)
        {
            using (RecipesMVC.Models.EF_DB.RecipesAppEntities entities = new Models.EF_DB.RecipesAppEntities())
            {
                if (entities.Recipes.Any(re => re.ID == id))
                {
                    var RecipeToEdit = (from re in entities.Recipes where re.ID == id select re).First();
                    ViewBag.Categories        = (from c in entities.Categories select c).ToArray();
                    ViewBag.AlreayCategorised = RecipeToEdit.Category != null;
                    if (RecipeToEdit.CategoryID.HasValue)
                    {
                        ViewBag.CategoryName = RecipeToEdit.Category.Name;
                    }
                    else
                    {
                        ViewBag.CategoryName = null;
                    }

                    return(View(RecipeToEdit));
                }
            }
            return(HttpNotFound());
        }
Exemplo n.º 10
0
 public ActionResult Edit(RecipesMVC.Models.EF_DB.Recipe edited)
 {
     if (edited.Title != null)
     {
         if (Regex.IsMatch(edited.Title, @"^[A-Za-z\u0590-\u05fe.\-_, ]+$"))
         {
             string RouteURLbyTitle = edited.Title.Replace(" ", String.Empty).Replace("_", String.Empty).Replace(".", String.Empty).Replace("-", String.Empty);
             if (edited.publicStatus.HasValue)
             {
                 if (edited.Instructions != null && edited.Ingredients != null)
                 {
                     if (edited.Ingredients.Split(';').Length > 2 && edited.Instructions.Split(';').Length > 2)
                     {
                         if (edited.RecipeYield.HasValue)
                         {
                             if (edited.TotalTime.HasValue)
                             {
                                 RecipesMVC.Models.EF_DB.RecipesAppEntities entities = new Models.EF_DB.RecipesAppEntities();
                                 if (entities.Recipes.Any(re => re.ID == edited.ID))
                                 {
                                     var recipe = (from re in entities.Recipes where re.ID == edited.ID select re).First();
                                     recipe.Title        = edited.Title;
                                     recipe.Description  = edited.Description;
                                     recipe.publicStatus = edited.publicStatus;
                                     recipe.Ingredients  = edited.Ingredients;
                                     recipe.Instructions = edited.Instructions;
                                     recipe.CategoryID   = edited.CategoryID;
                                     recipe.RecipeYield  = edited.RecipeYield;
                                     recipe.TotalTime    = edited.TotalTime;
                                     if (!(recipe.RouteURL != null))
                                     {
                                         recipe.RouteURL = RouteURLbyTitle;
                                     }
                                     //Next Version: Image Upload.
                                 }
                                 else
                                 {
                                     entities.Dispose();
                                     return(Json(new { Message = "ERROR" }, JsonRequestBehavior.AllowGet));
                                 }
                                 //TODO: Add flag after entities object dispose()
                                 try
                                 {
                                     entities.SaveChanges();
                                     return(Json(new { Message = "SUCCESS" }, JsonRequestBehavior.AllowGet));
                                 }
                                 catch
                                 {
                                     System.Diagnostics.Debug.WriteLine("Entity Framework DataBase error.\n at RecipeController," +
                                                                        "Via Edit");
                                 }
                                 finally
                                 {
                                     entities.Dispose();
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     return(Json(new { Message = "ERROR" }, JsonRequestBehavior.AllowGet));
 }
Exemplo n.º 11
0
 public ActionResult Recipe(string id)
 {
     if (id != null)
     {
         using (RecipesMVC.Models.EF_DB.RecipesAppEntities entities = new Models.EF_DB.RecipesAppEntities())
         {
             //find Recipe
             try
             {
                 ViewBag.currUserID = 0;
                 //did the user already rated?
                 var recipes = (from r in entities.Recipes where (r.RouteURL == id) select r);
                 var recipe  = recipes.First();
                 if (User.Identity.IsAuthenticated)
                 {
                     int UserID = (from u in entities.Users where User.Identity.Name == u.UserName select u).First().ID;
                     ViewBag.currUserID  = UserID;
                     ViewBag.UserRate    = (from ra in entities.Ratings where ra.UserID == UserID && ra.Recipe_ID == recipe.ID select ra).FirstOrDefault();
                     ViewBag.SavedAlreay = false;
                     if (entities.Favorites.AsEnumerable().Any(f => f.Recipe == recipe && f.User.UserName == User.Identity.Name))
                     {
                         ViewBag.SavedAlreay = true;
                     }
                 }
                 if (recipe.publicStatus.Value)
                 {
                     //entities.Configuration.LazyLoadingEnabled = true;
                     ViewBag.ratings         = recipe.Ratings;
                     ViewBag.UploadedBy      = recipe.User.UserName;
                     ViewBag.IsCurrentWriter = recipe.User.UserName == User.Identity.Name;
                     float avg;
                     var   ratings = ViewBag.ratings as ICollection <RecipesMVC.Models.EF_DB.Rating>;
                     try
                     {
                         avg = ratings.Sum(rating => rating.Starts) / (recipe.Ratings.Count);
                     }
                     catch (DivideByZeroException)
                     {
                         avg = 0;
                     }
                     ViewBag.avgRatings = avg.ToString();
                     // ViewBag.PageDataSchema = GenerateRecipeSchema(recipe);
                     ViewBag.Category = recipe.Category;
                     return(View(recipe));
                 }
                 else
                 {
                     return(new HttpUnauthorizedResult());
                 }
             }
             catch (InvalidOperationException)
             {
                 return(HttpNotFound("The Recipe cannot be found. The URL my changed." +
                                     "Please Contact Site Manager for solving the problem, " +
                                     "if you think there has been mistake."));
             }
         }
     }
     else
     {
         return(Redirect("~/Recipes"));
     }
 }