diff --git a/Interfaces/IXBaseTagProvider.cs b/Interfaces/IXBaseTagProvider.cs index 97e8a58..8944b97 100644 --- a/Interfaces/IXBaseTagProvider.cs +++ b/Interfaces/IXBaseTagProvider.cs @@ -182,6 +182,13 @@ namespace xTagService.Interfaces int id ); + /// + /// Remove All Specified Tags ... + /// + /// + /// + Task RemoveTagsFor(TKey forProvidedId); + /// /// Update Specified Dto ... /// diff --git a/Providers/XBaseTagProvider.cs b/Providers/XBaseTagProvider.cs index 24df0fa..0ee8438 100644 --- a/Providers/XBaseTagProvider.cs +++ b/Providers/XBaseTagProvider.cs @@ -863,6 +863,42 @@ namespace xTagService.Providers return result; } + /// + /// Remove All Specified Tags ... + /// + /// + /// + public async Task RemoveTagsFor(TKey forProvidedId) + { + // + var result = false; + + // + var dtos = await GetTags(forProvidedId); + result = !dtos.IsNull() && dtos.HasChild(); + if (result) + { + // + foreach (var dto in dtos) + { + // + try + { + // + await Detach(dto.Tag, forProvidedId); + if (!result) + { + result = true; + } + } + catch { } + } + } + + // + return result; + } + /// /// Update Specified Dto ... ///