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); }
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; }
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); }
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); }
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); }
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; }
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); }