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)); }
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)); }
// 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()); }
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" })); }
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)); } }
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" })); }
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" })); }
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()); } }
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()); }
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)); }
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")); } }