a blog index
This commit is contained in:
parent
bc3e3099b6
commit
2666492a18
10 changed files with 47 additions and 45 deletions
|
|
@ -9,35 +9,33 @@ namespace Yavsc.ViewComponents
|
|||
public class BlogIndexViewComponent: ViewComponent
|
||||
{
|
||||
private readonly ApplicationDbContext _context;
|
||||
|
||||
public BlogIndexViewComponent(
|
||||
ApplicationDbContext context)
|
||||
{
|
||||
_context = context;
|
||||
}
|
||||
|
||||
// Renders blog index ofr the specified user by name
|
||||
// Renders blog index ofr the specified user by name,
|
||||
// grouped by title
|
||||
public async Task<IViewComponentResult> InvokeAsync(string viewerId, int skip=0, int maxLen=25)
|
||||
{
|
||||
long[] usercircles = await _context.Circle.Include(c=>c.Members).
|
||||
Where(c=>c.Members.Any(m=>m.MemberId == viewerId))
|
||||
.Select(c=>c.Id).ToArrayAsync();
|
||||
IQueryable<BlogPost> posts ;
|
||||
|
||||
var allposts = _context.Blogspot
|
||||
.Include(b => b.Author)
|
||||
.Include(p=>p.ACL)
|
||||
.Include(p=>p.Tags)
|
||||
.Include(p=>p.Comments)
|
||||
.Where(p=>p.AuthorId == viewerId || p.Visible);
|
||||
.Where(p => p.AuthorId == viewerId || p.Visible).ToArray();
|
||||
|
||||
if (usercircles != null) {
|
||||
posts = allposts.Where(p=> p.ACL.Count==0 || p.ACL.Any(a=> usercircles.Contains(a.CircleId)))
|
||||
;
|
||||
}
|
||||
else {
|
||||
posts = allposts.Where(p => p.ACL.Count == 0);
|
||||
}
|
||||
IEnumerable<BlogPost> posts = (usercircles != null) ?
|
||||
allposts.Where(p=> p.ACL.Count==0 || p.ACL.Any(a => usercircles.Contains(a.CircleId)))
|
||||
: allposts.Where(p => p.ACL.Count == 0);
|
||||
|
||||
var data = posts.OrderByDescending( p=> p.DateCreated).ToArray();
|
||||
var data = posts.OrderByDescending( p=> p.DateCreated);
|
||||
var grouped = data.GroupBy(p=> p.Title).Skip(skip).Take(maxLen);
|
||||
|
||||
return View("Default", grouped);
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ namespace Yavsc.ViewComponents
|
|||
|
||||
public async Task<IViewComponentResult> InvokeAsync (
|
||||
string htmlFieldName,
|
||||
string calId = null)
|
||||
string calId )
|
||||
{
|
||||
var minDate = DateTime.Now;
|
||||
var maxDate = minDate.AddDays(20);
|
||||
|
|
@ -30,18 +30,6 @@ namespace Yavsc.ViewComponents
|
|||
|
||||
return View(model);
|
||||
}
|
||||
public async Task<IViewComponentResult> InvokeAsync (
|
||||
string htmlFieldName)
|
||||
{
|
||||
var minDate = DateTime.Now;
|
||||
var maxDate = minDate.AddDays(20);
|
||||
|
||||
var model = await _manager.CreateViewModelAsync(
|
||||
htmlFieldName,
|
||||
null, minDate, maxDate
|
||||
);
|
||||
|
||||
return View(model);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue