public _LikesViewModel(Guid targetId, Guid? userId, WtfLikes targetType) { Like like = null; ICollection<Like> likes = null; switch (targetType) { case WtfLikes.AlbumItem: var albumItem = DataService.PerThread.AlbumItemSet.SingleOrDefault(x => x.Id == targetId); if (albumItem == null) return; if (albumItem.Album.UserId.HasValue) IsAuthor = albumItem.Album.UserId.Value == userId; likes = albumItem.Likes; like = likes.SingleOrDefault(l => l.AlbumItemId == targetId && l.User.Id == userId); break; case WtfLikes.Content: var content = DataService.PerThread.ContentSet.SingleOrDefault(x => x.Id == targetId); if (content == null) return; if (content.AuthorId.HasValue) IsAuthor = content.AuthorId.Value == userId; likes = content.Likes; like = likes.SingleOrDefault(l => l.ContentId == targetId && l.User.Id == userId); break; case WtfLikes.Comment: var comment = DataService.PerThread.CommentSet.SingleOrDefault(x => x.Id == targetId); if (comment == null) return; IsAuthor = comment.UserId == userId; likes = comment.Likes; like = likes.SingleOrDefault(l => l.CommentId == targetId && l.User.Id == userId); break; } if (likes != null) { LikesCount = likes.Count(l => l.Value); DislikesCount = likes.Count(l => l.Value == false); } TargetId = targetId; TargetType = (byte)targetType; if (like != null) Vote = like.Value; }
public _LikesViewModel(Guid targetId, Guid?userId, WtfLikes targetType) { Like like = null; ICollection <Like> likes = null; switch (targetType) { case WtfLikes.AlbumItem: var albumItem = DataService.PerThread.AlbumItemSet.SingleOrDefault(x => x.Id == targetId); if (albumItem == null) { return; } if (albumItem.Album.UserId.HasValue) { IsAuthor = albumItem.Album.UserId.Value == userId; } likes = albumItem.Likes; like = likes.SingleOrDefault(l => l.AlbumItemId == targetId && l.User.Id == userId); break; case WtfLikes.Content: var content = DataService.PerThread.ContentSet.SingleOrDefault(x => x.Id == targetId); if (content == null) { return; } if (content.AuthorId.HasValue) { IsAuthor = content.AuthorId.Value == userId; } likes = content.Likes; like = likes.SingleOrDefault(l => l.ContentId == targetId && l.User.Id == userId); break; case WtfLikes.Comment: var comment = DataService.PerThread.CommentSet.SingleOrDefault(x => x.Id == targetId); if (comment == null) { return; } IsAuthor = comment.UserId == userId; likes = comment.Likes; like = likes.SingleOrDefault(l => l.CommentId == targetId && l.User.Id == userId); break; } if (likes != null) { LikesCount = likes.Count(l => l.Value); DislikesCount = likes.Count(l => l.Value == false); } TargetId = targetId; TargetType = (byte)targetType; if (like != null) { Vote = like.Value; } }