private static bool IsSubscriptionExist(string contentPath)
{
// var sql = @"DECLARE @PathCollection AS TABLE([Path] nvarchar(450))
//INSERT @PathCollection
// SELECT [Path].value('.', 'nvarchar(900)')
// FROM @ProbeCollection .nodes('/r/p') AS Identifiers([Path])
//SELECT COUNT(*) FROM @PathCollection C
// LEFT OUTER JOIN [Messaging.Subscriptions] S ON C.[Path] = S.[ContentPath]
// WHERE S.[ContentPath] IS NOT NULL
//";
var sql = @"DECLARE @PathCollection AS TABLE([Path] nvarchar(450))
INSERT @PathCollection
SELECT [Path].value('.', 'nvarchar(900)')
FROM @ProbeCollection .nodes('/r/p') AS Identifiers([Path])
SELECT COUNT(*) FROM @PathCollection C
INNER JOIN [Messaging.Subscriptions] S ON C.[Path] = S.[ContentPath]
";
var xml = new StringBuilder();
xml.Append("<r>");
var path = contentPath;
while (path.Length > 1)
{
xml.Append("<p>").Append(path).Append("</p>");
var p = path.LastIndexOf('/');
path = path.Substring(0, p);
}
xml.Append("</r>");
//var proc = SenseNet.ContentRepository.Storage.Data.DataProvider.CreateDataProcedure("proc_Find_Notif");
var proc = SenseNet.ContentRepository.Storage.Data.DataProvider.CreateDataProcedure(sql);
proc.CommandType = System.Data.CommandType.Text;
var prm = SenseNet.ContentRepository.Storage.Data.DataProvider.CreateParameter();
prm.ParameterName = "@ProbeCollection";
prm.DbType = System.Data.DbType.Xml;
prm.Value = xml.ToString();
proc.Parameters.Add(prm);
var result = proc.ExecuteScalar();
var count = (int)result;
return count > 0;
}