public void GetQueryTest() { var testParams = new string[] { "<Data>" + "<Param key=\"SiteId\">7F316E11-C842-4440-9918-39A8F1C12DA9</Param>" + "<Param key=\"WebId\">1A8F7946-CCA1-4A24-8785-CE8E32D012BE</Param>" + "<Param key=\"ListId\">5D592B57-C072-4B36-8809-11262120484D</Param>" + "</Data>", "<Data>" + "<Param key=\"SiteId\">7F316E11-C842-4440-9918-39A8F1C12DA9</Param>" + "<Param key=\"WebId\">1A8F7946-CCA1-4A24-8785-CE8E32D012BE</Param>" + "<Param key=\"ListId\">5D592B57-C072-4B36-8809-11262120484D</Param>" + "<Param key=\"IsItem\">true</Param>" + "</Data>" }; var aTypes = Enum.GetValues(typeof(AnalyticsType)).Cast <AnalyticsType>(); var aActions = Enum.GetValues(typeof(AnalyticsAction)).Cast <AnalyticsAction>(); foreach (var aType in aTypes) { foreach (var aAction in aActions) { foreach (var param in testParams) { var ad = new AnalyticsData(param, aType, aAction); if (aAction == AnalyticsAction.Update && aType == AnalyticsType.Favorite || aAction == AnalyticsAction.Update && aType == AnalyticsType.FavoriteWorkspace || aAction == AnalyticsAction.Update && aType == AnalyticsType.Recent || aAction == AnalyticsAction.Delete && aType == AnalyticsType.Recent || aAction == AnalyticsAction.Read && aType == AnalyticsType.Recent) { Assert.IsTrue(string.IsNullOrEmpty(FRFQueryFactory.GetQuery(ad))); } else { Assert.IsFalse(string.IsNullOrEmpty(FRFQueryFactory.GetQuery(ad))); } } } } }
public override void WebDeleting(SPWebEventProperties properties) { try { var sParentItem = properties.Web.AllProperties["ParentItem"]; var sColl = sParentItem.ToString().Split(new string[] { "^^" }, StringSplitOptions.RemoveEmptyEntries); var webid = sColl[0]; var listid = sColl[1]; var itemid = sColl[2]; var sIsItem = (new Guid(listid) != Guid.Empty) ? "true" : "false"; var bIsItem = (new Guid(listid) != Guid.Empty); var xml = "<Data><Param key=\"SiteId\">" + properties.SiteId + "</Param>" + "<Param key=\"WebId\">" + properties.Web.ID + "</Param>" + "<Param key=\"ItemId\">" + itemid + "</Param>" + "<Param key=\"FString\">" + properties.Web.ServerRelativeUrl + "</Param>" + "<Param key=\"Type\">4</Param>" + "<Param key=\"UserId\">" + properties.Web.CurrentUser.ID + "</Param>" + "<Param key=\"IsItem\">" + sIsItem + "</Param></Data>"; var data = new AnalyticsData(xml, AnalyticsType.FavoriteWorkspace, AnalyticsAction.Delete); var qExec = new QueryExecutor(properties.Web); qExec.ExecuteEpmLiveQuery( FRFQueryFactory.GetQuery(data), FRFQueryParamFactory.GetParam(data)); qExec.ExecuteReportingDBNonQuery( "DELETE FROM RPTWeb WHERE [WebId]=@webid", new Dictionary <string, object>() { { "@webid", properties.WebId } }); qExec.ExecuteReportingDBNonQuery( "DELETE FROM [RPTWEBGROUPS] WHERE [WEBID] NOT IN (SELECT [WebId] FROM [RPTWeb])", new Dictionary <string, object>()); if (bIsItem) { // remove the parent item's workspaceurl field value // so the workspace icon doesn't show up in grid try { SPSecurity.RunWithElevatedPrivileges(delegate { using (var s = new SPSite(properties.SiteId)) { using (var w = s.OpenWeb(new Guid(webid))) { w.AllowUnsafeUpdates = true; var l = w.Lists[new Guid(listid)]; var i = l.GetItemById(int.Parse(itemid)); i["WorkspaceUrl"] = null; i.SystemUpdate(); // var dt = qExec.ExecuteReportingDBQuery( // "SELECT [TableName] FROM [RPTList] WHERE RPTListId = '" + l.ID + "'", new Dictionary<string, object>()); // if (dt != null && dt.Rows.Cast<DataRow>().Any()) // { // var sRptTblName = dt.Rows[0][0].ToString(); // var sDelWsUrlQuery = // @"IF EXISTS (select * from INFORMATION_SCHEMA.COLUMNS where table_name = '" + sRptTblName + @"' and column_name = 'WorkspaceUrl') // BEGIN // UPDATE " + sRptTblName + @" SET [WorkspaceUrl] = NULL WHERE [ListId] = '" + listid + @"' AND [ItemId] = " + itemid + @" // END"; // qExec.ExecuteReportingDBNonQuery(sDelWsUrlQuery, new Dictionary<string, object>()); // } } } }); } catch { } } CacheStore.Current.RemoveSafely(properties.Web.Url, new CacheStoreCategory(properties.Web).Navigation); } catch { } }