removing naskban links: bug fix + an option for not removing ganjoor links
This commit is contained in:
parent
233cfee0b0
commit
4cdd3782b2
@ -2008,15 +2008,16 @@ namespace RMuseum.Controllers
|
||||
/// remove ganjoor link
|
||||
/// </summary>
|
||||
/// <param name="linkId"></param>
|
||||
/// <param name="removeItemLink"></param>
|
||||
/// <returns></returns>
|
||||
[HttpDelete]
|
||||
[Route("ganjoor")]
|
||||
[Authorize(Policy = RMuseumSecurableItem.ArtifactEntityShortName + ":" + RMuseumSecurableItem.ReviewGanjoorLinksOperationShortName)]
|
||||
[ProducesResponseType((int)HttpStatusCode.OK)]
|
||||
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
|
||||
public async Task<IActionResult> RemoveGanjoorLinkAsync(Guid linkId)
|
||||
public async Task<IActionResult> RemoveGanjoorLinkAsync(Guid linkId, bool removeItemLink)
|
||||
{
|
||||
RServiceResult<bool> suggestion = await _artifactService.RemoveGanjoorLinkAsync(linkId);
|
||||
RServiceResult<bool> suggestion = await _artifactService.RemoveGanjoorLinkAsync(linkId, removeItemLink);
|
||||
if (!string.IsNullOrEmpty(suggestion.ExceptionString))
|
||||
return BadRequest(suggestion.ExceptionString);
|
||||
return Ok();
|
||||
|
||||
@ -585,11 +585,12 @@
|
||||
<param name="displayOnPage">display ogn page</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Controllers.ArtifactController.RemoveGanjoorLinkAsync(System.Guid)">
|
||||
<member name="M:RMuseum.Controllers.ArtifactController.RemoveGanjoorLinkAsync(System.Guid,System.Boolean)">
|
||||
<summary>
|
||||
remove ganjoor link
|
||||
</summary>
|
||||
<param name="linkId"></param>
|
||||
<param name="removeItemLink"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Controllers.ArtifactController.AddTOCForSuggestedLinks">
|
||||
@ -15285,11 +15286,12 @@
|
||||
<param name="result"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IArtifactService.RemoveGanjoorLinkAsync(System.Guid)">
|
||||
<member name="M:RMuseum.Services.IArtifactService.RemoveGanjoorLinkAsync(System.Guid,System.Boolean)">
|
||||
<summary>
|
||||
remove ganjoor link
|
||||
</summary>
|
||||
<param name="id"></param>
|
||||
<param name="removeItemLink"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IArtifactService.AddTOCForSuggestedLinks">
|
||||
@ -18096,11 +18098,12 @@
|
||||
<param name="result"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.ArtifactService.RemoveGanjoorLinkAsync(System.Guid)">
|
||||
<member name="M:RMuseum.Services.Implementation.ArtifactService.RemoveGanjoorLinkAsync(System.Guid,System.Boolean)">
|
||||
<summary>
|
||||
remove ganjoor link
|
||||
</summary>
|
||||
<param name="id"></param>
|
||||
<param name="removeItemLink"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.ArtifactService.AddTOCForSuggestedLinks">
|
||||
|
||||
@ -496,8 +496,9 @@ namespace RMuseum.Services
|
||||
/// remove ganjoor link
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="removeItemLink"></param>
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<bool>> RemoveGanjoorLinkAsync(Guid id);
|
||||
Task<RServiceResult<bool>> RemoveGanjoorLinkAsync(Guid id, bool removeItemLink);
|
||||
|
||||
/// <summary>
|
||||
/// Temporary api
|
||||
|
||||
@ -3083,8 +3083,9 @@ namespace RMuseum.Services.Implementation
|
||||
/// remove ganjoor link
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="removeItemLink"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<bool>> RemoveGanjoorLinkAsync(Guid id)
|
||||
public async Task<RServiceResult<bool>> RemoveGanjoorLinkAsync(Guid id, bool removeItemLink)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -3092,34 +3093,37 @@ namespace RMuseum.Services.Implementation
|
||||
await _context.GanjoorLinks
|
||||
.Where(l => l.Id == id)
|
||||
.SingleAsync();
|
||||
GanjoorPoem poem = await _context.GanjoorPoems.AsNoTracking().Where(p => p.Id == link.GanjoorPostId).SingleOrDefaultAsync();
|
||||
if (poem != null)
|
||||
if(removeItemLink)
|
||||
{
|
||||
var item = await _context.Items.Include(i => i.Tags).Where(i => i.Id == link.ItemId).SingleAsync();
|
||||
bool itemNeedsUpdate = false;
|
||||
RTag ganjoorlinkTagType = await _context.Tags.AsNoTracking().Where(a => a.NameInEnglish == "Ganjoor Link").SingleAsync();
|
||||
if (item.Tags.Any(t => t.RTagId == ganjoorlinkTagType.Id && t.ValueSupplement == $"https://ganjoor.net{poem.FullUrl}"))
|
||||
GanjoorPoem poem = await _context.GanjoorPoems.AsNoTracking().Where(p => p.Id == link.GanjoorPostId).SingleOrDefaultAsync();
|
||||
if (poem != null)
|
||||
{
|
||||
var tags = item.Tags.Where(t => t.RTagId == ganjoorlinkTagType.Id && t.ValueSupplement == $"https://ganjoor.net{poem.FullUrl}").ToList();
|
||||
foreach (var tag in tags)
|
||||
var item = await _context.Items.Include(i => i.Tags).Where(i => i.Id == link.ItemId).SingleAsync();
|
||||
bool itemNeedsUpdate = false;
|
||||
RTag ganjoorlinkTagType = await _context.Tags.AsNoTracking().Where(a => a.NameInEnglish == "Ganjoor Link").SingleAsync();
|
||||
if (item.Tags.Any(t => t.RTagId == ganjoorlinkTagType.Id && t.ValueSupplement == $"https://ganjoor.net{poem.FullUrl}"))
|
||||
{
|
||||
item.Tags.Remove(tag);
|
||||
var tags = item.Tags.Where(t => t.RTagId == ganjoorlinkTagType.Id && t.ValueSupplement == $"https://ganjoor.net{poem.FullUrl}").ToList();
|
||||
foreach (var tag in tags)
|
||||
{
|
||||
item.Tags.Remove(tag);
|
||||
}
|
||||
itemNeedsUpdate = true;
|
||||
}
|
||||
itemNeedsUpdate = true;
|
||||
}
|
||||
RTag ganjoorTOCTagType = await _context.Tags.AsNoTracking().Where(a => a.NameInEnglish == "Title in TOC").SingleAsync();
|
||||
if (item.Tags.Any(t => t.RTagId == ganjoorTOCTagType.Id && t.Value == poem.FullTitle))
|
||||
{
|
||||
var tags = item.Tags.Where(t => t.RTagId == ganjoorTOCTagType.Id && t.Value == poem.FullTitle).ToList();
|
||||
foreach (var tag in tags)
|
||||
RTag ganjoorTOCTagType = await _context.Tags.AsNoTracking().Where(a => a.NameInEnglish == "Title in TOC").SingleAsync();
|
||||
if (item.Tags.Any(t => t.RTagId == ganjoorTOCTagType.Id && t.Value == poem.FullTitle))
|
||||
{
|
||||
item.Tags.Remove(tag);
|
||||
var tags = item.Tags.Where(t => t.RTagId == ganjoorTOCTagType.Id && t.Value == poem.FullTitle).ToList();
|
||||
foreach (var tag in tags)
|
||||
{
|
||||
item.Tags.Remove(tag);
|
||||
}
|
||||
itemNeedsUpdate = true;
|
||||
}
|
||||
if (itemNeedsUpdate)
|
||||
{
|
||||
_context.Update(item);
|
||||
}
|
||||
itemNeedsUpdate = true;
|
||||
}
|
||||
if (itemNeedsUpdate)
|
||||
{
|
||||
_context.Update(item);
|
||||
}
|
||||
}
|
||||
_context.Remove(link);
|
||||
@ -3532,39 +3536,6 @@ namespace RMuseum.Services.Implementation
|
||||
.Where(l => l.Id == id)
|
||||
.SingleAsync();
|
||||
|
||||
GanjoorPoem poem = await _context.GanjoorPoems.AsNoTracking().Where(p => p.Id == link.GanjoorPostId).SingleOrDefaultAsync();
|
||||
if(poem != null)
|
||||
{
|
||||
var item = await _context.Items.Include(i => i.Tags).Where(i => i.Id == link.ItemId).SingleAsync();
|
||||
bool itemNeedsUpdate = false;
|
||||
RTag ganjoorlinkTagType = await _context.Tags.AsNoTracking().Where(a => a.NameInEnglish == "Ganjoor Link").SingleAsync();
|
||||
if(item.Tags.Any(t => t.RTagId == ganjoorlinkTagType.Id && t.ValueSupplement == $"https://ganjoor.net{poem.FullUrl}"))
|
||||
{
|
||||
var tags = item.Tags.Where(t => t.RTagId == ganjoorlinkTagType.Id && t.ValueSupplement == $"https://ganjoor.net{poem.FullUrl}").ToList();
|
||||
foreach (var tag in tags)
|
||||
{
|
||||
item.Tags.Remove(tag);
|
||||
}
|
||||
itemNeedsUpdate = true;
|
||||
}
|
||||
RTag ganjoorTOCTagType = await _context.Tags.AsNoTracking().Where(a => a.NameInEnglish == "Title in TOC").SingleAsync();
|
||||
if (item.Tags.Any(t => t.RTagId == ganjoorTOCTagType.Id && t.Value == poem.FullTitle))
|
||||
{
|
||||
var tags = item.Tags.Where(t => t.RTagId == ganjoorTOCTagType.Id && t.Value == poem.FullTitle).ToList();
|
||||
foreach (var tag in tags)
|
||||
{
|
||||
item.Tags.Remove(tag);
|
||||
}
|
||||
itemNeedsUpdate = true;
|
||||
}
|
||||
if(itemNeedsUpdate)
|
||||
{
|
||||
_context.Update(item);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
_context.Remove(link);
|
||||
await _context.SaveChangesAsync();
|
||||
return new RServiceResult<bool>(true);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user