start new controllers

This commit is contained in:
2021-11-23 15:43:21 +01:00
parent bffddbe9a8
commit a9bf2d28cb
61 changed files with 578 additions and 891 deletions
@@ -0,0 +1,66 @@
using Microsoft.AspNetCore.Mvc;
namespace zero.Backoffice.Modules;
/// <summary>
/// | GET /zero/api/countries/empty
/// | GET /zero/api/countries/{id}
/// | GET /zero/api/countries/{id}/revisions
/// | GET /zero/api/countries[type,query,filter,...]
/// | POST /zero/api/countries
/// | PUT /zero/api/countries/{id}
/// | DELETE /zero/api/countries/{id}
/// </summary>
public class CountriesController : ZeroBackofficeApiController
{
protected ICountriesCollection Collection { get; set; }
public CountriesController(ICountriesCollection collection)
{
Collection = collection;
}
[HttpGet("empty")]
public virtual async Task<Country> New()
{
return await Collection.Empty();
}
[HttpGet("{id}")]
public virtual async Task<Country> Get(string id, string changeVector = null)
{
return await Collection.Load(id, changeVector);
}
[HttpGet]
public virtual async Task<Paged<Country>> Get(ListBackofficeQuery<Country> query)
{
return await Collection.Load<zero_Backoffice_Countries_Listing>(query.Page, query.PageSize, q => q.OrderByDescending(x => x.CreatedDate));
}
//[HttpGet("{id}/revisions")]
//public virtual async Task<List<Revision<Country>>> GetRevisions(string id)
//{
// return await Collection.GetRevisions(id);
//}
[HttpPost]
public virtual async Task<EntityResult<Country>> Create(Country country)
{
return await Collection.Create(country);
}
[HttpPut("{id}")]
public virtual async Task<EntityResult<Country>> Update(string id, Country country)
{
return await Collection.Update(country);
}
[HttpDelete("{id}")]
public virtual async Task<EntityResult<Country>> Delete(string id)
{
return await Collection.Delete(id);
}
}
@@ -1,20 +0,0 @@
using Microsoft.AspNetCore.Mvc;
using Raven.Client.Documents;
using Raven.Client.Documents.Linq;
namespace zero.Backoffice.Modules;
[ZeroAuthorize(Permissions.Settings.Countries, PermissionsValue.Read)]
public class CountriesController : ZeroBackofficeCollectionController<Country, ICountriesCollection>
{
public CountriesController(ICountriesCollection collection) : base(collection)
{
PreviewTransform = (item, model) => model.Icon = "flag-" + item.Code.ToLowerInvariant();
}
public override Task<ListResult<Country>> GetByQuery([FromQuery] ListBackofficeQuery<Country> query)
{
query.OrderQuery = q => q.OrderByDescending(x => x.IsPreferred).ThenBy(x => x.Name);
return Collection.Load<zero_Backoffice_Countries_Listing>(query);
}
}
@@ -31,7 +31,7 @@ namespace zero.Web.Controllers
}
public override async Task<ListResult<Language>> GetByQuery([FromQuery] ListBackofficeQuery<Language> query)
public override async Task<Paged<Language>> GetByQuery([FromQuery] ListBackofficeQuery<Language> query)
{
query.OrderQuery = q => q.OrderByDescending(x => x.CreatedDate);
return await Collection.Load<zero_Languages>(query);
@@ -15,7 +15,7 @@ namespace zero.Web.Controllers
PreviewTransform = (item, model) => model.Icon = "fth-mail";
}
public override async Task<ListResult<MailTemplate>> GetByQuery([FromQuery] ListBackofficeQuery<MailTemplate> query)
public override async Task<Paged<MailTemplate>> GetByQuery([FromQuery] ListBackofficeQuery<MailTemplate> query)
{
query.SearchFor(entity => entity.Name, entity => entity.Key, entity => entity.Subject);
return await Collection.Load<zero_MailTemplates>(query);
@@ -18,7 +18,7 @@ public class BackofficeSearchService : IBackofficeSearchService
}
public async Task<ListResult<SearchResult>> Query(string searchTerm)
public async Task<Paged<SearchResult>> Query(string searchTerm)
{
string[] searchParts = searchTerm.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries).Select(x =>
{
@@ -57,7 +57,7 @@ public class BackofficeSearchService : IBackofficeSearchService
items.Add(searchResult);
}
return new ListResult<SearchResult>(items, stats.TotalResults, 1, 20);
return new Paged<SearchResult>(items, stats.TotalResults, 1, 20);
}
@@ -69,5 +69,5 @@ public class BackofficeSearchService : IBackofficeSearchService
public interface IBackofficeSearchService
{
Task<ListResult<SearchResult>> Query(string searchTerm);
Task<Paged<SearchResult>> Query(string searchTerm);
}
@@ -12,5 +12,5 @@ public class SearchController : BackofficeController
SearchService = searchService;
}
public async Task<ListResult<SearchResult>> Query([FromQuery] string query) => await SearchService.Query(query);
public async Task<Paged<SearchResult>> Query([FromQuery] string query) => await SearchService.Query(query);
}
@@ -14,7 +14,7 @@ namespace zero.Web.Controllers
{
public TranslationsController(ITranslationsCollection collection) : base(collection) { }
public override async Task<ListResult<Translation>> GetByQuery([FromQuery] ListBackofficeQuery<Translation> query)
public override async Task<Paged<Translation>> GetByQuery([FromQuery] ListBackofficeQuery<Translation> query)
{
query.SearchFor(entity => entity.Key, entity => entity.Value);
query.OrderQuery = q => q.OrderByDescending(x => x.CreatedDate);