last works ...

This commit is contained in:
2025-12-09 17:06:15 +03:30
parent 8d0e98a81e
commit 5a76acbc67
4 changed files with 67 additions and 47 deletions
+16 -19
View File
@@ -9,7 +9,6 @@ using xCommons.Configurations;
using xCommons.Extensions; using xCommons.Extensions;
using xCommons.Providers; using xCommons.Providers;
using xFileService.Interfaces; using xFileService.Interfaces;
using xFileService.Models.Dtos;
using xIdentityService.Controllers; using xIdentityService.Controllers;
using xIdentityService.Interfaces; using xIdentityService.Interfaces;
using xModels.Dtos; using xModels.Dtos;
@@ -56,7 +55,7 @@ namespace xFileService.Controllers
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("Tags/Attach")] [HttpGet("Tags/Attach")]
public async Task<ActionResult> TagAttach( public virtual async Task<ActionResult> TagAttach(
[FromQuery] string tag, [FromQuery] string tag,
[FromQuery] Guid id [FromQuery] Guid id
) )
@@ -98,7 +97,7 @@ namespace xFileService.Controllers
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("Tags/Detach")] [HttpGet("Tags/Detach")]
public async Task<ActionResult> TagDetach( public virtual async Task<ActionResult> TagDetach(
[FromQuery] string tag, [FromQuery] string tag,
[FromQuery] Guid id [FromQuery] Guid id
) )
@@ -140,7 +139,7 @@ namespace xFileService.Controllers
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("Tags/AttachMany")] [HttpGet("Tags/AttachMany")]
public async Task<ActionResult> TagsAttach( public virtual async Task<ActionResult> TagsAttach(
[FromQuery] string tags, [FromQuery] string tags,
[FromQuery] Guid id [FromQuery] Guid id
) )
@@ -185,7 +184,7 @@ namespace xFileService.Controllers
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("Tags/DetachMany")] [HttpGet("Tags/DetachMany")]
public async Task<ActionResult> TagsDetach( public virtual async Task<ActionResult> TagsDetach(
[FromQuery] string tags, [FromQuery] string tags,
[FromQuery] Guid id [FromQuery] Guid id
) )
@@ -232,7 +231,7 @@ namespace xFileService.Controllers
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("{id}/Stream/ById")] [HttpGet("{id}/Stream/ById")]
public async Task<ActionResult> Stream( public virtual async Task<ActionResult> Stream(
[FromRoute] Guid id [FromRoute] Guid id
) )
{ {
@@ -260,7 +259,7 @@ namespace xFileService.Controllers
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("{name}/Stream/ByName")] [HttpGet("{name}/Stream/ByName")]
public async Task<ActionResult<FileStreamResult>> Stream( public virtual async Task<ActionResult> Stream(
[FromRoute] string name [FromRoute] string name
) )
{ {
@@ -288,7 +287,7 @@ namespace xFileService.Controllers
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("{id}/Download/ById")] [HttpGet("{id}/Download/ById")]
public async Task<ActionResult> Download( public virtual async Task<ActionResult> Download(
[FromRoute] Guid id [FromRoute] Guid id
) )
{ {
@@ -316,7 +315,7 @@ namespace xFileService.Controllers
/// <param name="fileName"></param> /// <param name="fileName"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("{name}/Download/ByName")] [HttpGet("{name}/Download/ByName")]
public async Task<ActionResult> Download( public virtual async Task<ActionResult> Download(
[FromRoute] string name [FromRoute] string name
) )
{ {
@@ -345,7 +344,7 @@ namespace xFileService.Controllers
/// <returns></returns> /// <returns></returns>
[HttpPost("Upload")] [HttpPost("Upload")]
[RequestSizeLimit(966_367_641)] [RequestSizeLimit(966_367_641)]
public async Task<ActionResult<IEnumerable<XFileDto>>> Upload( public virtual async Task<ActionResult<IEnumerable<XFileDto>>> Upload(
[FromForm] IFormFileCollection files [FromForm] IFormFileCollection files
) )
{ {
@@ -386,7 +385,7 @@ namespace xFileService.Controllers
/// <returns></returns> /// <returns></returns>
/// [HttpDelete("Remove")] /// [HttpDelete("Remove")]
[HttpDelete("Remove")] [HttpDelete("Remove")]
public async Task<ActionResult<IEnumerable<Guid>>> Remove( public virtual async Task<ActionResult<IEnumerable<Guid>>> Remove(
[FromQuery] string ids [FromQuery] string ids
) { ) {
// //
@@ -426,10 +425,9 @@ namespace xFileService.Controllers
/// Get Specified File Model ... /// Get Specified File Model ...
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name="id"></param>
/// <param name="ignoreSoftDeleteds"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("{id}")] [HttpGet("{id}")]
public async Task<ActionResult<XFileDto>> Get( public virtual async Task<ActionResult<XFileDto>> Get(
[FromRoute] Guid id [FromRoute] Guid id
) { ) {
// //
@@ -454,10 +452,9 @@ namespace xFileService.Controllers
/// <summary> /// <summary>
/// Get All Exists File Models ... /// Get All Exists File Models ...
/// </summary> /// </summary>
/// <param name="ignoreSoftDeleteds"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("All")] [HttpGet("All")]
public async Task<ActionResult<IEnumerable<XFileDto>>> GetAll() { public virtual async Task<ActionResult<IEnumerable<XFileDto>>> GetAll() {
// //
// Do ... // Do ...
try try
@@ -483,7 +480,7 @@ namespace xFileService.Controllers
/// <param name="query"></param> /// <param name="query"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("Query")] [HttpGet("Query")]
public async Task<ActionResult<XQueryResult<XFileDto>>> Query( public virtual async Task<ActionResult<XQueryResult<XFileDto>>> Query(
[FromQuery] XQuery query [FromQuery] XQuery query
) { ) {
// //
@@ -511,7 +508,7 @@ namespace xFileService.Controllers
/// <param name="query"></param> /// <param name="query"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("Owned/Query")] [HttpGet("Owned/Query")]
public async Task<ActionResult<XQueryResult<XFileDto>>> QueryOwned( public virtual async Task<ActionResult<XQueryResult<XFileDto>>> QueryOwned(
[FromQuery] XQuery query [FromQuery] XQuery query
) { ) {
// //
@@ -545,7 +542,7 @@ namespace xFileService.Controllers
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpGet("Count")] [HttpGet("Count")]
public async Task<ActionResult<int>> Count() { public virtual async Task<ActionResult<int>> Count() {
// //
// Do ... // Do ...
try try
@@ -571,7 +568,7 @@ namespace xFileService.Controllers
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("{id}/IsExists")] [HttpGet("{id}/IsExists")]
public async Task<ActionResult<bool>> IsExists( public virtual async Task<ActionResult<bool>> IsExists(
[FromRoute] Guid id [FromRoute] Guid id
) { ) {
// //
+7 -3
View File
@@ -77,11 +77,13 @@ namespace xFileService.Interfaces
/// <param name="forProvidedId"></param> /// <param name="forProvidedId"></param>
/// <param name="files"></param> /// <param name="files"></param>
/// <param name="userInfo"></param> /// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <returns></returns> /// <returns></returns>
Task<IEnumerable<XFileDto>> Upload( Task<IEnumerable<XFileDto>> Upload(
TKey forProvidedId, TKey forProvidedId,
IFormFileCollection files, IFormFileCollection files,
XUserClaimsInfoDto userInfo = null XUserClaimsInfoDto userInfo = null,
string connectionId = null
); );
/// <summary> /// <summary>
@@ -90,11 +92,13 @@ namespace xFileService.Interfaces
/// <param name="forProvidedId"></param> /// <param name="forProvidedId"></param>
/// <param name="ids"></param> /// <param name="ids"></param>
/// <param name="userInfo"></param> /// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <returns></returns> /// <returns></returns>
Task<IEnumerable<Guid>> Remove( Task<IEnumerable<Guid>> Remove(
TKey forProvidedId, TKey forProvidedId,
string ids, string ids = null,
XUserClaimsInfoDto userInfo = null XUserClaimsInfoDto userInfo = null,
string connectionId = null
); );
/// <summary> /// <summary>
+27 -19
View File
@@ -21,8 +21,8 @@ namespace xFileService.Interfaces
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
Task<ActionResult> TagAttach( Task<ActionResult> TagAttach(
string tag, [FromQuery] string tag,
Guid id [FromQuery] Guid id
); );
/// <summary> /// <summary>
@@ -32,8 +32,8 @@ namespace xFileService.Interfaces
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
Task<ActionResult> TagDetach( Task<ActionResult> TagDetach(
string tag, [FromQuery] string tag,
Guid id [FromQuery] Guid id
); );
/// <summary> /// <summary>
@@ -43,8 +43,8 @@ namespace xFileService.Interfaces
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
Task<ActionResult> TagsAttach( Task<ActionResult> TagsAttach(
string tags, [FromQuery] string tags,
Guid id [FromQuery] Guid id
); );
/// <summary> /// <summary>
@@ -54,8 +54,8 @@ namespace xFileService.Interfaces
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
Task<ActionResult> TagsDetach( Task<ActionResult> TagsDetach(
string tags, [FromQuery] string tags,
Guid id [FromQuery] Guid id
); );
#endregion #endregion
@@ -66,28 +66,36 @@ namespace xFileService.Interfaces
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
Task<ActionResult> Stream(Guid id); Task<ActionResult> Stream(
[FromRoute] Guid id
);
/// <summary> /// <summary>
/// Stream Specified File ... /// Stream Specified File ...
/// </summary> /// </summary>
/// <param name="fileName"></param> /// <param name="fileName"></param>
/// <returns></returns> /// <returns></returns>
Task<ActionResult<FileStreamResult>> Stream(string fileName); Task<ActionResult> Stream(
[FromRoute] string fileName
);
/// <summary> /// <summary>
/// Download Specified File ... /// Download Specified File ...
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
Task<ActionResult> Download(Guid id); Task<ActionResult> Download(
[FromRoute] Guid id
);
/// <summary> /// <summary>
/// Download Specified File ... /// Download Specified File ...
/// </summary> /// </summary>
/// <param name="fileName"></param> /// <param name="name"></param>
/// <returns></returns> /// <returns></returns>
Task<ActionResult> Download(string fileName); Task<ActionResult> Download(
[FromRoute] string name
);
/// <summary> /// <summary>
/// Upload Files ... /// Upload Files ...
@@ -95,7 +103,7 @@ namespace xFileService.Interfaces
/// <param name="files"></param> /// <param name="files"></param>
/// <returns></returns> /// <returns></returns>
Task<ActionResult<IEnumerable<XFileDto>>> Upload( Task<ActionResult<IEnumerable<XFileDto>>> Upload(
IFormFileCollection files [FromForm] IFormFileCollection files
); );
/// <summary> /// <summary>
@@ -104,7 +112,7 @@ namespace xFileService.Interfaces
/// <param name="ids"></param> /// <param name="ids"></param>
/// <returns></returns> /// <returns></returns>
Task<ActionResult<IEnumerable<Guid>>> Remove( Task<ActionResult<IEnumerable<Guid>>> Remove(
string ids [FromQuery] string ids
); );
#endregion #endregion
@@ -117,7 +125,7 @@ namespace xFileService.Interfaces
/// <param name="ignoreSoftDeleteds"></param> /// <param name="ignoreSoftDeleteds"></param>
/// <returns></returns> /// <returns></returns>
Task<ActionResult<XFileDto>> Get( Task<ActionResult<XFileDto>> Get(
Guid id [FromRoute] Guid id
); );
/// <summary> /// <summary>
@@ -133,7 +141,7 @@ namespace xFileService.Interfaces
/// <param name="query"></param> /// <param name="query"></param>
/// <returns></returns> /// <returns></returns>
Task<ActionResult<XQueryResult<XFileDto>>> Query( Task<ActionResult<XQueryResult<XFileDto>>> Query(
XQuery query [FromQuery] XQuery query
); );
/// <summary> /// <summary>
@@ -142,7 +150,7 @@ namespace xFileService.Interfaces
/// <param name="query"></param> /// <param name="query"></param>
/// <returns></returns> /// <returns></returns>
Task<ActionResult<XQueryResult<XFileDto>>> QueryOwned( Task<ActionResult<XQueryResult<XFileDto>>> QueryOwned(
XQuery query [FromQuery] XQuery query
); );
/// <summary> /// <summary>
@@ -157,7 +165,7 @@ namespace xFileService.Interfaces
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
Task<ActionResult<bool>> IsExists( Task<ActionResult<bool>> IsExists(
Guid id [FromRoute] Guid id
); );
#endregion #endregion
} }
+17 -6
View File
@@ -5,6 +5,7 @@ using System.Linq.Expressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using MongoDB.Driver.Core.Connections;
using xCommons.Extensions; using xCommons.Extensions;
using xExceptions.Constants; using xExceptions.Constants;
using xFileService.Interfaces; using xFileService.Interfaces;
@@ -167,11 +168,13 @@ namespace xFileService.Providers
/// <param name="forProvidedId"></param> /// <param name="forProvidedId"></param>
/// <param name="files"></param> /// <param name="files"></param>
/// <param name="userInfo"></param> /// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <returns></returns> /// <returns></returns>
public async Task<IEnumerable<XFileDto>> Upload( public async Task<IEnumerable<XFileDto>> Upload(
TKey forProvidedId, TKey forProvidedId,
IFormFileCollection files, IFormFileCollection files,
XUserClaimsInfoDto userInfo = null XUserClaimsInfoDto userInfo = null,
string connectionId = null
) )
{ {
// //
@@ -186,7 +189,8 @@ namespace xFileService.Providers
// Here we are Following Custom Senario ... // Here we are Following Custom Senario ...
var dtos = await Provider.Upload( var dtos = await Provider.Upload(
files: files, files: files,
userInfo: userInfo userInfo: userInfo,
connectionId: connectionId
); );
// //
@@ -237,11 +241,13 @@ namespace xFileService.Providers
/// <param name="forProvidedId"></param> /// <param name="forProvidedId"></param>
/// <param name="ids"></param> /// <param name="ids"></param>
/// <param name="userInfo"></param> /// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <returns></returns> /// <returns></returns>
public async Task<IEnumerable<Guid>> Remove( public async Task<IEnumerable<Guid>> Remove(
TKey forProvidedId, TKey forProvidedId,
string ids = null, string ids = null,
XUserClaimsInfoDto userInfo = null XUserClaimsInfoDto userInfo = null,
string connectionId = null
) )
{ {
// //
@@ -283,7 +289,7 @@ namespace xFileService.Providers
{ {
// //
var dtoIds = new List<string> { dto.Id.ToString() }.ToListString(); var dtoIds = new List<string> { dto.Id.ToString() }.ToListString();
var removeIds = await Provider.Remove(dtoIds, userInfo); var removeIds = await Provider.Remove(dtoIds, userInfo, connectionId);
isValid = !removeIds.IsNull() && removeIds.HasChild() && removeIds.Contains(dto.Id); isValid = !removeIds.IsNull() && removeIds.HasChild() && removeIds.Contains(dto.Id);
if (isValid) if (isValid)
{ {
@@ -752,11 +758,13 @@ namespace xFileService.Providers
/// <param name="forProvidedId"></param> /// <param name="forProvidedId"></param>
/// <param name="id"></param> /// <param name="id"></param>
/// <param name="userInfo"></param> /// <param name="userInfo"></param>
/// <param name="connectionId"></param>
/// <returns></returns> /// <returns></returns>
private async Task AddReference( private async Task AddReference(
TKey forProvidedId, TKey forProvidedId,
Guid id, Guid id,
XUserClaimsInfoDto userInfo = null XUserClaimsInfoDto userInfo = null,
string connectionId = null
) )
{ {
// //
@@ -764,6 +772,7 @@ namespace xFileService.Providers
id: id, id: id,
userInfo: userInfo, userInfo: userInfo,
providedFor: ProvidedFor, providedFor: ProvidedFor,
connectionId: connectionId,
forProvidedId: forProvidedId forProvidedId: forProvidedId
); );
} }
@@ -778,7 +787,8 @@ namespace xFileService.Providers
private async Task RemoveReference( private async Task RemoveReference(
TKey forProvidedId, TKey forProvidedId,
Guid id, Guid id,
XUserClaimsInfoDto userInfo = null XUserClaimsInfoDto userInfo = null,
string connectionId = null
) )
{ {
// //
@@ -786,6 +796,7 @@ namespace xFileService.Providers
id: id, id: id,
userInfo: userInfo, userInfo: userInfo,
providedFor: ProvidedFor, providedFor: ProvidedFor,
connectionId: connectionId,
forProvidedId: forProvidedId forProvidedId: forProvidedId
); );
} }