This commit is contained in:
@@ -58,7 +58,7 @@ namespace AyaNova.Api.Controllers
|
|||||||
|
|
||||||
if (tableRequest.Limit == null || tableRequest.Limit < 1)
|
if (tableRequest.Limit == null || tableRequest.Limit < 1)
|
||||||
{
|
{
|
||||||
tableRequest.Limit = DataListTableOptions.DefaultLimit;
|
tableRequest.Limit = DataListTableProcessingOptions.DefaultLimit;
|
||||||
}
|
}
|
||||||
if (tableRequest.Offset == null)
|
if (tableRequest.Offset == null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ namespace AyaNova.Api.Controllers
|
|||||||
/// <param name="dataListSelection"></param>
|
/// <param name="dataListSelection"></param>
|
||||||
/// <returns>downloadable export file name</returns>
|
/// <returns>downloadable export file name</returns>
|
||||||
[HttpPost("render/{format}")]
|
[HttpPost("render/{format}")]
|
||||||
public async Task<IActionResult> RenderExport([FromRoute] string format, [FromBody] DataListSelectionOptions dataListSelection)
|
public async Task<IActionResult> RenderExport([FromRoute] string format, [FromBody] DataListSelectedProcessingOptions dataListSelection)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!serverState.IsOpen)
|
if (!serverState.IsOpen)
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ namespace AyaNova.Api.Controllers
|
|||||||
/// <param name="dataListSelection"></param>
|
/// <param name="dataListSelection"></param>
|
||||||
/// <returns>Job Id</returns>
|
/// <returns>Job Id</returns>
|
||||||
[HttpPost("batch-delete")]
|
[HttpPost("batch-delete")]
|
||||||
public async Task<IActionResult> BatchDeleteObjects([FromBody] DataListSelectionOptions dataListSelection)
|
public async Task<IActionResult> BatchDeleteObjects([FromBody] DataListSelectedProcessingOptions dataListSelection)
|
||||||
{
|
{
|
||||||
if (!serverState.IsOpen)
|
if (!serverState.IsOpen)
|
||||||
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
||||||
|
|||||||
@@ -188,7 +188,7 @@ namespace AyaNova.Api.Controllers
|
|||||||
/// <param name="apiVersion">From route path</param>
|
/// <param name="apiVersion">From route path</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost("data")]
|
[HttpPost("data")]
|
||||||
public async Task<IActionResult> GetReportData([FromBody] DataListSelectionOptions reportDataParam, ApiVersion apiVersion)
|
public async Task<IActionResult> GetReportData([FromBody] DataListSelectedProcessingOptions reportDataParam, ApiVersion apiVersion)
|
||||||
{
|
{
|
||||||
if (!serverState.IsOpen)
|
if (!serverState.IsOpen)
|
||||||
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
||||||
@@ -210,7 +210,7 @@ namespace AyaNova.Api.Controllers
|
|||||||
/// <param name="apiVersion">From route path</param>
|
/// <param name="apiVersion">From route path</param>
|
||||||
/// <returns>downloadable pdf name</returns>
|
/// <returns>downloadable pdf name</returns>
|
||||||
[HttpPost("render")]
|
[HttpPost("render")]
|
||||||
public async Task<IActionResult> RenderReport([FromBody] DataListReportSelectionOptions reportParam, ApiVersion apiVersion)
|
public async Task<IActionResult> RenderReport([FromBody] DataListReportProcessingOptions reportParam, ApiVersion apiVersion)
|
||||||
{
|
{
|
||||||
if (!serverState.IsOpen)
|
if (!serverState.IsOpen)
|
||||||
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ namespace AyaNova.Api.Controllers
|
|||||||
/// <param name="dataListSelection"></param>
|
/// <param name="dataListSelection"></param>
|
||||||
/// <returns>Job Id</returns>
|
/// <returns>Job Id</returns>
|
||||||
[HttpPost("batch-add/{tag}")]
|
[HttpPost("batch-add/{tag}")]
|
||||||
public async Task<IActionResult> BatchAdd([FromRoute] string tag, [FromBody] DataListSelectionOptions dataListSelection)
|
public async Task<IActionResult> BatchAdd([FromRoute] string tag, [FromBody] DataListSelectedProcessingOptions dataListSelection)
|
||||||
{
|
{
|
||||||
if (!serverState.IsOpen)
|
if (!serverState.IsOpen)
|
||||||
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
||||||
@@ -173,7 +173,7 @@ namespace AyaNova.Api.Controllers
|
|||||||
/// <param name="dataListSelection"></param>
|
/// <param name="dataListSelection"></param>
|
||||||
/// <returns>Job Id</returns>
|
/// <returns>Job Id</returns>
|
||||||
[HttpPost("batch-remove/{tag}")]
|
[HttpPost("batch-remove/{tag}")]
|
||||||
public async Task<IActionResult> BatchRemove([FromRoute] string tag, [FromBody] DataListSelectionOptions dataListSelection)
|
public async Task<IActionResult> BatchRemove([FromRoute] string tag, [FromBody] DataListSelectedProcessingOptions dataListSelection)
|
||||||
{
|
{
|
||||||
if (!serverState.IsOpen)
|
if (!serverState.IsOpen)
|
||||||
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
||||||
@@ -266,7 +266,7 @@ namespace AyaNova.Api.Controllers
|
|||||||
/// <param name="dataListSelection"></param>
|
/// <param name="dataListSelection"></param>
|
||||||
/// <returns>Job Id</returns>
|
/// <returns>Job Id</returns>
|
||||||
[HttpPost("batch-replace/{fromTag}")]
|
[HttpPost("batch-replace/{fromTag}")]
|
||||||
public async Task<IActionResult> BatchReplace([FromRoute] string fromTag, [FromQuery] string toTag, [FromBody] DataListSelectionOptions dataListSelection)
|
public async Task<IActionResult> BatchReplace([FromRoute] string fromTag, [FromQuery] string toTag, [FromBody] DataListSelectedProcessingOptions dataListSelection)
|
||||||
{
|
{
|
||||||
if (!serverState.IsOpen)
|
if (!serverState.IsOpen)
|
||||||
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
|
||||||
|
|||||||
@@ -74,8 +74,8 @@ namespace AyaNova.DataList
|
|||||||
qOrderBy = DataListSqlFilterOrderByBuilder.DataFilterToSQLOrderBy(DataList.FieldDefinitions, dataListTableOptions);
|
qOrderBy = DataListSqlFilterOrderByBuilder.DataFilterToSQLOrderBy(DataList.FieldDefinitions, dataListTableOptions);
|
||||||
|
|
||||||
//LIMIT AND OFFSET CLAUSE - PAGING
|
//LIMIT AND OFFSET CLAUSE - PAGING
|
||||||
dataListTableOptions.Offset = dataListTableOptions.Offset ?? DataListTableOptions.DefaultOffset;
|
dataListTableOptions.Offset = dataListTableOptions.Offset ?? DataListTableProcessingOptions.DefaultOffset;
|
||||||
dataListTableOptions.Limit = dataListTableOptions.Limit ?? DataListTableOptions.DefaultLimit;
|
dataListTableOptions.Limit = dataListTableOptions.Limit ?? DataListTableProcessingOptions.DefaultLimit;
|
||||||
var qLimitOffset = $"LIMIT {dataListTableOptions.Limit} OFFSET {dataListTableOptions.Offset}";
|
var qLimitOffset = $"LIMIT {dataListTableOptions.Limit} OFFSET {dataListTableOptions.Offset}";
|
||||||
|
|
||||||
//PUT IT ALL TOGETHER
|
//PUT IT ALL TOGETHER
|
||||||
@@ -244,7 +244,7 @@ namespace AyaNova.DataList
|
|||||||
//
|
//
|
||||||
//
|
//
|
||||||
//internal static async Task<long[]> GetIdListResponseAsync(string dataListKey, string listView, string metaListView, AyContext ct, AuthorizationRoles userRoles, ILogger log, long userId)
|
//internal static async Task<long[]> GetIdListResponseAsync(string dataListKey, string listView, string metaListView, AyContext ct, AuthorizationRoles userRoles, ILogger log, long userId)
|
||||||
internal static async Task<long[]> GetIdListResponseAsync(AyContext ct, DataListSelectionOptions dataListSelectionOptions, AuthorizationRoles userRoles, ILogger log, long userId)
|
internal static async Task<long[]> GetIdListResponseAsync(AyContext ct, DataListSelectedProcessingOptions dataListSelectionOptions, AuthorizationRoles userRoles, ILogger log, long userId)
|
||||||
{
|
{
|
||||||
var DataList = DataListFactory.GetAyaDataList(dataListSelectionOptions.DataListKey);
|
var DataList = DataListFactory.GetAyaDataList(dataListSelectionOptions.DataListKey);
|
||||||
//was the name not found as a list?
|
//was the name not found as a list?
|
||||||
|
|||||||
@@ -50,9 +50,9 @@ namespace AyaNova.DataList
|
|||||||
listOptions.SortBy = new Dictionary<string, string>();
|
listOptions.SortBy = new Dictionary<string, string>();
|
||||||
|
|
||||||
//Check Columns
|
//Check Columns
|
||||||
if (listOptions is DataListTableOptions)
|
if (listOptions is DataListTableProcessingOptions)
|
||||||
{
|
{
|
||||||
var dlto = ((DataListTableOptions)listOptions);
|
var dlto = ((DataListTableProcessingOptions)listOptions);
|
||||||
if (dlto.Columns == null)
|
if (dlto.Columns == null)
|
||||||
dlto.Columns = new List<string>();
|
dlto.Columns = new List<string>();
|
||||||
//if this doesn't work then just ditch this method in favor of local code, it's not really saving much
|
//if this doesn't work then just ditch this method in favor of local code, it's not really saving much
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ namespace AyaNova.DataList
|
|||||||
|
|
||||||
//Build the SELECT portion of a list query but only to return rowid's
|
//Build the SELECT portion of a list query but only to return rowid's
|
||||||
|
|
||||||
internal static string BuildForIdListResponse(List<DataListFieldDefinition> fieldDefinitions, DataListSelectionOptions dataListSelectionOptions)
|
internal static string BuildForIdListResponse(List<DataListFieldDefinition> fieldDefinitions, DataListSelectedProcessingOptions dataListSelectionOptions)
|
||||||
{
|
{
|
||||||
//BugBug - is not including internalcriteria OR user filtered columns so they don't filter properly
|
//BugBug - is not including internalcriteria OR user filtered columns so they don't filter properly
|
||||||
//needs to be there and also return correct 0th column for id filtering or make sure it's always the zeroth I guess
|
//needs to be there and also return correct 0th column for id filtering or make sure it's always the zeroth I guess
|
||||||
|
|||||||
@@ -331,7 +331,7 @@ namespace AyaNova.Biz
|
|||||||
//REPORT DATA
|
//REPORT DATA
|
||||||
//Data fetched to return to report designer for Client report design usage
|
//Data fetched to return to report designer for Client report design usage
|
||||||
|
|
||||||
public async Task<Newtonsoft.Json.Linq.JArray> GetReportData(DataListSelectionOptions dataListSelection)
|
public async Task<Newtonsoft.Json.Linq.JArray> GetReportData(DataListSelectedProcessingOptions dataListSelection)
|
||||||
{
|
{
|
||||||
var log = AyaNova.Util.ApplicationLogging.CreateLogger("ReportBiz::GetReportData");
|
var log = AyaNova.Util.ApplicationLogging.CreateLogger("ReportBiz::GetReportData");
|
||||||
AuthorizationRoles effectiveRoles = CurrentUserRoles;
|
AuthorizationRoles effectiveRoles = CurrentUserRoles;
|
||||||
@@ -360,7 +360,7 @@ namespace AyaNova.Biz
|
|||||||
//RENDER
|
//RENDER
|
||||||
//
|
//
|
||||||
|
|
||||||
public async Task<string> RenderReport(DataListReportSelectionOptions reportParam, string apiUrl)
|
public async Task<string> RenderReport(DataListReportProcessingOptions reportParam, string apiUrl)
|
||||||
{
|
{
|
||||||
var log = AyaNova.Util.ApplicationLogging.CreateLogger("ReportBiz::RenderReport");
|
var log = AyaNova.Util.ApplicationLogging.CreateLogger("ReportBiz::RenderReport");
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
namespace AyaNova.Models
|
namespace AyaNova.Models
|
||||||
{
|
{
|
||||||
public class DataListColumnFilter
|
public class DataListColumnFilter
|
||||||
|
|||||||
@@ -1,10 +1,19 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
namespace AyaNova.Models
|
namespace AyaNova.Models
|
||||||
{
|
{
|
||||||
|
public class DataListFilterOption
|
||||||
|
{
|
||||||
|
public string Column { get; set; }
|
||||||
|
public List<DataListColumnFilter> Items { get; set; }
|
||||||
|
public bool Any { get; set; }//means "or" the filter conditions
|
||||||
|
public DataListFilterOption()
|
||||||
|
{
|
||||||
|
Items = new List<DataListColumnFilter>();
|
||||||
|
Any = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
/*
|
|
||||||
OLD EXAMPLE:
|
OLD EXAMPLE:
|
||||||
{"offset":0,"limit":10,"dataListKey":"CustomerDataList",
|
{"offset":0,"limit":10,"dataListKey":"CustomerDataList",
|
||||||
"listView":"[
|
"listView":"[
|
||||||
@@ -27,16 +36,5 @@ namespace AyaNova.Models
|
|||||||
columns and sort are a singleton per datalistkey,userid persisted automatically (no alternative "views" just one of these). User can set them or reset them to default.
|
columns and sort are a singleton per datalistkey,userid persisted automatically (no alternative "views" just one of these). User can set them or reset them to default.
|
||||||
filter is different: user can persist a filter by name for future selection, sharing with others (public). The default filter is no filter.
|
filter is different: user can persist a filter by name for future selection, sharing with others (public). The default filter is no filter.
|
||||||
*/
|
*/
|
||||||
public class DataListFilterOption
|
|
||||||
{
|
|
||||||
public string Column { get; set; }
|
|
||||||
public List<DataListColumnFilter> Items { get; set; }
|
|
||||||
public bool Any { get; set; }//means "or" the filter conditions
|
|
||||||
public DataListFilterOption()
|
|
||||||
{
|
|
||||||
Items = new List<DataListColumnFilter>();
|
|
||||||
Any = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ using Newtonsoft.Json.Linq;
|
|||||||
namespace AyaNova.Models
|
namespace AyaNova.Models
|
||||||
{
|
{
|
||||||
|
|
||||||
public class DataListReportSelectionOptions : DataListSelectionOptions
|
public class DataListReportProcessingOptions : DataListSelectedProcessingOptions
|
||||||
{
|
{
|
||||||
public long ReportId { get; set; }
|
public long ReportId { get; set; }
|
||||||
public JToken ClientMeta { get; set; }//meta JSON data passed from client, not part of biz object data
|
public JToken ClientMeta { get; set; }//meta JSON data passed from client, not part of biz object data
|
||||||
@@ -5,7 +5,7 @@ namespace AyaNova.Models
|
|||||||
//Used to drive processes that rely on selections made at client from a datalist
|
//Used to drive processes that rely on selections made at client from a datalist
|
||||||
//either a preselected list of id's or a datalist key and listview filter object that can
|
//either a preselected list of id's or a datalist key and listview filter object that can
|
||||||
//be used to rehydrate a list of id's
|
//be used to rehydrate a list of id's
|
||||||
public class DataListSelectionOptions : DataListProcessingBase
|
public class DataListSelectedProcessingOptions : DataListProcessingBase
|
||||||
{
|
{
|
||||||
public AyaType ObjectType { get; set; }
|
public AyaType ObjectType { get; set; }
|
||||||
public long[] SelectedRowIds { get; set; }
|
public long[] SelectedRowIds { get; set; }
|
||||||
@@ -3,7 +3,7 @@ using System.Collections.Generic;
|
|||||||
|
|
||||||
namespace AyaNova.Models
|
namespace AyaNova.Models
|
||||||
{
|
{
|
||||||
public sealed class DataListTableOptions : DataListProcessingBase
|
public sealed class DataListTableProcessingOptions : DataListProcessingBase
|
||||||
{
|
{
|
||||||
public List<string> Columns { get; set; }
|
public List<string> Columns { get; set; }
|
||||||
public const int MaxPageSize = 1000;
|
public const int MaxPageSize = 1000;
|
||||||
Reference in New Issue
Block a user