IConnectorTeamBaseManagement.cs•3.02 kB
using Api.DigitalPages.Interfaces.Models;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Api.DigitalPages.Interfaces.Connector
{
/// <summary>
/// Implementação base utilizada para manipulação de times
/// </summary>
public interface IConnectorTeamBaseManagement :
ISystemConnectorBaseCrudFlowV2<ITeam, TeamOptions>,
ISystemConnectorBasePagedFlow<ITeam, TeamOptions>,
ISystemConnectorBaseCrudFlowV2<ITeamObjectReference, ITeam, TeamObjectReferenceOptions>,
ISystemConnectorBaseCrudFlowV2<ITeamUserMemberReference, ITeam, TeamUserMembersBaseOptions>,
ISystemConnectorBaseCrudFlowV2<ITeamUserManagerReference, ITeam, TeamUserManagersBaseOptions>,
ISystemConnectorBaseCrudFlowV2<ITeamAuthorization, ITeam, TeamAuthorizationOptions>,
IConnectorContextRequired,
IConnectorDetail
{
/// <summary>
/// Retorna se o time aceita o gerenciamento do objectType.
/// </summary>
/// <param name="team"></param>
/// <param name="objectType"></param>
/// <returns></returns>
Task<bool> AcceptReference(ITeam team, ObjectType objectType);
}
#region Options
/// <summary>
/// Opções de consulta em um time.
/// </summary>
public class TeamOptions : IBaseCrudOptions
{
public IBaseAuthorizationFilter FilterAuthorizations { get; set; }
public List<ObjectType> FilterReferenceType { get; set; }
public List<string> FilterByUniqueName { get; set; }
public List<Guid> FilterUid { get; set; }
public List<Guid> FilterReferenceUid { get; set; }
public bool IncludeProperties { get; set; }
public bool IncludeObjectReferences { get; set; }
public bool IncludeEntityReferences { get; set; }
}
/// <summary>
/// Opções de consulta com base nas referências vinculadas a um time
/// </summary>
public class TeamObjectReferenceOptions : IBaseCrudOptions
{
public IBaseAuthorizationFilter FilterAuthorizations { get; set; }
public List<Guid> FilterUid { get; set; }
public bool IncludeParent { get; set; }
}
/// <summary>
/// Opções de consulta com base nos membros de um time.
/// </summary>
public class TeamUserMembersBaseOptions : IBaseCrudOptions
{
public IBaseAuthorizationFilter FilterAuthorizations { get; set; }
public List<Guid> FilterUid { get; set; }
}
/// <summary>
/// Opções de consulta com base nos membros de gerenciamento.
/// </summary>
public class TeamUserManagersBaseOptions : IBaseCrudOptions
{
public IBaseAuthorizationFilter FilterAuthorizations { get; set; }
public List<Guid> FilterUid { get; set; }
}
/// <summary>
/// Opções de consulta com base nas autorizações.
/// </summary>
public class TeamAuthorizationOptions : IBaseCrudOptions
{
}
#endregion
}