//using Microsoft.AspNetCore.Mvc; //using Raven.Client.Documents.Linq; //using System; //using System.Collections.Generic; //using System.Threading.Tasks; //using zero.Core; //using zero.Core.Entities; //namespace zero.Backoffice; //public abstract class _ZeroBackofficeCollectionController : ZeroBackofficeController // where TEntity : ZeroIdEntity, new() // where TCollection : IStoreOperations //{ // protected TCollection Collection { get; private set; } // [Obsolete] // protected Func, IRavenQueryable> DefaultQuery { get; set; } // protected Action PreviewTransform { get; set; } // protected Action PickerTransform { get; set; } // public ZeroBackofficeCollectionController(TCollection collection) // { // Collection = collection; // } // public override void OnScopeChanged(string scope) // { // //Collection.ApplyScope(scope); // } // public virtual async Task> GetById([FromQuery] string id, [FromQuery] string changeVector = null) => Edit(await Collection.Load(id, changeVector)); // public virtual async Task> GetByIds([FromQuery] string[] ids) => await Collection.Load(ids); // public virtual async Task> GetEmpty() => Edit(await Collection.Empty()); // public virtual async Task> GetByQuery([FromQuery] ListQuery query) // { // return await Collection.Load(query); // } // public virtual async Task> GetRevisions([FromQuery] string id, [FromQuery] ListQuery query) // { // return null; // TODO // //return await Collection.GetRevisions(id, query.Page, query.PageSize); // } // public virtual async Task> GetForPicker() => await SelectList(Collection.Stream(), PickerTransform); // public virtual async Task> GetPreviews([FromQuery] List ids) => Previews(await Collection.Load(ids), PreviewTransform); // [HttpPost] // public virtual async Task> Save([FromBody] TEntity model) => await Collection.Save(model); // [HttpDelete] // public virtual async Task> Delete([FromQuery] string id) => await Collection.Delete(id); //}