128 lines
4.3 KiB
C#
128 lines
4.3 KiB
C#
|
|
using System.Collections.Generic;
|
|||
|
|
|
|||
|
|
namespace Sozsoft.Mcp.Dtos;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Bir listenin verisini ekranin kendi sorgusuyla okuma istegi. Filtre, siralama ve gruplama
|
|||
|
|
/// DevExtreme veri yukleme bicimindedir; ekranin grid'i de ayni bicimi kullanir.
|
|||
|
|
/// </summary>
|
|||
|
|
public class McpListQueryRequestDto
|
|||
|
|
{
|
|||
|
|
public string ListFormCode { get; set; } = string.Empty;
|
|||
|
|
|
|||
|
|
/// <summary>Ornek: <c>["Status","=","Open"]</c> ya da <c>[["A",">",1],"and",["B","contains","x"]]</c>.</summary>
|
|||
|
|
public string? Filter { get; set; }
|
|||
|
|
|
|||
|
|
/// <summary>Ornek: <c>[{"selector":"CreationTime","desc":true}]</c>.</summary>
|
|||
|
|
public string? Sort { get; set; }
|
|||
|
|
|
|||
|
|
/// <summary>Ornek: <c>[{"selector":"CustomerId","desc":false,"isExpanded":false}]</c>.</summary>
|
|||
|
|
public string? Group { get; set; }
|
|||
|
|
|
|||
|
|
/// <summary>Ornek: <c>[{"selector":"Id","summaryType":"count"}]</c>.</summary>
|
|||
|
|
public string? GroupSummary { get; set; }
|
|||
|
|
|
|||
|
|
/// <summary>Ornek: <c>[{"selector":"Amount","summaryType":"sum"}]</c>.</summary>
|
|||
|
|
public string? TotalSummary { get; set; }
|
|||
|
|
|
|||
|
|
public int Skip { get; set; }
|
|||
|
|
|
|||
|
|
/// <summary>Istenen satir sayisi; sunucu kaydindaki tavana kirpilir.</summary>
|
|||
|
|
public int Take { get; set; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>Liste sorgusunun sonucu.</summary>
|
|||
|
|
public class McpListQueryResultDto
|
|||
|
|
{
|
|||
|
|
public object? Data { get; set; }
|
|||
|
|
|
|||
|
|
/// <summary>Filtreye uyan toplam kayit sayisi (sayfalamadan once).</summary>
|
|||
|
|
public int TotalCount { get; set; }
|
|||
|
|
|
|||
|
|
public int GroupCount { get; set; }
|
|||
|
|
|
|||
|
|
public object[]? Summary { get; set; }
|
|||
|
|
|
|||
|
|
/// <summary>Uygulanan satir tavani; <see cref="TotalCount"/> bundan buyukse sonuc sayfalanmistir.</summary>
|
|||
|
|
public int Take { get; set; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>Parametreli tek SELECT istegi.</summary>
|
|||
|
|
public class McpSelectRequestDto
|
|||
|
|
{
|
|||
|
|
public string Sql { get; set; } = string.Empty;
|
|||
|
|
|
|||
|
|
/// <summary>Sorgudaki adli parametreler.</summary>
|
|||
|
|
public Dictionary<string, object?> Parameters { get; set; } = [];
|
|||
|
|
|
|||
|
|
/// <summary>Istenen satir sayisi; sunucu kaydindaki tavana kirpilir.</summary>
|
|||
|
|
public int MaxRows { get; set; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Kayitli bir veritabani nesnesi (view, stored procedure, function) ya da Custom Endpoint.
|
|||
|
|
/// </summary>
|
|||
|
|
public class McpSavedQueryDto
|
|||
|
|
{
|
|||
|
|
/// <summary><c>McpConsts.SavedQueryKinds</c> degerlerinden biri.</summary>
|
|||
|
|
public string Kind { get; set; } = string.Empty;
|
|||
|
|
|
|||
|
|
public string Name { get; set; } = string.Empty;
|
|||
|
|
public string? SchemaName { get; set; }
|
|||
|
|
public string? Description { get; set; }
|
|||
|
|
|
|||
|
|
/// <summary>Custom Endpoint'te beklenen parametre adlari; veritabani nesnelerinde bostur.</summary>
|
|||
|
|
public List<string> ParameterNames { get; set; } = [];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>Kayitli bir nesnenin ya da Custom Endpoint'in cagrilmasi.</summary>
|
|||
|
|
public class McpSavedQueryRequestDto
|
|||
|
|
{
|
|||
|
|
/// <summary><see cref="McpSavedQueryDto.Kind"/> ile ayni degerler.</summary>
|
|||
|
|
public string Kind { get; set; } = string.Empty;
|
|||
|
|
|
|||
|
|
public string Name { get; set; } = string.Empty;
|
|||
|
|
|
|||
|
|
/// <summary>Bos birakilirsa saglayicinin varsayilan semasi kullanilir.</summary>
|
|||
|
|
public string? SchemaName { get; set; }
|
|||
|
|
|
|||
|
|
public Dictionary<string, object?> Parameters { get; set; } = [];
|
|||
|
|
|
|||
|
|
public int MaxRows { get; set; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>Sorgu sonucu.</summary>
|
|||
|
|
public class McpQueryResultDto
|
|||
|
|
{
|
|||
|
|
public List<string> Columns { get; set; } = [];
|
|||
|
|
public List<Dictionary<string, object?>> Rows { get; set; } = [];
|
|||
|
|
public int RowCount { get; set; }
|
|||
|
|
|
|||
|
|
/// <summary>Satir sayisi tavana dayandiginda true; sonuc kesilmis demektir.</summary>
|
|||
|
|
public bool Truncated { get; set; }
|
|||
|
|
|
|||
|
|
public long ExecutionTimeMs { get; set; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>Bir ListForm ekrani uzerinden kayit yazma/silme istegi.</summary>
|
|||
|
|
public class McpRowRequestDto
|
|||
|
|
{
|
|||
|
|
public string ListFormCode { get; set; } = string.Empty;
|
|||
|
|
|
|||
|
|
/// <summary>Alan adi → deger. Silme isleminde bos birakilir.</summary>
|
|||
|
|
public Dictionary<string, object?> Values { get; set; } = [];
|
|||
|
|
|
|||
|
|
/// <summary>Guncelleme ve silmede anahtar alan degerleri.</summary>
|
|||
|
|
public List<object?> Keys { get; set; } = [];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>Yazma isleminin sonucu.</summary>
|
|||
|
|
public class McpWriteResultDto
|
|||
|
|
{
|
|||
|
|
/// <summary>Insert'te uretilen anahtar; guncelleme ve silmede bostur.</summary>
|
|||
|
|
public string? Key { get; set; }
|
|||
|
|
|
|||
|
|
/// <summary>Guncelleme ve silmede etkilenen satir sayisi.</summary>
|
|||
|
|
public int AffectedRows { get; set; }
|
|||
|
|
}
|