IConnectorLifeCycle.cs•2.64 kB
using Api.DigitalPages.Interfaces.Connector;
using Api.DigitalPages.Interfaces.Models;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Api.DigitalPages.Interfaces.SystemConnectors
{
public interface IExtensionConnectorLifeCycle : IConnectorLifeCycle
{
}
[Obsolete("Utilize IExtensionConnectorLifeCycle")]
public interface IConnectorLifeCycle : ISystemConnectorBaseCrudFlow<IRegisterReference, IConnectorRegister, ConnectorRegisterReferencesOptions>,
ISystemConnectorBaseCrudFlow<IConnectorRegister, IConnectorConfig, ConnectorRegisterOptions>,
ISystemConnectorBaseCrudFlow<IConnectorConfig, ConnectorConfigOptions>
{
Task Process(Action<IUniqueUid> addAction, IConnectorConfig config);
Task Process(Action<IUniqueUid> addAction, Action<IUniqueUid> removeAction, IConnectorConfig config);
Task<List<IConnectorRegister>> NewRegister(IConnectorConfig inConfig, List<Guid> uids);
Task<IConnectorRegister> NewRegister(IConnectorConfig inConfig, Guid? uid = null);
Task<IConnectorConfig> Insert(IConnector model);
Task<bool> Delete(List<IRegisterReference> model);
Task<bool> Delete(IConnectorConfig inConfig, List<Guid> uids);
Task<IRegisterReference> RegisterReferenceFrom(Guid referenceUid, ObjectType referenceType, IConnectorRegister baseModel = null);
}
public interface IExtensionConnectorLifeCycleQueue
{
void Register(IBaseModelReference model);
void Unregister(IBaseModelReference model);
}
public interface IBaseModelReference
{
public Guid ConnectorUid { get; }
public Guid Uid { get; }
}
public class ConnectorRegisterReferencesOptions : IBaseCrudOptions
{
public List<Guid> FilterReferenceUid { get; set; }
public List<ObjectType> FilterReferenceType { get; set; }
public List<Guid> FilterParentUid { get; set; }
public bool IncludeRegister { get; set; }
public List<Guid> FilterUids { get; set; }
public List<Guid> FilterConnectorUid { get; set; }
}
public class ConnectorRegisterOptions : IBaseCrudOptions
{
public bool IncludeConnectorConfig { get; set; }
public List<Guid> FilterConnectorUid { get; set; }
public List<Guid> FilterUids { get; set; }
}
public class ConnectorConfigOptions : IBaseCrudOptions
{
public List<Guid> FilterUids { get; set; }
public List<Guid> FilterDirectoryUids { get; set; }
public List<Guid> FilterProjectUids { get; set; }
}
}