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 CrissCrossLib.Hierarchical.CrcReportFolder GetAllReportsHierarchicalNoCache(string username) { ReportingService2005Soap rService = m_ssrsSoapClientFactory.MakeSsrsSoapClient(); var fac = new CrissCrossLib.Hierarchical.CrcReportFolderFactory(); return(fac.Create(rService)); }
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 CrcSsrsSoapClientFactory MakeMockSoapClientFactory(ReportingService2005Soap serviceClient) { // mock the factory var soapClientFactory = MockRepository.GenerateMock<CrcSsrsSoapClientFactory>(); soapClientFactory.Expect(s => s.MakeSsrsSoapClient()).Return(serviceClient); return soapClientFactory; }
public CrcSsrsSoapClientFactory MakeMockSoapClientFactory(ReportingService2005Soap serviceClient) { // mock the factory var soapClientFactory = MockRepository.GenerateMock <CrcSsrsSoapClientFactory>(); soapClientFactory.Expect(s => s.MakeSsrsSoapClient()).Return(serviceClient); return(soapClientFactory); }
public void SetListChildrenExpectation(ReportingService2005Soap mockService, string path, CatalogItem[] returnItems) { var lcResponse = new ListChildrenResponse(null, returnItems); mockService.Expect(m => m.ListChildren( Arg <ListChildrenRequest> .Matches( lcr => lcr.Item == path) )).Return(lcResponse); }
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 CrcReportDefinition GetReportDefn(string reportPath, string username) { // first, use the username to get description var reportCat = this.GetReportCatalogItem(reportPath, username); ReportingService2005Soap rService = m_ssrsSoapClientFactory.MakeSsrsSoapClient(); GetReportParametersRequest req = new GetReportParametersRequest() { Report = reportPath, ForRendering = true }; var resp = rService.GetReportParameters(req); var factory = new CrcReportDefinitionFactory(); return(factory.Create(reportPath, reportCat, resp.Parameters, m_extraConfiguration)); }
/// <summary> /// Applies the specified choices to the already-existing report definition /// and updates the dependant parameters /// </summary> public void RefreshDependantParameters(CrcReportDefinition repDefn, CrcParameterChoiceCollection newChoices) { var mapResult = repDefn.MapParameterChoices(newChoices); if (!mapResult.MappingValid) { // todo - friendlier message back to ui throw new ApplicationException(string.Format("invalid params - could not map supplied values to definitions for report {0}. complaints: {1}", repDefn.DisplayName, string.Join(", ", mapResult.Complaints.ToArray()))); } var conv = new CrcParameterConverter(); List <ParameterValue> valueList = conv.GetParametersValuesForSsrsWebService(repDefn); // get new params from web service ReportingService2005Soap rService = m_ssrsSoapClientFactory.MakeSsrsSoapClient(); logger.DebugFormat("RefreshDependantParameters: rep {0} calling WS to get new validvalid. Passing {1} values", repDefn.DisplayName, valueList.Count()); var grpRequest = new GetReportParametersRequest(repDefn.ReportPath, null, true, valueList.ToArray(), null); var grpResponse = rService.GetReportParameters(grpRequest); // work out which params to refresh List <string> paramsToRefresh = new List <string>(); foreach (string updatedParam in newChoices.ParameterChoiceList.Select(p => p.Name)) { var paramDefn = repDefn.ParameterDefinitions.First(p => p.Name == updatedParam); paramsToRefresh = paramsToRefresh.Union(paramDefn.DependantParameterNames).ToList(); } logger.DebugFormat("RefreshDependantParameters: rep {0} based on choices, have {1} parameters that need refreshing", repDefn.DisplayName, paramsToRefresh.Count()); var refresher = new CrcParameterRefresher(); foreach (string paramLoop in paramsToRefresh) { var paramDefn = repDefn.ParameterDefinitions.First(p => p.Name == paramLoop); var latestParamDetails = grpResponse.Parameters.FirstOrDefault(p => p.Name == paramLoop); if (latestParamDetails == null) { throw new ApplicationException(String.Format("Was expecting web service to return new details for parameter {0} but none found", paramLoop)); } refresher.RefreshParameter(paramDefn, latestParamDetails); } }
public CrcReportFolder Create(ReportingService2005Soap rService) { return(Create(rService, @"/")); }
public CrcReportFolder Create(ReportingService2005Soap rService) { return Create(rService, @"/"); }
public void SetListChildrenExpectation(ReportingService2005Soap mockService, string path, CatalogItem[] returnItems) { var lcResponse = new ListChildrenResponse(null, returnItems); mockService.Expect(m => m.ListChildren( Arg<ListChildrenRequest>.Matches( lcr => lcr.Item == path) )).Return(lcResponse); }