IConnectorDashboardProvider.cs•2.77 kB
using Api.DigitalPages.Interfaces.Models;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
namespace Api.DigitalPages.Interfaces.Connector
{
public interface IConnectorDashboardProvider
{
/// <summary>
/// Retorna uma estrutura de dashboard com base em um JSON.
/// </summary>
/// <param name="json"></param>
/// <param name="baseSpec"></param>
/// <returns></returns>
Task<IDashboardSpecification> From(string json, IDashboardSpecification baseSpec = null);
/// <summary>
/// Retorna dashboard com base no Uid.
/// </summary>
/// <param name="uid"></param>
/// <returns></returns>
Task<IDashboardSpecification> Dashboard(Guid uid);
/// <summary>
/// Retorna uma listagem de dashboards com base um tipo.
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
Task<List<IDashboardSpecification>> Dashboards(DashboardProviderType? type);
/// <summary>
/// Retorna as configurações de acesso para um dashbord limitando o escopo com base no diretório.
/// </summary>
/// <param name="dashboard"></param>
/// <param name="directoryScope"></param>
/// <returns></returns>
Task<IDashboardSpecification> LoadConfiguration(IDashboardSpecification dashboard, IDirectory directoryScope);
/// <summary>
/// Retorna as configurações de acesso para um dashbord limitando o escopo com base em um projeto.
/// </summary>
/// <param name="dashboard"></param>
/// <param name="projectScope"></param>
/// <returns></returns>
Task<IDashboardSpecification> LoadConfiguration(IDashboardSpecification dashboard, IProject projectScope);
/// <summary>
/// Retorna as configurações de acesso para um dashbord limitando o escopo com base em um usuário.
/// </summary>
/// <param name="dashboard"></param>
/// <param name="userscope"></param>
/// <returns></returns>
Task<IDashboardSpecification> LoadConfiguration(IDashboardSpecification dashboard, IUser userscope);
/// <summary>
/// Cadastra um novo dashboard na plataforma.
/// </summary>
/// <param name="dashboard"></param>
/// <returns></returns>
Task<IDashboardSpecification> Register(IDashboardSpecification dashboard);
/// <summary>
/// Remove uma referência de Dashboard na plataforma.
/// </summary>
/// <param name="dashboard"></param>
/// <returns></returns>
Task<bool> Delete(IDashboardSpecification dashboard);
}
}