From ccf254e53bd2ba1adbe34c4d1f62f749a470fe99 Mon Sep 17 00:00:00 2001 From: Hadi Khazaee Asl Date: Wed, 10 Dec 2025 03:42:14 +0330 Subject: [PATCH] last ... --- Controllers/XWebinarServiceControllerBase.cs | 110 ++++++++++-------- Interfaces/IXWebinarProvider.cs | 2 +- .../IXWebinarServiceControllerActions.cs | 59 +++++----- Providers/XWebinarProvider.cs | 4 +- 4 files changed, 91 insertions(+), 84 deletions(-) diff --git a/Controllers/XWebinarServiceControllerBase.cs b/Controllers/XWebinarServiceControllerBase.cs index 99c735b..543e31e 100644 --- a/Controllers/XWebinarServiceControllerBase.cs +++ b/Controllers/XWebinarServiceControllerBase.cs @@ -10,10 +10,11 @@ using xCommons.Providers; using xExceptions.Constants; using xIdentityService.Controllers; using xIdentityService.Interfaces; -using xModels.Dtos; using xWebinarService.Interfaces; using xWebinarService.Models.Dtos; using Microsoft.AspNetCore.Http; +using XFileDto = xFileService.Models.Dtos.XFileDto; +using xModels.Dtos; namespace xWebinarService.Controllers { @@ -56,9 +57,16 @@ namespace xWebinarService.Controllers /// /// /// - [HttpPost("Create")] + /// + /// Create Webinar ... + /// + /// + /// + /// + /// + [HttpPost("")] public virtual async Task> CreateWebinar( - [FromBody] XWebinarDto item, + [FromForm] XWebinarDto item, [FromQuery] string tags = null, [FromForm] IFormFileCollection files = null ) @@ -106,10 +114,12 @@ namespace xWebinarService.Controllers /// /// Update a Webinar ... /// + /// /// /// - [HttpPut("Update")] + [HttpPut("{id}")] public virtual async Task> UpdateWebinar( + [FromRoute] Guid id, [FromBody] XWebinarDto item ) { @@ -156,9 +166,9 @@ namespace xWebinarService.Controllers /// /// /// - [HttpGet("")] + [HttpGet("{id}")] public virtual async Task> GetWebinar( - [FromQuery] Guid id + [FromRoute] Guid id ) { // @@ -243,7 +253,7 @@ namespace xWebinarService.Controllers /// /// /// - [HttpGet("QueryOwned")] + [HttpGet("Query/Owned")] public virtual async Task>> QueryOwnedWebinars( [FromQuery] XQuery query ) @@ -280,7 +290,7 @@ namespace xWebinarService.Controllers /// /// /// - [HttpGet("QueryJoinable")] + [HttpGet("Query/Joinable")] public virtual async Task>> QueryJoinableWebinars( [FromQuery] XQuery query ) @@ -317,9 +327,9 @@ namespace xWebinarService.Controllers /// /// /// - [HttpDelete("Remove")] + [HttpDelete("{id}")] public virtual async Task> RemoveWebinar( - [FromQuery] Guid webinarId + [FromRoute] Guid id ) { // @@ -335,7 +345,7 @@ namespace xWebinarService.Controllers // // Retrieve Entity ... - var entity = await WebinarProvider.GetWebinar(webinarId); + var entity = await WebinarProvider.GetWebinar(id); bool has = !entity.IsNullOrDefault(); if (!has) { @@ -353,7 +363,7 @@ namespace xWebinarService.Controllers // var result = await WebinarProvider .RemoveWebinar( - webinarId: webinarId, + webinarId: id, connectionId: connectionId ); @@ -375,13 +385,13 @@ namespace xWebinarService.Controllers /// /// Subscribe a User to Webinar ... /// - /// + /// /// /// - [HttpPost("Subscribe")] + [HttpPost("{id}/Subscribe/{subscriberId}")] public virtual async Task> Subscribe( - [FromQuery] Guid webinarId, - [FromQuery] string subscriberId + [FromRoute] Guid id, + [FromRoute] string subscriberId ) { // @@ -397,7 +407,7 @@ namespace xWebinarService.Controllers // // Retrieve Entity ... - var entity = await WebinarProvider.GetWebinar(webinarId); + var entity = await WebinarProvider.GetWebinar(id); bool has = !entity.IsNullOrDefault(); if (!has) { @@ -418,7 +428,7 @@ namespace xWebinarService.Controllers // var result = await WebinarProvider .Subscribe( - webinarId: webinarId, + webinarId: id, subscriberId: subscriberId, connectionId: connectionId ); @@ -438,13 +448,13 @@ namespace xWebinarService.Controllers /// /// Check Specified User Subscribed on a Webinar or not ... /// - /// + /// /// /// - [HttpGet("IsSubscribed")] + [HttpGet("{id}/IsSubscribed/{subscriberId}")] public virtual async Task> IsSubscribed( - [FromQuery] Guid webinarId, - [FromQuery] string subscriberId + [FromRoute] Guid id, + [FromRoute] string subscriberId ) { // @@ -459,7 +469,7 @@ namespace xWebinarService.Controllers // // Retrieve Entity ... - var entity = await WebinarProvider.GetWebinar(webinarId); + var entity = await WebinarProvider.GetWebinar(id); bool has = !entity.IsNullOrDefault(); if (!has) { @@ -479,7 +489,7 @@ namespace xWebinarService.Controllers // var result = await WebinarProvider .IsSubscribed( - webinarId: webinarId, + webinarId: id, subscriberId: subscriberId ); @@ -498,13 +508,13 @@ namespace xWebinarService.Controllers /// /// Unsubscribe Specified User from a Specified Webinar ... /// - /// + /// /// /// - [HttpDelete("Unsubscribe")] + [HttpDelete("{id}/Unsubscribe/{subscriberId}")] public virtual async Task> Unsubscribe( - [FromQuery] Guid webinarId, - [FromQuery] string subscriberId + [FromRoute] Guid id, + [FromRoute] string subscriberId ) { // @@ -520,7 +530,7 @@ namespace xWebinarService.Controllers // // Retrieve Entity ... - var entity = await WebinarProvider.GetWebinar(webinarId); + var entity = await WebinarProvider.GetWebinar(id); bool has = !entity.IsNullOrDefault(); if (!has) { @@ -541,7 +551,7 @@ namespace xWebinarService.Controllers // var result = await WebinarProvider .Unsubscribe( - webinarId: webinarId, + webinarId: id, subscriberId: subscriberId, connectionId: connectionId ); @@ -561,13 +571,13 @@ namespace xWebinarService.Controllers /// /// Retrieve Specified Subscriber ... /// - /// + /// /// /// - [HttpGet("GetSubscriber")] + [HttpGet("{id}/Subscriber/{subscriberId}")] public virtual async Task> GetSubscriber( - [FromQuery] Guid webinarId, - [FromQuery] string subscriberId + [FromRoute] Guid id, + [FromRoute] string subscriberId ) { // @@ -582,7 +592,7 @@ namespace xWebinarService.Controllers // // Retrieve Entity ... - var entity = await WebinarProvider.GetWebinar(webinarId); + var entity = await WebinarProvider.GetWebinar(id); bool has = !entity.IsNullOrDefault(); if (!has) { @@ -602,7 +612,7 @@ namespace xWebinarService.Controllers // var result = await WebinarProvider .GetSubscriber( - webinarId: webinarId, + webinarId: id, subscriberId: subscriberId ); @@ -621,11 +631,11 @@ namespace xWebinarService.Controllers /// /// Get all Specified Webinars Subscribers ... /// - /// + /// /// - [HttpGet("GetSubscribers")] + [HttpGet("{id}/Subscribers")] public virtual async Task>> GetSubscribers( - [FromQuery] Guid webinarId + [FromRoute] Guid id ) { // @@ -640,7 +650,7 @@ namespace xWebinarService.Controllers // // Retrieve Entity ... - var entity = await WebinarProvider.GetWebinar(webinarId); + var entity = await WebinarProvider.GetWebinar(id); bool has = !entity.IsNullOrDefault(); if (!has) { @@ -659,7 +669,7 @@ namespace xWebinarService.Controllers // var result = await WebinarProvider - .GetSubscribers(webinarId); + .GetSubscribers(id); // return Ok(result. @@ -676,13 +686,13 @@ namespace xWebinarService.Controllers /// /// Query Specified Webinar's Subscribers ... /// - /// + /// /// /// - [HttpGet("QuerySubscribers")] + [HttpGet("{id}/Subscribers/Query")] public virtual async Task>> QuerySubscribers( - [FromQuery] XQuery query, - [FromQuery] Guid webinarId + [FromRoute] Guid id, + [FromQuery] XQuery query ) { // @@ -697,7 +707,7 @@ namespace xWebinarService.Controllers // // Retrieve Entity ... - var entity = await WebinarProvider.GetWebinar(webinarId); + var entity = await WebinarProvider.GetWebinar(id); bool has = !entity.IsNullOrDefault(); if (!has) { @@ -718,7 +728,7 @@ namespace xWebinarService.Controllers var result = await WebinarProvider .QuerySubscribers( query: query, - webinarId: webinarId + webinarId: id ); // @@ -743,7 +753,7 @@ namespace xWebinarService.Controllers /// /// [HttpPost("{id}/Files")] - public virtual async Task>> Upload( + public virtual async Task>> UploadFiles( [FromRoute] Guid id, [FromForm] IFormFileCollection files ) @@ -759,7 +769,7 @@ namespace xWebinarService.Controllers // var result = await WebinarProvider - .Upload( + .UploadFiles( id: id, files: files, userInfo: userInfo, @@ -785,7 +795,7 @@ namespace xWebinarService.Controllers /// /// [HttpDelete("{id}/Files")] - public virtual async Task>> Remove( + public virtual async Task>> RemoveFiles( [FromRoute] Guid id, [FromQuery] string ids = null ) diff --git a/Interfaces/IXWebinarProvider.cs b/Interfaces/IXWebinarProvider.cs index 49c7747..5755ae9 100644 --- a/Interfaces/IXWebinarProvider.cs +++ b/Interfaces/IXWebinarProvider.cs @@ -238,7 +238,7 @@ namespace xWebinarService.Interfaces /// /// /// - Task> Upload( + Task> UploadFiles( Guid id, IFormFileCollection files, XUserClaimsInfoDto userInfo = null, diff --git a/Interfaces/IXWebinarServiceControllerActions.cs b/Interfaces/IXWebinarServiceControllerActions.cs index 49a14a4..928c107 100644 --- a/Interfaces/IXWebinarServiceControllerActions.cs +++ b/Interfaces/IXWebinarServiceControllerActions.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using xModels.Dtos; +using XFileDto = xFileService.Models.Dtos.XFileDto; using xWebinarService.Models.Dtos; namespace xWebinarService.Interfaces @@ -23,7 +24,7 @@ namespace xWebinarService.Interfaces /// /// Task> CreateWebinar( - [FromBody] XWebinarDto item, + [FromForm] XWebinarDto item, [FromQuery] string tags = null, [FromForm] IFormFileCollection files = null ); @@ -31,9 +32,11 @@ namespace xWebinarService.Interfaces /// /// Update a Webinar ... /// + /// /// /// Task> UpdateWebinar( + [FromRoute] Guid id, [FromBody] XWebinarDto item ); @@ -43,7 +46,7 @@ namespace xWebinarService.Interfaces /// /// Task> GetWebinar( - [FromQuery] Guid id + [FromRoute] Guid id ); /// @@ -82,11 +85,10 @@ namespace xWebinarService.Interfaces /// /// Remove Specified Webinar ... /// - /// - /// + /// /// Task> RemoveWebinar( - [FromQuery] Guid webinarId + [FromRoute] Guid id ); #endregion @@ -95,72 +97,67 @@ namespace xWebinarService.Interfaces /// /// Subscribe a User to Webinar ... /// - /// + /// /// - /// /// Task> Subscribe( - [FromQuery] Guid webinarId, - [FromQuery] string subscriberId + [FromRoute] Guid id, + [FromRoute] string subscriberId ); /// /// Check Specified User Subscribed on a Webinar or not ... /// - /// + /// /// /// Task> IsSubscribed( - [FromQuery] Guid webinarId, - [FromQuery] string subscriberId + [FromRoute] Guid id, + [FromRoute] string subscriberId ); /// /// Unsubscribe Specified User from a Specified Webinar ... /// - /// + /// /// - /// /// Task> Unsubscribe( - [FromQuery] Guid webinarId, - [FromQuery] string subscriberId + [FromRoute] Guid id, + [FromRoute] string subscriberId ); /// /// Retrieve Specified Subscriber ... /// - /// + /// /// - /// /// Task> GetSubscriber( - [FromQuery] Guid webinarId, - [FromQuery] string subscriberId + [FromRoute] Guid id, + [FromRoute] string subscriberId ); /// /// Get all Specified Webinars Subscribers ... /// - /// - /// + /// /// Task>> GetSubscribers( - [FromQuery] Guid webinarId + [FromRoute] Guid id ); /// /// Query Specified Webinar's Subscribers ... /// - /// + /// /// - /// /// Task>> QuerySubscribers( - [FromQuery] XQuery query, - [FromQuery] Guid webinarId + [FromRoute] Guid id, + [FromQuery] XQuery query ); - #endregion + #endregion // #region File Actions ... @@ -170,7 +167,7 @@ namespace xWebinarService.Interfaces /// /// /// - Task>> Upload( + Task>> UploadFiles( [FromRoute] Guid id, [FromForm] IFormFileCollection files ); @@ -181,7 +178,7 @@ namespace xWebinarService.Interfaces /// /// /// - Task>> Remove( + Task>> RemoveFiles( [FromRoute] Guid id, [FromQuery] string ids = null ); @@ -218,7 +215,7 @@ namespace xWebinarService.Interfaces Task TagsDetach( [FromRoute] Guid id, [FromQuery] string tags - ); + ); #endregion } } \ No newline at end of file diff --git a/Providers/XWebinarProvider.cs b/Providers/XWebinarProvider.cs index 1ca3435..5606920 100644 --- a/Providers/XWebinarProvider.cs +++ b/Providers/XWebinarProvider.cs @@ -313,7 +313,7 @@ namespace xWebinarService.Providers try { // - await Upload( + await UploadFiles( id: entity.Id, files: files, userInfo: userInfo @@ -1409,7 +1409,7 @@ namespace xWebinarService.Providers /// /// /// - public async Task> Upload( + public async Task> UploadFiles( Guid id, IFormFileCollection files, XUserClaimsInfoDto userInfo = null,