コード例 #1
0
        public CrcReportFolder Create(ReportingService2005Soap rService, string path)
        {
            var ret = new CrcReportFolder();

            ret.Path       = path;
            ret.FolderName = CrcReportDefinition.ReportNameFromPath(path);

            var lcRequest = new ListChildrenRequest(path, false);

            var lcResponse = rService.ListChildren(lcRequest);

            foreach (CatalogItem itemLoop in lcResponse.CatalogItems)
            {
                if (itemLoop.Type == ItemTypeEnum.Folder)
                {
                    var sf = Create(rService, itemLoop.Path);
                    if (sf.Reports.Count() > 0 || sf.SubFolders.Count() > 0)
                    {
                        ret.SubFolders.Add(sf);
                    }
                }
                else if (itemLoop.Type == ItemTypeEnum.Report)
                {
                    if (!itemLoop.Hidden)
                    {
                        var repItem = new CrcReportItem();
                        repItem.ReportPath  = itemLoop.Path;
                        repItem.DisplayName = itemLoop.Name;
                        repItem.Description = itemLoop.Description;
                        ret.Reports.Add(repItem);
                    }
                }
            }
            return(ret);
        }
コード例 #2
0
        public CrcReportFolder Create(ReportingService2005Soap rService, string path)
        {
            var ret = new CrcReportFolder();
            ret.Path = path;
            ret.FolderName = CrcReportDefinition.ReportNameFromPath(path);

            var lcRequest = new ListChildrenRequest(path, false);

            var lcResponse = rService.ListChildren(lcRequest);
            foreach (CatalogItem itemLoop in lcResponse.CatalogItems)
            {
                if (itemLoop.Type == ItemTypeEnum.Folder)
                {
                    var sf = Create(rService, itemLoop.Path);
                    if (sf.Reports.Count() > 0 || sf.SubFolders.Count() > 0)
                        ret.SubFolders.Add(sf);
                }
                else if (itemLoop.Type == ItemTypeEnum.Report)
                {
                    if (!itemLoop.Hidden)
                    {
                        var repItem = new CrcReportItem();
                        repItem.ReportPath = itemLoop.Path;
                        repItem.DisplayName = itemLoop.Name;
                        repItem.Description = itemLoop.Description;
                        ret.Reports.Add(repItem);
                    }
                }

            }
            return ret;
        }
コード例 #3
0
        public void CanReturnHierarchyForFolderWithReports()
        {
            var serviceMock = MakeMockSsrsService();
            var folder1     = new CatalogItem()
            {
                Path     = "/Foo",
                Name     = "Foo",
                TypeName = CrcReportFolderFactory.ReportServiceItemTypes.Folder,
            };

            CatalogItem[] onefolder = new CatalogItem[] { folder1 };
            var           item1     = new CatalogItem()
            {
                Path     = @"/Foo/Test1",
                Name     = @"Test1",
                TypeName = CrcReportFolderFactory.ReportServiceItemTypes.Report,
            };
            var item2 = new CatalogItem()
            {
                Path     = @"/Foo/Test2",
                Name     = @"Test2",
                TypeName = CrcReportFolderFactory.ReportServiceItemTypes.Report,
            };

            CatalogItem[] twoitems = new CatalogItem[] { item1, item2 };

            var returnResponse1 = new ListChildrenResponse(null, onefolder);

            serviceMock.Expect(s => s.ListChildren(Arg <ListChildrenRequest> .Matches(lcr => lcr.ItemPath == @"/"))).Return(returnResponse1);
            var expectedRequest2 = new ListChildrenRequest(null, @"/Foo", false); // first param null?
            var returnResponse2  = new ListChildrenResponse(null, twoitems);

            serviceMock.Expect(s => s.ListChildren(Arg <ListChildrenRequest> .Matches(lcr => lcr.ItemPath == @"/Foo"))).Return(returnResponse2);


            var fac = new CrcReportFolderFactory();
            var ret = fac.Create(serviceMock);

            Assert.IsNotNull(ret);
            Assert.AreEqual(String.Empty, ret.FolderName);
            Assert.AreEqual(@"/", ret.Path);
            Assert.AreEqual(1, ret.SubFolders.Count());
            Assert.AreEqual(0, ret.Reports.Count());
            var subFolder = ret.SubFolders[0];

            Assert.AreEqual("/Foo", subFolder.Path);
            Assert.AreEqual("Foo", subFolder.FolderName);
            Assert.IsTrue(subFolder.Reports.FirstOrDefault(r => r.DisplayName == @"Test1") != null);
            Assert.AreEqual(@"/Foo/Test1", subFolder.Reports.FirstOrDefault(r => r.DisplayName == @"Test1").ReportPath);
            Assert.IsTrue(subFolder.Reports.FirstOrDefault(r => r.DisplayName == @"Test2") != null);
            Assert.AreEqual(@"/Foo/Test2", subFolder.Reports.FirstOrDefault(r => r.DisplayName == @"Test2").ReportPath);
        }
コード例 #4
0
        public CatalogItem[] GetAllReportsNoCache(string username)
        {
            ReportingService2005Soap rService = m_ssrsSoapClientFactory.MakeSsrsSoapClient();

            var lcRequest = new ListChildrenRequest()
            {
                Item      = "/",
                Recursive = true
            };
            //CatalogItem[] catalogItems = null;
            var lcResponse = rService.ListChildren(lcRequest);

            var reportsOnly = lcResponse.CatalogItems.Where(c => c.Type == ItemTypeEnum.Report).ToArray();

            //var foldersOnly = lcResponse.CatalogItems.Where(c => c.Type == ItemTypeEnum.Folder).ToArray();
            return(reportsOnly);
        }
コード例 #5
0
        public CatalogItem[] GetAllReportsNoCache(string username)
        {
            ReportingService2010Soap rService = m_ssrsSoapClientFactory.MakeSsrsSoapClient();

            var lcRequest = new ListChildrenRequest()
            {
                //TrustedUserHeader = new TrustedUserHeader(),
                ItemPath  = "/",
                Recursive = true
            };
            //CatalogItem[] catalogItems = null;
            var lcResponse = rService.ListChildren(lcRequest);

            var reportsOnly = lcResponse.CatalogItems.Where(c => c.TypeName != null && c.TypeName.Equals(Hierarchical.CrcReportFolderFactory.ReportServiceItemTypes.Report)).ToArray();

            return(reportsOnly);
        }
コード例 #6
0
        public CatalogItem[] GetAllReportsNoCache(string username)
        {
            ReportingService2005Soap rService = m_ssrsSoapClientFactory.MakeSsrsSoapClient();

            var lcRequest = new ListChildrenRequest()
            {
                Item = "/",
                Recursive = true
            };
            //CatalogItem[] catalogItems = null;
            var lcResponse = rService.ListChildren(lcRequest);

            var reportsOnly = lcResponse.CatalogItems.Where(c => c.Type == ItemTypeEnum.Report).ToArray();
            //var foldersOnly = lcResponse.CatalogItems.Where(c => c.Type == ItemTypeEnum.Folder).ToArray();
            return reportsOnly;
        }
コード例 #7
0
        public void CanReturnHierarchyForFolderWithReports()
        {
            var serviceMock = MakeMockSsrsService();
            var folder1 = new CatalogItem()
            {
                Path = "/Foo",
                Name = "Foo",
                Type = ItemTypeEnum.Folder
            };
            CatalogItem[] onefolder = new CatalogItem[] { folder1 };
            var item1 = new CatalogItem()
            {
                Path = @"/Foo/Test1",
                Name = @"Test1",
                Type = ItemTypeEnum.Report
            };
            var item2 = new CatalogItem()
            {
                Path = @"/Foo/Test2",
                Name = @"Test2",
                Type = ItemTypeEnum.Report
            };
            CatalogItem[] twoitems = new CatalogItem[] { item1, item2 };

            var returnResponse1 = new ListChildrenResponse(null, onefolder);
            serviceMock.Expect(s => s.ListChildren(Arg<ListChildrenRequest>.Matches(lcr => lcr.Item == @"/") )).Return(returnResponse1);
            var expectedRequest2 = new ListChildrenRequest(@"/Foo", false);
            var returnResponse2 = new ListChildrenResponse(null, twoitems);
            serviceMock.Expect(s => s.ListChildren(Arg<ListChildrenRequest>.Matches(lcr => lcr.Item == @"/Foo"))).Return(returnResponse2);

            var fac = new CrcReportFolderFactory();
            var ret = fac.Create(serviceMock);

            Assert.IsNotNull(ret);
            Assert.AreEqual(String.Empty, ret.FolderName);
            Assert.AreEqual(@"/", ret.Path);
            Assert.AreEqual(1, ret.SubFolders.Count());
            Assert.AreEqual(0, ret.Reports.Count());
            var subFolder = ret.SubFolders[0];
            Assert.AreEqual("/Foo", subFolder.Path);
            Assert.AreEqual("Foo", subFolder.FolderName);
            Assert.IsTrue(subFolder.Reports.FirstOrDefault(r => r.DisplayName == @"Test1") != null);
            Assert.AreEqual(@"/Foo/Test1", subFolder.Reports.FirstOrDefault(r => r.DisplayName == @"Test1").ReportPath);
            Assert.IsTrue(subFolder.Reports.FirstOrDefault(r => r.DisplayName == @"Test2") != null);
            Assert.AreEqual(@"/Foo/Test2", subFolder.Reports.FirstOrDefault(r => r.DisplayName == @"Test2").ReportPath);
        }