using Microsoft.AspNetCore.Mvc; using System.Threading.Tasks; using zero.Core.Api; using zero.Core.Entities; using zero.Core.Extensions; using zero.Core.Identity; namespace zero.Web.Controllers { [ZeroAuthorize(Permissions.Settings.Applications, PermissionsValue.Read)] public class ApplicationsController : BackofficeController { IApplicationsApi Api; IApplication Blueprint; public ApplicationsController(IApplicationsApi api, IApplication blueprint) { Api = api; Blueprint = blueprint; } /// /// Get translation by id /// public IActionResult GetEmpty() => Edit(Blueprint.Clone()); /// /// Get translation by id /// public async Task GetById([FromQuery] string id) => Edit(await Api.GetById(id)); /// /// Get all translations /// public async Task GetAll([FromQuery] ListQuery query = null) { if (query == null) { return Json(await Api.GetAll()); } return Json(await Api.GetByQuery(query)); } /// /// Get all available features to select /// public IActionResult GetAllFeatures() => Json(Options.Features.GetAllItems()); /// /// Save translation /// [ZeroAuthorize(Permissions.Settings.Applications, PermissionsValue.Update)] public async Task Save([FromBody] IApplication model) => Json(await Api.Save(model)); /// /// Deletes a translation /// [ZeroAuthorize(Permissions.Settings.Applications, PermissionsValue.Update)] public async Task Delete([FromQuery] string id) => Json(await Api.Delete(id)); } }