yavsc/Yavsc/ViewComponents/CirclesControlViewComponent.cs

45 lines
1.4 KiB
C#

using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNet.Mvc;
using Microsoft.AspNet.Mvc.Rendering;
using Yavsc.Models;
using Yavsc.ViewModels.Controls;
using Yavsc.ViewModels.Relationship;
using YavscLib;
namespace Yavsc.ViewComponents
{
public class CirclesControlViewComponent : ViewComponent
{
ApplicationDbContext dbContext;
public CirclesControlViewComponent(ApplicationDbContext dbContext)
{
this.dbContext = dbContext;
}
public async Task<IViewComponentResult> InvokeAsync (ICircleAuthorized target)
{
var oid = target.GetOwnerId();
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));
}
}
}