using System.Collections.Generic; using Microsoft.AspNetCore.Mvc; using Oqtane.Repository; using Oqtane.Models; namespace Oqtane.Controllers { [Route("{site}/api/[controller]")] public class ModuleController : Controller { private readonly IModuleRepository modules; private readonly IPageModuleRepository pagemodules; public ModuleController(IModuleRepository Modules, IPageModuleRepository PageModules) { modules = Modules; pagemodules = PageModules; } // GET: api/?pageid=x // GET: api/?siteid=x&moduledefinitionname=x [HttpGet] public IEnumerable Get(string pageid, string siteid, string moduledefinitionname) { if (!string.IsNullOrEmpty(pageid)) { List modulelist = new List(); foreach (PageModule pagemodule in pagemodules.GetPageModules(int.Parse(pageid))) { Module module = pagemodule.Module; module.PageModuleId = pagemodule.PageModuleId; module.PageId = pagemodule.PageId; module.Title = pagemodule.Title; module.Pane = pagemodule.Pane; module.Order = pagemodule.Order; module.ContainerType = pagemodule.ContainerType; modulelist.Add(module); } return modulelist; } else { return modules.GetModules(int.Parse(siteid), moduledefinitionname); } } // GET api//5 [HttpGet("{id}")] public Module Get(int id) { return modules.GetModule(id); } // POST api/ [HttpPost] public Module Post([FromBody] Module Module) { if (ModelState.IsValid) { Module = modules.AddModule(Module); } return Module; } // PUT api//5 [HttpPut("{id}")] public Module Put(int id, [FromBody] Module Module) { if (ModelState.IsValid) { Module = modules.UpdateModule(Module); } return Module; } // DELETE api//5 [HttpDelete("{id}")] public void Delete(int id) { modules.DeleteModule(id); } } }