Example #1
0
        public void GetParam_TypeFrequentUpdateIsItemTrue_ReturnsDictionaryEmpty()
        {
            // Arrange
            var analyticsData = new AnalyticsData(CreateXml(true), AnalyticsType.Frequent, AnalyticsAction.Update);

            // Act
            var actualResult = FRFQueryParamFactory.GetParam(analyticsData);

            // Assert
            actualResult.ShouldBeEmpty();
        }
Example #2
0
        public void GetParam_TypeFavoriteUpdate_ReturnsDictionaryEmpty()
        {
            // Arrange
            var analyticsData = new AnalyticsData(CreateXml(false), AnalyticsType.Favorite, AnalyticsAction.Update);

            // Act
            var actualResult = FRFQueryParamFactory.GetParam(analyticsData);

            // Assert
            actualResult.ShouldBeEmpty();
        }
Example #3
0
        public void GetParam_TypeFavoriteReadIsItemFalse_ReturnsDictionary()
        {
            // Arrange
            var analyticsData = new AnalyticsData(CreateXml(false), AnalyticsType.Favorite, AnalyticsAction.Read);

            // Act
            var actualResult = FRFQueryParamFactory.GetParam(analyticsData);

            // Assert
            this.ShouldSatisfyAllConditions(
                () => actualResult.Count.ShouldBe(4),
                () => actualResult[SiteIdParamName].ShouldBe(SiteIdGuid),
                () => actualResult[WebIdParamName].ShouldBe(WebIdGuid),
                () => actualResult[UserIdParamName].ShouldBe(UserIdInt),
                () => actualResult[FStringParamName].ShouldBe(DummyString));
        }
Example #4
0
        public void GetParam_TypeFrequentCreate_ReturnsDictionary()
        {
            // Arrange
            var analyticsData = new AnalyticsData(CreateXml(true), AnalyticsType.Frequent, AnalyticsAction.Create);

            // Act
            var actualResult = FRFQueryParamFactory.GetParam(analyticsData);

            // Assert
            this.ShouldSatisfyAllConditions(
                () => actualResult.Count.ShouldBe(6),
                () => actualResult[SiteIdParamName].ShouldBe(SiteIdGuid),
                () => actualResult[WebIdParamName].ShouldBe(WebIdGuid),
                () => actualResult[ListIdParamName].ShouldBe(ListIdGuid),
                () => actualResult[UserIdParamName].ShouldBe(UserIdInt),
                () => actualResult[IconParamName].ShouldBe(DummyIconName),
                () => actualResult[TitleParamName].ShouldBe(DummyTitle));
        }
Example #5
0
        public void GetParam_TypeFavoriteWorkspaceDeleteIsItemTrue_ReturnsDictionary()
        {
            // Arrange
            var analyticsData = new AnalyticsData(CreateXml(true), AnalyticsType.FavoriteWorkspace, AnalyticsAction.Delete);

            // Act
            var actualResult = FRFQueryParamFactory.GetParam(analyticsData);

            // Assert
            this.ShouldSatisfyAllConditions(
                () => actualResult.Count.ShouldBe(7),
                () => actualResult[SiteIdParamName].ShouldBe(SiteIdGuid),
                () => actualResult[WebIdParamName].ShouldBe(WebIdGuid),
                () => actualResult[ListIdParamName].ShouldBe(ListIdGuid),
                () => actualResult[ItemIdParamName].ShouldBe(ItemIdInt),
                () => actualResult[FStringParamName].ShouldBe(DummyString),
                () => actualResult[UserIdParamName].ShouldBe(UserIdInt),
                () => actualResult[TitleParamName].ShouldBe(DummyTitle));
        }
Example #6
0
        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
            {
            }
        }