ISystemConnectorBaseCrud.cs•3.75 kB
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Api.DigitalPages.Interfaces.Models;
namespace Api.DigitalPages.Interfaces.Connector
{
public interface ISystemConnectorBaseCrudFlow<TModel, TOptions>
where TModel : IBaseModelV3
where TOptions : IBaseCrudOptions
{
Task<TModel> Get(Guid uid, TOptions options);
Task<List<TModel>> Get(TOptions options);
Task<TModel> Insert(TModel model);
Task<TModel> Update(TModel model);
Task<bool> Delete(TModel model);
}
public interface ISystemConnectorBaseCrudFlowV4<TModel>
where TModel : IBaseModelV3
{
Task<TModel> FromJson(string json, TModel baseModel);
Task<TModel> Get(Guid uid);
Task<TModel> Insert(TModel model);
Task<TModel> Update(TModel model);
Task<bool> Delete(TModel model);
}
public interface ISystemConnectorBaseCrudFlowV4<TModel, TParentModel>
where TModel : IBaseModelV3
where TParentModel : IBaseModelV3
{
Task<TModel> FromJson(string json, TModel baseModel);
Task<TModel> Get(Guid uid);
Task<TModel> Insert(TModel model, TParentModel parent);
Task<TModel> Update(TModel model);
Task<bool> Delete(TModel model);
}
public interface ISystemConnectorBaseCrudFlowV3<TModel, TOptions> : ISystemConnectorBaseCrudFlowV2<TModel, TOptions>
where TModel : IBaseModelV3
where TOptions : IBaseCrudOptions
{
Task<List<IFacet>> Facets(TOptions options);
}
public interface ISystemConnectorBaseCrudFlowV2<TModel, TOptions> : ISystemConnectorBaseCrudFlow<TModel, TOptions>
where TModel : IBaseModelV3
where TOptions : IBaseCrudOptions
{
Task<TModel> FromJson(string json, TModel baseModel);
}
public interface ISystemConnectorBaseCrudFlow<TModel, TParentModel, TOptions>
where TModel : IBaseModelV3
where TParentModel : IBaseModelV3
where TOptions : IBaseCrudOptions
{
Task<TModel> Get(Guid uid, TOptions options);
Task<List<TModel>> Get(TOptions options);
Task<TModel> Insert(TModel model, TParentModel parent);
Task<TModel> Update(TModel model);
Task<bool> Delete(TModel model);
}
public interface ISystemConnectorBaseGetFlow<TModel, TOptions>
where TModel : IBaseModelV3
where TOptions : IBaseCrudOptions
{
Task<TModel> Get(Guid uid, TOptions options);
Task<List<TModel>> Get(TOptions options);
}
public interface ISystemConnectorBaseCrudFlowV2<TModel, TParentModel, TOptions> : ISystemConnectorBaseCrudFlow<TModel, TParentModel, TOptions>
where TModel : IBaseModelV3
where TParentModel : IBaseModelV3
where TOptions : IBaseCrudOptions
{
Task<TModel> FromJson(string json, TModel baseModel);
}
public interface ISystemConnectorBasePagedFlow<TModel, TOptions>
where TModel : IBaseModelV3
where TOptions : IBaseCrudOptions
{
Task<IPagedResult<TModel>> Get(TOptions options, int page = 1, int pageSize = 25);
}
public interface IBaseCrudOptions
{
//bool DisableTracking { get; set; }
}
public interface IBaseAuthorizationFilter
{
List<Guid> Directories { get; set; }
List<Guid> Projects { get; set; }
List<Guid> Entities { get; set; }
List<Guid> Users { get; set; }
List<Guid> Products { get; set; }
bool OnlyToAnonymousUser { get; set; }
}
public interface IBaseAuthorizationFilterV2 : IBaseAuthorizationFilter
{
List<Guid> Teams { get; set; }
}
}