コード例 #1
0
        public HomeViewModel GetAllPictures(string username)
        {
            var user1       = this.db.Users.FirstOrDefault(u => u.UserName == username);
            var followedIds = this.db.Followers.Where(f => f.UserId == user1.Id).Select(f => f.FollowedId).ToHashSet();

            followedIds.Add(user1.Id);
            var pictures = this.db.Pictures.Where(p => followedIds.Contains(p.OwnerId)).ToHashSet();
            var result   = new HashSet <IndexPicture>();

            foreach (var pic in pictures)
            {
                var userId   = this.db.Albums.FirstOrDefault(u => u.Id == pic.AlbumId).UserId;
                var user     = this.db.Users.FirstOrDefault(u => u.Id == userId);
                var comments = this.db.Comments.Where(c => c.PictureId == pic.Id).Select(c => new CommentIndex
                {
                    Id               = c.Id,
                    Content          = c.Content,
                    Name             = this.db.Users.FirstOrDefault(u => u.Id == c.UserId).Name,
                    UserProfileImage = this.db.Users.FirstOrDefault(u => u.Id == c.UserId).ProfilePicture == null ?
                                       null : String.Format("data:image/gif;base64,{0}", Convert.ToBase64String(this.db.Users.FirstOrDefault(u => u.Id == c.UserId).ProfilePicture)),
                    PublishDate          = c.PublishDate,
                    UserId               = c.UserId,
                    UserName             = this.db.Users.FirstOrDefault(u => u.Id == c.UserId).UserName,
                    PictureOwnerUserName = user.UserName,
                    PictureId            = c.PictureId
                }).ToList();
                var picture = new IndexPicture
                {
                    Name             = user.Name,
                    UserName         = user.UserName,
                    UserProfilePhoto = user.ProfilePicture == null ? null : String.Format("data:image/gif;base64,{0}", Convert.ToBase64String(user.ProfilePicture)),
                    Id          = pic.Id,
                    Description = pic.Description,
                    PublishDate = pic.PublishDate,
                    Comments    = comments,
                    UserId      = userId,
                    Photo       = pic.Photo == null ? null : String.Format("data:image/gif;base64,{0}", Convert.ToBase64String(pic.Photo))
                };
                result.Add(picture);
            }
            var home = new HomeViewModel
            {
                Pictures = result
            };

            return(home);
        }
コード例 #2
0
        public HashSet <IndexPicture> GetMyPictures(string id)
        {
            var albumsId = this.db.Albums.Where(a => a.UserId == id).Select(a => a.Id).ToList();
            var pictures = this.db.Pictures.Where(p => albumsId.Contains(p.AlbumId)).ToHashSet();
            var result   = new HashSet <IndexPicture>();

            foreach (var pic in pictures)
            {
                var userId   = this.db.Albums.FirstOrDefault(u => u.Id == pic.AlbumId).UserId;
                var user     = this.db.Users.FirstOrDefault(u => u.Id == userId);
                var comments = this.db.Comments.Where(c => c.PictureId == pic.Id).Select(c => new CommentIndex
                {
                    Id               = c.Id,
                    Content          = c.Content,
                    Name             = this.db.Users.FirstOrDefault(u => u.Id == c.UserId).Name,
                    UserProfileImage = this.db.Users.FirstOrDefault(u => u.Id == c.UserId).ProfilePicture == null ?
                                       null : String.Format("data:image/gif;base64,{0}", Convert.ToBase64String(this.db.Users.FirstOrDefault(u => u.Id == c.UserId).ProfilePicture)),
                    PublishDate          = c.PublishDate,
                    UserId               = c.UserId,
                    UserName             = this.db.Users.FirstOrDefault(u => u.Id == c.UserId).UserName,
                    PictureOwnerUserName = user.UserName,
                    PictureId            = c.PictureId
                }).ToList();
                var picture = new IndexPicture
                {
                    Name             = user.Name,
                    UserName         = user.UserName,
                    Id               = pic.Id,
                    Description      = pic.Description,
                    PublishDate      = pic.PublishDate,
                    Comments         = comments,
                    UserId           = userId,
                    UserProfilePhoto = user.ProfilePicture == null ? null : String.Format("data:image/gif;base64,{0}", Convert.ToBase64String(user.ProfilePicture)),
                    Photo            = pic.Photo == null ? null : String.Format("data:image/gif;base64,{0}", Convert.ToBase64String(pic.Photo))
                };
                result.Add(picture);
            }

            return(result);
        }