last works ...

This commit is contained in:
2025-12-09 17:06:26 +03:30
parent 496a985752
commit 0109abb961
4 changed files with 632 additions and 69 deletions
+262 -33
View File
@@ -13,6 +13,7 @@ using xIdentityService.Interfaces;
using xModels.Dtos;
using xWebinarService.Interfaces;
using xWebinarService.Models.Dtos;
using Microsoft.AspNetCore.Http;
namespace xWebinarService.Controllers
{
@@ -52,10 +53,14 @@ namespace xWebinarService.Controllers
/// Create Webinar ...
/// </summary>
/// <param name="item"></param>
/// <param name="tags"></param>
/// <param name="files"></param>
/// <returns></returns>
[HttpPost("Create")]
public virtual async Task<ActionResult<XWebinarDto>> CreateWebinar(
[FromBody] XWebinarDto item
[FromBody] XWebinarDto item,
[FromQuery] string tags = null,
[FromForm] IFormFileCollection files = null
)
{
//
@@ -77,9 +82,12 @@ namespace xWebinarService.Controllers
}
//
var tagList = tags.ParseListString<string>();
var result = await WebinarProvider
.CreateWebinar(
item: item,
files: files,
tags: tagList,
connectionId: connectionId
);
@@ -200,33 +208,6 @@ namespace xWebinarService.Controllers
}
}
/// <summary>
/// Retrieve all Exists Webinar Ids ...
/// </summary>
/// <returns></returns>
[HttpGet("Ids")]
public virtual ActionResult<IEnumerable<Guid>> GetWebinarIds()
{
//
// Do ...
try
{
//
var result = WebinarProvider
.GetWebinarIds();
//
return Ok(result.
ToDynamicObject());
}
catch (Exception ex)
{
//
var result = GetExceptionActionResult(ex);
return result;
}
}
/// <summary>
/// Query Webinars ...
/// </summary>
@@ -258,12 +239,12 @@ namespace xWebinarService.Controllers
}
/// <summary>
/// Query Webinar Ids ...
/// Query Owned Webinars ...
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
[HttpGet("QueryIds")]
public virtual ActionResult<XQueryResult<Guid>> QueryWebinarIds(
[HttpGet("QueryOwned")]
public virtual async Task<ActionResult<XQueryResult<XWebinarDto>>> QueryOwnedWebinars(
[FromQuery] XQuery query
)
{
@@ -272,8 +253,52 @@ namespace xWebinarService.Controllers
try
{
//
var result = WebinarProvider
.QueryWebinarIds(query);
// Retrieve User Info ...
var userInfo = await GetUserInfo();
//
var result = await WebinarProvider
.QueryOwnedWebinars(
query: query,
userInfo: userInfo
);
//
return Ok(result.
ToDynamicObject());
}
catch (Exception ex)
{
//
var result = GetExceptionActionResult(ex);
return result;
}
}
/// <summary>
/// Query Joinable Webinars ...
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
[HttpGet("QueryJoinable")]
public virtual async Task<ActionResult<XQueryResult<XWebinarDto>>> QueryJoinableWebinars(
[FromQuery] XQuery query
)
{
//
// Do ...
try
{
//
// Retrieve User Info ...
var userInfo = await GetUserInfo();
//
var result = await WebinarProvider
.QueryJoinableWebinars(
query: query,
userInfo: userInfo
);
//
return Ok(result.
@@ -708,5 +733,209 @@ namespace xWebinarService.Controllers
}
}
#endregion
//
#region File Actions ...
/// <summary>
/// Upload Specified Files for Specified Webinar ...
/// </summary>
/// <param name="id"></param>
/// <param name="files"></param>
/// <returns></returns>
[HttpPost("{id}/Files")]
public virtual async Task<ActionResult<IEnumerable<XFileDto>>> Upload(
[FromRoute] Guid id,
[FromForm] IFormFileCollection files
)
{
//
// Do ...
try
{
//
// Retrieve User Info ...
var userInfo = await GetUserInfo();
var connectionId = GetConnectionId();
//
var result = await WebinarProvider
.Upload(
id: id,
files: files,
userInfo: userInfo,
connectionId: connectionId
);
//
return Ok(result.
ToDynamicObject());
}
catch (Exception ex)
{
//
var result = GetExceptionActionResult(ex);
return result;
}
}
/// <summary>
/// Remove Specified (All) Files of Specified Webinar ...
/// </summary>
/// <param name="id"></param>
/// <param name="ids"></param>
/// <returns></returns>
[HttpDelete("{id}/Files")]
public virtual async Task<ActionResult<IEnumerable<XFileDto>>> Remove(
[FromRoute] Guid id,
[FromQuery] string ids = null
)
{
//
// Do ...
try
{
//
// Retrieve User Info ...
var userInfo = await GetUserInfo();
var connectionId = GetConnectionId();
//
var result = await WebinarProvider
.RemoveFiles(
id: id,
ids: ids,
userInfo: userInfo,
connectionId: connectionId
);
//
return Ok(result.
ToDynamicObject());
}
catch (Exception ex)
{
//
var result = GetExceptionActionResult(ex);
return result;
}
}
/// <summary>
/// Retrieve Specified Webinar's Files ...
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet("{id}/Files")]
public virtual async Task<ActionResult<IEnumerable<XFileDto>>> GetFiles(
[FromRoute] Guid id
)
{
//
// Do ...
try
{
//
var result = await WebinarProvider
.GetFiles(id);
//
return Ok(result.
ToDynamicObject());
}
catch (Exception ex)
{
//
var result = GetExceptionActionResult(ex);
return result;
}
}
#endregion
//
#region Tags Actions ...
/// <summary>
/// Attach Specified Tags To Specified Webinar ...
/// </summary>
/// <param name="id"></param>
/// <param name="tags"></param>
/// <returns></returns>
[HttpPost("{id}/Tags")]
public virtual async Task<ActionResult> TagsAttach(
[FromRoute] Guid id,
[FromQuery] string tags
)
{
//
// Do ...
try
{
//
// Retrieve User Info ...
var userInfo = await GetUserInfo();
var connectionId = GetConnectionId();
//
var tagsList = tags.ParseListString<string>();
await WebinarProvider
.TagsAttach(
id: id,
tags: tagsList,
userInfo: userInfo,
connectionId: connectionId
);
//
return Ok();
}
catch (Exception ex)
{
//
var result = GetExceptionActionResult(ex);
return result;
}
}
/// <summary>
/// Detach Specified Tags From Specified Webinar ...
/// </summary>
/// <param name="id"></param>
/// <param name="tags"></param>
/// <returns></returns>
[HttpDelete("{id}/Tags")]
public virtual async Task<ActionResult> TagsDetach(
[FromRoute] Guid id,
[FromQuery] string tags
)
{
//
// Do ...
try
{
//
// Retrieve User Info ...
var userInfo = await GetUserInfo();
var connectionId = GetConnectionId();
//
var tagsList = tags.ParseListString<string>();
await WebinarProvider
.TagsDetach(
id: id,
tags: tagsList,
userInfo: userInfo,
connectionId: connectionId
);
//
return Ok();
}
catch (Exception ex)
{
//
var result = GetExceptionActionResult(ex);
return result;
}
}
#endregion
}
}