namespace MyCompany.MyProject.FEMain.WebUI.Areas.Administration.Controllers
{
public partial class LinksController : BaseController
{
private readonly Api.ILinkGroupApi _linkGroupApi;
private readonly Api.ILinkApi _linkApi;
public LinksController(Api.ILinkGroupApi linkGroupApi, Api.ILinkApi linkApi)
{
_linkGroupApi = linkGroupApi;
_linkApi = linkApi;
}
[AuthorizedTask(Tasks.LinksAdministration)]
public virtual ActionResult Index()
{
var linkGroupen = _linkGroupApi.GetLinkGroups();
return View(linkGroupen);
}
}
}
namespace MyCompany.MyProject.FEMain.WebUI.Areas.Beheer.Controllers.Api
{
public interface ILinkGroupApi
{
LinkGroep GetLinkGroup(int id);
IEnumerable<LinkGroepSummary> GetLinkGroups();
}
[ApiAuthorizedExternalPartyIdentity(ExternalPartyIdentity.Administrator)]
public class LinkGroupController : ApiController, ILinkGroepApi
{
private readonly IManagementFacade _managementFacade;
public LinkGroepController(IManagementFacade managementFacade)
{
_managementFacade = managementFacade;
}
public LinkGroep GetLinkGroup(int id)
{
return _managementFacade.GetLinkGroup(id);
}
public IEnumerable<LinkGroupSummary> GetLinkGroupen()
{
return _managementFacade.GetLinkGroupen()
.OrderBy(x => x.Number)
.ThenBy(x => x.Name)
.TakeAll();
}
// PUT /api/linkgroup/5
[ApiAuthorizedTask(Tasks.LinksAdministration)]
public void Put(int id, EditLinkGroupForm form)
{
if (form == null) throw new ArgumentNullException("form");
var linkGroup = _managementFacade.GetLinkGroup(id);
form.ToLinkGroup(linkGroup);
_wmoManagementFacade.SaveChanges();
}
}
}