This commit is contained in:
2026-06-12 23:51:14 +03:30
parent 1b1b8bc8c8
commit a853095e75
9 changed files with 1065 additions and 178 deletions
@@ -45,6 +45,155 @@ namespace xCategoryService.Controllers
this.provider = provider;
}
//
#region Overrides ...
[NonAction]
[HttpGet("{id}")]
public override async Task<ActionResult<XCategoryDto>> Get(
[FromRoute] int id,
[FromQuery] bool useDefaultIncludes = false,
CancellationToken cancellationToken = default
)
{
//
return await base.Get(
id: id,
useDefaultIncludes: useDefaultIncludes,
cancellationToken: cancellationToken
);
}
[NonAction]
[HttpGet("")]
public override async Task<ActionResult<IEnumerable<XCategoryDto>>> GetAll(
[FromQuery] bool useDefaultOrders = false,
[FromQuery] bool useDefaultIncludes = false,
CancellationToken cancellationToken = default
)
{
//
return await base.GetAll(
useDefaultOrders: useDefaultOrders,
cancellationToken: cancellationToken,
useDefaultIncludes: useDefaultIncludes
);
}
[NonAction]
[HttpGet("Find/One")]
public override async Task<ActionResult<XCategoryDto>> FindOne(
[FromRoute] string query,
[FromQuery] bool useDefaultIncludes = false,
CancellationToken cancellationToken = default
)
{
//
return await base.FindOne(
query: query,
cancellationToken: cancellationToken,
useDefaultIncludes: useDefaultIncludes
);
}
[NonAction]
[HttpGet("Find/Many")]
public override async Task<ActionResult<IEnumerable<XCategoryDto>>> FindMany(
[FromRoute] string query,
[FromQuery] bool useDefaultOrders = false,
[FromQuery] bool useDefaultIncludes = false,
CancellationToken cancellationToken = default
)
{
//
return await base.FindMany(
query: query,
useDefaultOrders: useDefaultOrders,
cancellationToken: cancellationToken,
useDefaultIncludes: useDefaultIncludes
);
}
[NonAction]
[HttpGet("Query")]
public override async Task<ActionResult<XQueryResult<XCategoryDto>>> Query(
[FromQuery] XQuery query,
[FromQuery] bool useDefaultOrders = false,
[FromQuery] bool useDefaultIncludes = false,
CancellationToken cancellationToken = default
)
{
//
return await base.Query(
query: query,
useDefaultOrders: useDefaultOrders,
cancellationToken: cancellationToken,
useDefaultIncludes: useDefaultIncludes
);
}
[NonAction]
[HttpGet("Query/Owned")]
public override async Task<ActionResult<XQueryResult<XCategoryDto>>> QueryOwned(
[FromQuery] XQuery query,
[FromQuery] bool useDefaultOrders = false,
[FromQuery] bool useDefaultIncludes = false,
CancellationToken cancellationToken = default
)
{
//
return await base.QueryOwned(
query: query,
useDefaultOrders: useDefaultOrders,
cancellationToken: cancellationToken,
useDefaultIncludes: useDefaultIncludes
);
}
[NonAction]
[HttpPost("")]
public override async Task<ActionResult<XCategoryDto>> Add(
[FromBody] XCategoryDto item,
CancellationToken cancellationToken = default
)
{
//
return await base.Add(
item: item,
cancellationToken: cancellationToken
);
}
[NonAction]
[HttpPut("{id}")]
public override async Task<ActionResult<XCategoryDto>> Update(
[FromRoute] int id,
[FromBody] XCategoryDto item,
CancellationToken cancellationToken = default
)
{
//
return await base.Update(
id: id,
item: item,
cancellationToken: cancellationToken
);
}
[NonAction]
[HttpDelete("{id}")]
public override async Task<ActionResult<XCategoryDto>> Remove(
[FromRoute] int id,
CancellationToken cancellationToken = default
)
{
//
return await base.Remove(
id: id,
cancellationToken: cancellationToken
);
}
#endregion
//
#region Actions ...
/// <summary>
@@ -187,6 +336,56 @@ namespace xCategoryService.Controllers
}
}
/// <summary>
/// Remove Item for Specified Language ...
/// </summary>
/// <param name="id"></param>
/// <param name="language">if null, Remove All</param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
[HttpDelete("Resources/{id}")]
public virtual async Task<ActionResult<XCategoryResourceDto>> Remove(
[FromRoute] int id,
[FromQuery] string language = null,
CancellationToken cancellationToken = default
)
{
//
try
{
//
// Validate ...
if (!ModelState.IsValid ||
!id.IsValidIntId())
{
XException.InvalidArgs.Throw();
}
//
// Reading Requirements ...
var userInfo = await GetUserInfo();
var connectionId = GetConnectionId();
//
var result = await provider.Remove(
id: id,
language: language,
userInfo: userInfo,
connectionId: connectionId,
cancellationToken: cancellationToken
);
//
return Ok(result.ToDynamicObject());
}
catch (Exception ex)
{
//
var result = GetExceptionActionResult(ex);
return result;
}
}
/// <summary>
/// Update a Category Item for Specified Language ...
/// </summary>
@@ -45,6 +45,155 @@ namespace xCategoryService.Controllers
this.provider = provider;
}
//
#region Overrides ...
[NonAction]
[HttpGet("{id}")]
public override async Task<ActionResult<XSubCategoryDto>> Get(
[FromRoute] int id,
[FromQuery] bool useDefaultIncludes = false,
CancellationToken cancellationToken = default
)
{
//
return await base.Get(
id: id,
useDefaultIncludes: useDefaultIncludes,
cancellationToken: cancellationToken
);
}
[NonAction]
[HttpGet("")]
public override async Task<ActionResult<IEnumerable<XSubCategoryDto>>> GetAll(
[FromQuery] bool useDefaultOrders = false,
[FromQuery] bool useDefaultIncludes = false,
CancellationToken cancellationToken = default
)
{
//
return await base.GetAll(
useDefaultOrders: useDefaultOrders,
cancellationToken: cancellationToken,
useDefaultIncludes: useDefaultIncludes
);
}
[NonAction]
[HttpGet("Find/One")]
public override async Task<ActionResult<XSubCategoryDto>> FindOne(
[FromRoute] string query,
[FromQuery] bool useDefaultIncludes = false,
CancellationToken cancellationToken = default
)
{
//
return await base.FindOne(
query: query,
cancellationToken: cancellationToken,
useDefaultIncludes: useDefaultIncludes
);
}
[NonAction]
[HttpGet("Find/Many")]
public override async Task<ActionResult<IEnumerable<XSubCategoryDto>>> FindMany(
[FromRoute] string query,
[FromQuery] bool useDefaultOrders = false,
[FromQuery] bool useDefaultIncludes = false,
CancellationToken cancellationToken = default
)
{
//
return await base.FindMany(
query: query,
useDefaultOrders: useDefaultOrders,
cancellationToken: cancellationToken,
useDefaultIncludes: useDefaultIncludes
);
}
[NonAction]
[HttpGet("Query")]
public override async Task<ActionResult<XQueryResult<XSubCategoryDto>>> Query(
[FromQuery] XQuery query,
[FromQuery] bool useDefaultOrders = false,
[FromQuery] bool useDefaultIncludes = false,
CancellationToken cancellationToken = default
)
{
//
return await base.Query(
query: query,
useDefaultOrders: useDefaultOrders,
cancellationToken: cancellationToken,
useDefaultIncludes: useDefaultIncludes
);
}
[NonAction]
[HttpGet("Query/Owned")]
public override async Task<ActionResult<XQueryResult<XSubCategoryDto>>> QueryOwned(
[FromQuery] XQuery query,
[FromQuery] bool useDefaultOrders = false,
[FromQuery] bool useDefaultIncludes = false,
CancellationToken cancellationToken = default
)
{
//
return await base.QueryOwned(
query: query,
useDefaultOrders: useDefaultOrders,
cancellationToken: cancellationToken,
useDefaultIncludes: useDefaultIncludes
);
}
[NonAction]
[HttpPost("")]
public override async Task<ActionResult<XSubCategoryDto>> Add(
[FromBody] XSubCategoryDto item,
CancellationToken cancellationToken = default
)
{
//
return await base.Add(
item: item,
cancellationToken: cancellationToken
);
}
[NonAction]
[HttpPut("{id}")]
public override async Task<ActionResult<XSubCategoryDto>> Update(
[FromRoute] int id,
[FromBody] XSubCategoryDto item,
CancellationToken cancellationToken = default
)
{
//
return await base.Update(
id: id,
item: item,
cancellationToken: cancellationToken
);
}
[NonAction]
[HttpDelete("{id}")]
public override async Task<ActionResult<XSubCategoryDto>> Remove(
[FromRoute] int id,
CancellationToken cancellationToken = default
)
{
//
return await base.Remove(
id: id,
cancellationToken: cancellationToken
);
}
#endregion
//
#region Actions ...
/// <summary>
@@ -187,6 +336,56 @@ namespace xCategoryService.Controllers
}
}
/// <summary>
/// Remove Item for Specified Language ...
/// </summary>
/// <param name="id"></param>
/// <param name="language">if null, Remove All</param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
[HttpDelete("Resources/{id}")]
public virtual async Task<ActionResult<XSubCategoryResourceDto>> Remove(
[FromRoute] int id,
[FromQuery] string language = null,
CancellationToken cancellationToken = default
)
{
//
try
{
//
// Validate ...
if (!ModelState.IsValid ||
!id.IsValidIntId())
{
XException.InvalidArgs.Throw();
}
//
// Reading Requirements ...
var userInfo = await GetUserInfo();
var connectionId = GetConnectionId();
//
var result = await provider.Remove(
id: id,
language: language,
userInfo: userInfo,
connectionId: connectionId,
cancellationToken: cancellationToken
);
//
return Ok(result.ToDynamicObject());
}
catch (Exception ex)
{
//
var result = GetExceptionActionResult(ex);
return result;
}
}
/// <summary>
/// Update a Category Item for Specified Language ...
/// </summary>