using FluentValidation; using Raven.Client.Documents; using Raven.Client.Documents.Session; using System.Collections.Generic; using System.Threading.Tasks; using zero.Core.Collections; using zero.Core.Entities; using zero.Core.Extensions; namespace zero.Core.Api { public class ApplicationsApi : BackofficeApi, IApplicationsApi { IValidator Validator; public ApplicationsApi(ICollectionContext store, IValidator validator) : base(store, isCoreDatabase: true) { Validator = validator; } /// public async Task GetById(string id) { return await GetById(id); } /// public async Task> GetAll() { return await Session .Query() .OrderByDescending(x => x.CreatedDate) .ToListAsync(); } /// public async Task> GetByQuery(ListQuery query) { query.SearchFor(entity => entity.Name); return await Session.Query().ToQueriedListAsync(query); } /// public async Task> Save(Application model) { return await SaveModel(model, Validator); } /// public async Task> Delete(string id) { return await DeleteById(id); } } public interface IApplicationsApi { /// /// Get application by Id /// Task GetById(string id); /// /// Get all available zero applications /// Task> GetAll(); /// /// Get all available applications (with query) /// Task> GetByQuery(ListQuery query); /// /// Creates or updates a application /// Task> Save(Application model); /// /// Deletes a application by Id /// Task> Delete(string id); } }