using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using zero.Core.Api; using zero.Core; using zero.Core.Entities; using zero.Web.Controllers; using zero.Web.Models; namespace zero.Commerce.Backoffice { public class MailTemplatesController : BackofficeController { IMailTemplatesApi Api; public MailTemplatesController(IMailTemplatesApi api) { Api = api; } public EditModel GetEmpty([FromServices] IMailTemplate blueprint) => Edit(blueprint); public async Task> GetById([FromQuery] string id) => Edit(await Api.GetById(id)); public async Task> GetAll([FromQuery] ListQuery query) => await Api.GetByQuery(query); public async Task> GetForPicker() => (await Api.GetAll()).Select(x => new SelectModel() { Id = x.Id, Name = x.Name, IsActive = x.IsActive }); public async Task> GetPreviews([FromQuery] List ids) => Previews(await Api.GetByIds(ids.ToArray()), item => new PreviewModel() { Id = item.Id, Icon = "fth-mail", Name = item.Name }); public async Task> Save([FromBody] IMailTemplate model) => await Api.Save(model); public async Task> Delete([FromQuery] string id) => await Api.Delete(id); } }