using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; using System.Threading.Tasks; using zero.Core.Api; using zero.Core.Entities; using zero.Core.Identity; using zero.Web.Models; namespace zero.Web.Controllers { [ZeroAuthorize(Permissions.Settings.Applications, PermissionsValue.Read)] public class ApplicationsController : BackofficeController { IApplicationsApi Api; public ApplicationsController(IApplicationsApi api) { Api = api; IsCoreDatabase = true; } public EditModel GetEmpty([FromServices] Application blueprint) => Edit(blueprint); public async Task> GetById([FromQuery] string id) => Edit(await Api.GetById(id)); public async Task> GetAll() => await Api.GetAll(); public async Task> GetByQuery([FromQuery] ListBackofficeQuery query) => await Api.GetByQuery(query); public IReadOnlyCollection GetAllFeatures() => Options.Features.GetAllItems(); [HttpPost] [ZeroAuthorize(Permissions.Settings.Applications, PermissionsValue.Update)] public async Task> Save([FromBody] Application model) => await Api.Save(model); [HttpDelete] [ZeroAuthorize(Permissions.Settings.Applications, PermissionsValue.Update)] public async Task> Delete([FromQuery] string id) => await Api.Delete(id); } }