public ActionResult ChangeSavedStatus(string id) { if (id != null) { //id is routeurl. var entities = new RecipesMVC.Models.EF_DB.RecipesAppEntities(); var currFitem = (from f in entities.Favorites where f.User.UserName == User.Identity.Name && f.Recipe.RouteURL == id select f).FirstOrDefault(); if (currFitem != null) { //then it's alreay written and needed to be changes. entities.Favorites.Remove(currFitem); } else { //let's add this! var fav = new RecipesMVC.Models.EF_DB.Favorite() { RecipeID = (from re in entities.Recipes where re.RouteURL == id select re.ID).First(), UserID = (from u in entities.Users where u.UserName == User.Identity.Name select u.ID).First() }; var favsTbl = entities.Set <RecipesMVC.Models.EF_DB.Favorite>(); favsTbl.Add(fav); } entities.SaveChanges(); entities.Dispose(); return(Json(new { Message = "SUCCESS" }, JsonRequestBehavior.AllowGet)); } else { return(HttpNotFound()); } }
public ActionResult Recipes() { var entities = new RecipesMVC.Models.EF_DB.RecipesAppEntities(); var modelInfo = (from r in entities.Recipes select r).ToList(); var model = new List <RecipeForManage>(); if (modelInfo.ToList().Count > 0) { foreach (var recipe in modelInfo.ToList().OrderByDescending(re => re.UploadedAt).ToList()) { var rToAdd = new RecipeForManage(); rToAdd.UploadedBy = recipe.User.UserName; if (recipe.CategoryID.HasValue) { rToAdd.Category = recipe.Category.Name; } rToAdd.Title = recipe.Title; if (recipe.UploadedAt.HasValue) { rToAdd.UploadedAt = recipe.UploadedAt.Value.ToString(); } rToAdd.PublicStatus = recipe.publicStatus.Value; rToAdd.ID = recipe.ID.ToString(); rToAdd.RouteURL = recipe.RouteURL; model.Add(rToAdd); } } entities.Dispose(); return(View(model)); }
public ActionResult Reset(ResetPwdModel m) { if (m.email != null) { if (IsValidEmail(m.email)) { using (var entities = new RecipesMVC.Models.EF_DB.RecipesAppEntities()) { if (entities.Users.Any(u => u.Email == m.email)) { //then.. email address valid. Guid verCode = Guid.NewGuid(); var CurrUser = (from u in entities.Users where u.Email == m.email select u).FirstOrDefault(); CurrUser.ResetGUID = verCode.ToString(); CurrUser.ResetGUIDexp = DateTime.Now.AddDays(1); entities.SaveChanges(); string[] emailInfo = new string[3]; emailInfo[0] = verCode.ToString(); emailInfo[1] = CurrUser.UserName; emailInfo[2] = Request.Url.Scheme + "://" + Request.Url.Host; RecipesMVC.Core.EmailMessaging msg = new Core.EmailMessaging(CurrUser.Email, Core.EmailMessaging.MessageType.ResetPassword, emailInfo); msg.SendAsyncAndDispose(); return(Json(new { Message = "SUCCESS" }, JsonRequestBehavior.AllowGet)); } } } } return(Json(new { Message = "ERROR" }, JsonRequestBehavior.AllowGet)); }
public ActionResult Index() { var entities = new RecipesMVC.Models.EF_DB.RecipesAppEntities(); var model = (from u in entities.Users where u.UserName == User.Identity.Name select u).First(); entities.Dispose(); return(View(model)); }
public ActionResult Users() { var entities = new RecipesMVC.Models.EF_DB.RecipesAppEntities(); var model = (from u in entities.Users select u).ToList(); entities.Dispose(); return(View(model)); }
public ActionResult ClearData() { var entities = new RecipesMVC.Models.EF_DB.RecipesAppEntities(); int uid = (from u in entities.Users where u.UserName == User.Identity.Name select u.ID).First(); entities.Database.ExecuteSqlCommand("DELETE FROM Ratings WHERE UserID=" + uid); entities.Database.ExecuteSqlCommand("DELETE FROM Favorites WHERE UserID=" + uid); entities.Database.ExecuteSqlCommand("DELETE FROM Recipes WHERE UserID=" + uid); entities.SaveChanges(); entities.Dispose(); return(Json(new { Message = "SUCCESS" }, JsonRequestBehavior.AllowGet)); }
public ActionResult Delete() { var entities = new RecipesMVC.Models.EF_DB.RecipesAppEntities(); var u = new RecipesMVC.Models.EF_DB.User { UserName = User.Identity.Name }; FormsAuthentication.SignOut(); entities.Users.Attach(u); entities.Users.Remove(u); entities.SaveChanges(); entities.Dispose(); return(Json(new { Message = "SUCCESS" }, JsonRequestBehavior.AllowGet)); }
public ActionResult ChangeRole(int id, string r) { var entities = new RecipesMVC.Models.EF_DB.RecipesAppEntities(); if (entities.Users.Any(u => u.ID == id && !u.Role.Contains("Admin"))) { var user = (from u in entities.Users where u.ID == id && !u.Role.Contains("Admin") select u).First(); user.Role = r; entities.SaveChanges(); entities.Dispose(); return(Json(new { Message = "SUCCESS" }, JsonRequestBehavior.AllowGet)); } entities.Dispose(); return(Json(new { Message = "ERROR", Error = "UserNotFound" }, JsonRequestBehavior.AllowGet)); }
public ActionResult DeleteUser(int id) { var entities = new RecipesMVC.Models.EF_DB.RecipesAppEntities(); if (entities.Users.Any(u => u.ID == id && !u.Role.Contains("Admin"))) { var u = new RecipesMVC.Models.EF_DB.User { ID = id }; entities.Users.Attach(u); entities.Users.Remove(u); entities.SaveChanges(); entities.Dispose(); return(Json(new { Message = "SUCCESS" }, JsonRequestBehavior.AllowGet)); } entities.Dispose(); return(Json(new { Message = "ERROR", Error = "UserNotFound" }, JsonRequestBehavior.AllowGet)); }
public ActionResult Saved() { var entities = new RecipesMVC.Models.EF_DB.RecipesAppEntities(); var Favorites = from f in entities.Favorites where f.User.UserName == User.Identity.Name && f.Recipe.publicStatus.Value orderby f.ID select f.Recipe; List <sRecipeFavorites> FavoritesArr = new List <sRecipeFavorites>(); foreach (var recipe in Favorites) { FavoritesArr.Add(new sRecipeFavorites() { Title = recipe.Title, CategoryName = recipe.Category.Name, UploadedBy = recipe.User.UserName, Time = recipe.TotalTime.Value.ToString("hh\\:mm"), RouteURL = recipe.RouteURL }); } entities.Dispose(); return(View(FavoritesArr)); }
public ActionResult ChangeRecipePublic(int id) { var entities = new RecipesMVC.Models.EF_DB.RecipesAppEntities(); if (entities.Recipes.Any(u => u.ID == id)) { var rec = (from re in entities.Recipes where re.ID == id select re).First(); if (rec.CategoryID.HasValue && rec.TotalTime.HasValue && rec.Title != null && rec.Ingredients.Contains(';') && rec.Instructions.Contains(';') && rec.KeyWords != null && rec.RecipeYield.HasValue) { rec.publicStatus = !rec.publicStatus.Value; entities.SaveChanges(); entities.Dispose(); return(Json(new { Message = "SUCCESS" }, JsonRequestBehavior.AllowGet)); } else { entities.Dispose(); return(Json(new { Message = "Error", Error = "InfoNotFull" }, JsonRequestBehavior.AllowGet)); } } return(Json(new { Message = "Error", Error = "RecipeNotFound" }, JsonRequestBehavior.AllowGet)); }
public ActionResult GetSearchResults(string s, string c, string u, string q) { //s => sort => orderby //c => category //u => username //q => query => is result contains value var entities = new RecipesMVC.Models.EF_DB.RecipesAppEntities(); IQueryable <Models.EF_DB.Recipe> SearchQ; if (!(s != null)) { s = "r"; } switch (s.ToLower()) //Get the rows sorted { case "d": //Date uploaded SearchQ = from re in entities.Recipes where re.publicStatus == true orderby re.UploadedAt descending select re; break; case "t": //total work Time SearchQ = from re in entities.Recipes where re.publicStatus == true orderby re.TotalTime ascending select re; break; default: //ratings SearchQ = from re in entities.Recipes where re.publicStatus == true orderby re.AvgRating descending select re; break; //TODO: Make that work properly! } if (q != null) { SearchQ = from si in SearchQ where si.Title.Contains(q) || si.Description.Contains(q) || si.Ingredients.Contains(q) select si; } if (c != null) //filter by category, if exists. if doesn't it becoms empty. { if (entities.Categories.Any(ca => ca.Name.ToLower() == c.ToLower())) //if category exists { SearchQ = from si in SearchQ where si.Category.Name == c.ToLower() select si; } else { SearchQ = null; } } if (u != null) { if (SearchQ != null) { SearchQ = from si in SearchQ where si.User.UserName == u select si; } } List <SearchItem> ResultArr = new List <SearchItem>(); if (SearchQ != null) { foreach (var item in SearchQ) { ResultArr.Add(new SearchItem() { Description = item.Description, Title = item.Title, RouteURL = item.RouteURL, image = item.MainImage, Time = item.TotalTime.Value.ToString("hh\\:mm"), rating = item.AvgRating, Category = item.Category.Name }); } } entities.Dispose(); return(Json(new { Message = "SUCCESS", SearchResult = ResultArr }, JsonRequestBehavior.AllowGet)); }