示例#1
0
        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);
        }
示例#2
0
        // 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"));
        }