private ViewAlbumsModel GetViewableAlbums(string ownerId) { ViewAlbumsModel albums = new ViewAlbumsModel(); string viewerId = ""; if (User.Identity.IsAuthenticated) { viewerId = User.Identity.GetUserId(); } using (PixurfDBContext db = new PixurfDBContext()) { if (viewerId.IsNullOrWhiteSpace()) { //Only the public contents albums.Albums = db.Albums.Where(a => a.User_ID == ownerId && a.Access == "Public" && a.Status == 1).Include(a => a.Contents).Take(10).ToList(); } else { User viewer = db.Users.Find(viewerId); if (viewer != null) { if (viewer.Admin) { albums.Albums = db.Albums.Where(a => a.User_ID == ownerId).Include(a => a.Contents).Take(10).ToList(); } else if (viewer.User_ID == ownerId) { albums.Albums = db.Albums.Where(a => a.User_ID == ownerId && a.Status == 1).Include(a => a.Contents).Take(10).ToList(); } else { //Handle followers UserRelationship relationship = new UserRelationship(); if (relationship.Following(ownerId, viewerId)) { albums.Albums = db.Albums.Where(a => a.User_ID == ownerId && a.Status == 1 && (a.Access == "Public" || a.Access == "Follower")).Include(a => a.Contents).Take(10).ToList(); } else { albums.Albums = db.Albums .Where(a => a.User_ID == ownerId && a.Status == 1 && a.Access == "Public").Include(a => a.Contents).Take(10).ToList(); } } } } } return(albums); }
// GET: Index // Get All Albums // So Far Complete public ActionResult Index() { List <StatusReport> reports = new List <StatusReport>(); using (PixurfDBContext db = new PixurfDBContext()) { string uid = User.Identity.GetUserId(); User user = db.Users.Find(uid); if (user != null) { ViewAlbumsModel allAlbumsModelModel = new ViewAlbumsModel(); List <Album> albums = null; if (user.Admin) { albums = db.Albums.Where(a => a.User_ID == uid).Include(a => a.Contents).Take(10).ToList(); } else { albums = db.Albums.Where(a => a.User_ID == uid && a.Status == 1).Include(a => a.Contents) .Take(10).ToList(); } foreach (Album album in albums) { allAlbumsModelModel.Albums.Add(album); } if (reports.Count > 0) { Session["Reports"] = reports; } return(View(allAlbumsModelModel)); } } reports.Add(new StatusReport { Title = "Error !", Description = "User id not found.", Status = StatusReport.Danger }); Session["Reports"] = reports; return(RedirectToAction("Index", "Home")); }