#429 remove selected naskban links

This commit is contained in:
Hamid Reza Mohammadi 2024-04-04 14:09:44 +03:30
parent c4e79a70bc
commit b03deae151
4 changed files with 73 additions and 2 deletions

View File

@ -3658,6 +3658,28 @@ namespace RMuseum.Controllers
return Ok(res.Result);
}
/// <summary>
/// delete poem related naskban images by url
/// </summary>
/// <param name="naskbanUrl"></param>
/// <returns></returns>
[HttpDelete]
[Route("naskban")]
[Authorize(Policy = RMuseumSecurableItem.GanjoorEntityShortName + ":" + SecurableItem.ModifyOperationShortName)]
[ProducesResponseType((int)HttpStatusCode.OK)]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
[ProducesResponseType((int)HttpStatusCode.NotFound)]
public async Task<IActionResult> DeletePoemRelatedNaskbanImagesByNaskbanUrlAsync(string naskbanUrl)
{
var res = await _ganjoorService.DeletePoemRelatedNaskbanImagesByNaskbanUrlAsync(naskbanUrl);
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
if (res.Result == false)
return NotFound();
return Ok();
}
/// <summary>
/// extracting quoted poems
/// </summary>

View File

@ -2015,6 +2015,13 @@
<param name="loginViewModel"></param>
<returns>number of synched links</returns>
</member>
<member name="M:RMuseum.Controllers.GanjoorController.DeletePoemRelatedNaskbanImagesByNaskbanUrlAsync(System.String)">
<summary>
delete poem related naskban images by url
</summary>
<param name="naskbanUrl"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.GanjoorController.StartExtractingQuotedPoems">
<summary>
extracting quoted poems
@ -15890,6 +15897,13 @@
<param name="naskbanPassword"></param>
<returns>number of synched items</returns>
</member>
<member name="M:RMuseum.Services.IGanjoorService.DeletePoemRelatedNaskbanImagesByNaskbanUrlAsync(System.String)">
<summary>
delete poem related naskban images by url
</summary>
<param name="naskbanUrl"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Services.IGanjoorService.StartFillingSectionsPoemFormats">
<summary>
filling poem formats
@ -18901,6 +18915,13 @@
<param name="naskbanPassword"></param>
<returns>number of synched items</returns>
</member>
<member name="M:RMuseum.Services.Implementation.GanjoorService.DeletePoemRelatedNaskbanImagesByNaskbanUrlAsync(System.String)">
<summary>
delete poem related naskban images by url
</summary>
<param name="naskbanUrl"></param>
<returns></returns>
</member>
<member name="P:RMuseum.Services.Implementation.GanjoorService.AggressiveCacheEnabled">
<summary>
aggressive cache

View File

@ -1213,6 +1213,13 @@ namespace RMuseum.Services
/// <returns>number of synched items</returns>
Task<RServiceResult<int>> SynchronizeNaskbanLinksAsync(Guid ganjoorUserId, string naskbanUserName, string naskbanPassword);
/// <summary>
/// delete poem related naskban images by url
/// </summary>
/// <param name="naskbanUrl"></param>
/// <returns></returns>
Task<RServiceResult<bool>> DeletePoemRelatedNaskbanImagesByNaskbanUrlAsync(string naskbanUrl);
/// <summary>
/// filling poem formats
/// </summary>

View File

@ -31,9 +31,7 @@ using System.Net;
using System.Text;
using RMuseum.Models.Auth.ViewModel;
using System.Net.Http.Headers;
using RMuseum.Models.GanjoorIntegration.ViewModels;
using RMuseum.Models.GanjoorIntegration;
using Microsoft.VisualBasic.ApplicationServices;
namespace RMuseum.Services.Implementation
{
@ -3818,6 +3816,29 @@ namespace RMuseum.Services.Implementation
}
}
/// <summary>
/// delete poem related naskban images by url
/// </summary>
/// <param name="naskbanUrl"></param>
/// <returns></returns>
public async Task<RServiceResult<bool>> DeletePoemRelatedNaskbanImagesByNaskbanUrlAsync(string naskbanUrl)
{
try
{
var images = await _context.PinterestLinks.Where(l => l.PinterestUrl == naskbanUrl && l.LinkType == LinkType.Naskban).ToListAsync();
if (images.Count > 0)
{
_context.RemoveRange(images);
await _context.SaveChangesAsync();
}
return new RServiceResult<bool>(true);
}
catch (Exception exp)
{
return new RServiceResult<bool>(false, exp.ToString());
}
}
/// <summary>
/// aggressive cache
/// </summary>