Ejemplo n.º 1
0
 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());
     }
 }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
 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));
 }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
        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));
        }
Ejemplo n.º 10
0
        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));
        }
Ejemplo n.º 11
0
        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));
        }
Ejemplo n.º 12
0
        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));
        }