52 lines
1.5 KiB
C#
52 lines
1.5 KiB
C#
using System.Linq;
|
||
using Microsoft.AspNetCore.Mvc;
|
||
using Microsoft.AspNetCore.Mvc.Rendering;
|
||
|
||
namespace Yavsc.ViewComponents
|
||
{
|
||
using Models;
|
||
using ViewModels.Controls;
|
||
using ViewModels.Relationship;
|
||
using Yavsc.Abstract.Identity.Security;
|
||
|
||
public class CirclesControlViewComponent : ViewComponent
|
||
{
|
||
private readonly ApplicationDbContext dbContext;
|
||
public CirclesControlViewComponent(ApplicationDbContext dbContext)
|
||
{
|
||
this.dbContext = dbContext;
|
||
}
|
||
|
||
|
||
public IViewComponentResult Invoke (ICircleAuthorized target)
|
||
{
|
||
if (target!=null)
|
||
{
|
||
var oid = target.AuthorId;
|
||
ViewBag.ACL = dbContext.Circle.Where(
|
||
c=>c.OwnerId == oid)
|
||
.Select(
|
||
c => new SelectListItem
|
||
{
|
||
Text = c.Name,
|
||
Value = c.Id.ToString(),
|
||
Selected = target.AuthorizeCircle(c.Id)
|
||
}
|
||
);
|
||
|
||
ViewBag.Access = dbContext.Circle.Where(
|
||
c=>c.OwnerId == oid)
|
||
.Select( c=>
|
||
new AjaxCheckBoxInfo
|
||
{
|
||
Text = c.Name,
|
||
Checked = target.AuthorizeCircle(c.Id),
|
||
Value = c.Id.ToString()
|
||
});
|
||
}
|
||
|
||
return View(new CirclesViewModel(target));
|
||
}
|
||
}
|
||
}
|