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 ...
///