public void TimeSeriesMultiMultiCsvTest() { var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId1, _networkKey); ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 123, \"A\": 234}"); Thread.Sleep(100); ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 124, \"A\": 345}"); ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId2, _networkKey); ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 125, \"B\": 567}"); Thread.Sleep(100); ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 126, \"B\": 678}"); var reportingClient = new ReportingClient(ReportingApi); reportingClient.Network.SetNetwork(_networkId, _networkKey); var sinks = reportingClient.Network.GetSinks(); var record = reportingClient.Network.GetTimeSeriesReportCsv(sinks.First(s => s.SinkType == SinkType.TimeSeries).SinkName, DateTime.UtcNow); Assert.IsTrue(record.StartsWith("DeviceId,Name,Time,Fld,A,B\r\n") || record.StartsWith("DeviceId,Name,Time,Fld,B,A\r\n")); Assert.IsTrue(record.Contains("d1")); Assert.IsTrue(record.Contains("d2")); Assert.IsTrue(record.Contains(_deviceId1)); Assert.IsTrue(record.Contains(_deviceId2)); Assert.IsTrue(record.Contains("123,234,\r\n") || record.Contains("123,,234\r\n")); Assert.IsTrue(record.Contains("124,345,\r\n") || record.Contains("124,,345\r\n")); Assert.IsTrue(record.Contains("125,,567\r\n") || record.Contains("125,567,\r\n")); Assert.IsTrue(record.Contains("126,,678\r\n") || record.Contains("126,678,\r\n")); }
public async Task <ReportViewModel> Handle(GenerateReportCommand request, CancellationToken cancellationToken) { IReportingContract reportingClient = ReportingClient.CreateClient(); try { Logger.LogInformation("[ReportCommandHandler::GenerateReport] Sending a Generate command to Outage service."); var options = new ReportOptions { Type = (ReportType)request.Options.Type, ElementId = request.Options.ElementId, StartDate = request.Options.StartDate, EndDate = request.Options.EndDate }; var report = await reportingClient.GenerateReport(options); return(new ReportViewModel { Data = report.Data, Type = report.Type }); } catch (Exception ex) { Logger.LogError("[ReportCommandHandler::GenerateReport] Failed to generate active outages from Outage service.", ex); throw ex; } }
public void TimeSeriesSingleTest() { var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId, _deviceKey); ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 123}"); var reportingClient = new ReportingClient(ReportingApi); reportingClient.Device.SetDevice(_deviceId, _deviceKey); var sinks = reportingClient.Device.GetSinks(); var onerecord = reportingClient.Device.GetTimeSeriesReport(sinks.First(s => s.SinkType == SinkType.TimeSeries).SinkName, DateTime.UtcNow); Assert.AreEqual(1, onerecord.Devices.Count); var device = onerecord.Devices[0]; Assert.AreEqual(_deviceId, device.DeviceId); Assert.AreEqual("árvíztűrő tükörfúrógép", device.Name); Assert.AreEqual(1, device.Data.Count); var data = device.Data[0]; Assert.AreEqual("{\"Fld\":123}", data.Payload); Assert.IsTrue(data.Timestamp > 1000000); }
public void CurrentDataSingleTest() { var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId1, _networkKey); ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 123}"); ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId2, _networkKey); ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 124}"); var reportingClient = new ReportingClient(ReportingApi); reportingClient.Network.SetNetwork(_networkId, _networkKey); var sinks = reportingClient.Network.GetSinks(); var onerecord = reportingClient.Network.GetCurrentData(sinks.First(s => s.SinkType == SinkType.CurrentData).SinkName); Assert.AreEqual(2, onerecord.Devices.Count); var device = onerecord.Devices.Single(d => d.DeviceId == _deviceId1); Assert.AreEqual(_deviceId1, device.DeviceId); Assert.AreEqual("d1", device.Name); Assert.AreEqual("{\"Fld\":123}", device.Payload); Assert.IsTrue(device.Timestamp > 1000000); device = onerecord.Devices.Single(d => d.DeviceId == _deviceId2); Assert.AreEqual(_deviceId2, device.DeviceId); Assert.AreEqual("d2", device.Name); Assert.AreEqual("{\"Fld\":124}", device.Payload); Assert.IsTrue(device.Timestamp > 1000000); }
public void TimeSeriesMultiTest() { var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId1, _networkKey); ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 123}"); Thread.Sleep(100); ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 124}"); var reportingClient = new ReportingClient(ReportingApi); reportingClient.Network.SetNetwork(_networkId, _networkKey); var sinks = reportingClient.Network.GetSinks(); var onerecord = reportingClient.Network.GetTimeSeriesReport(sinks.First(s => s.SinkType == SinkType.TimeSeries).SinkName, DateTime.UtcNow); Assert.AreEqual(2, onerecord.Devices.Count); var device = onerecord.Devices.Single(d => d.DeviceId == _deviceId1); Assert.AreEqual(_deviceId1, device.DeviceId); Assert.AreEqual("d1", device.Name); Assert.AreEqual(2, device.Data.Count); var data = device.Data[0]; Assert.AreEqual("{\"Fld\":123}", data.Payload); Assert.IsTrue(data.Timestamp > 1000000); data = device.Data[1]; Assert.AreEqual("{\"Fld\":124}", data.Payload); Assert.IsTrue(data.Timestamp > 1000000); device = onerecord.Devices.Single(d => d.DeviceId == _deviceId2); Assert.AreEqual(0, device.Data.Count); }
public void GetSinksNotAuthTest() { var reportingClient = new ReportingClient(ReportingApi); reportingClient.Device.SetDevice(_deviceId, "asdfasdf"); reportingClient.Device.GetSinks(); }
public void GetSinksNotAuthTest() { var reportingClient = new ReportingClient(ReportingApi); reportingClient.Network.SetNetwork(_networkId, "asdfasdf"); reportingClient.Network.GetSinks(); }
public void TestSetup() { // api client defaults to production uri. _reportingClient = new ReportingClient ("http://das-prd-apprenticeshipinfoservice.cloudapp.net/", "https://dasapi.coursedirectoryproviderportal.org.uk/dasapi/bulk/providers", "https://roatp.apprenticeships.sfa.bis.gov.uk/api"); }
public void GetSinksTest() { var reportingClient = new ReportingClient(ReportingApi); reportingClient.Device.SetDevice(_deviceId, _deviceKey); var sinks = reportingClient.Device.GetSinks(); Assert.AreEqual(2, sinks.Count()); }
public void GetSinksTest() { var reportingClient = new ReportingClient(ReportingApi); reportingClient.Network.SetNetwork(_networkId, _networkKey); var sinks = reportingClient.Network.GetSinks(); Assert.AreEqual(2, sinks.Count()); }
public void TimeSeriesAuthErrorTest() { var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId, _deviceKey); ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 123}"); var reportingClient = new ReportingClient(ReportingApi); reportingClient.Device.SetDevice(_deviceId, "1234"); reportingClient.Device.GetTimeSeriesReport("nomatter", DateTime.UtcNow); }
private GraphApiClient(string tenant, IAuthProvider authProvider) { if (string.IsNullOrWhiteSpace(tenant)) { throw new ArgumentNullException(nameof(tenant)); } _authProvider = authProvider; Tenant = tenant; BaseUrl = GraphLiteConfiguration.TenantGraphApiBaseUrl(Tenant); Reporting = new ReportingClient(this); }
public void CurrentDataNoDataTest() { var reportingClient = new ReportingClient(ReportingApi); reportingClient.Network.SetNetwork(_networkId, _networkKey); var sinks = reportingClient.Network.GetSinks(); var onerecord = reportingClient.Network.GetCurrentData(sinks.First(s => s.SinkType == SinkType.CurrentData).SinkName); Assert.AreEqual(0, onerecord.Devices.Count); }
public void CurrentDataAuthErrorTest() { var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId1, _networkKey); ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 123}"); var reportingClient = new ReportingClient(ReportingApi); reportingClient.Network.SetNetwork(_networkId, "1234"); reportingClient.Network.GetCurrentData("nomatter"); }
internal async void AddClient(int id, string url) { if (_clients.ContainsKey(id)) { var client = _clients[id]; if (client.BindAddress == url) { return; } _clients.Remove(id); } var reportingClient = new ReportingClient() { BindAddress = url, UniqueId = id }; try { var httpClient = new HttpClient(); var version = await httpClient.GetStringAsync(reportingClient.VersionUrl); httpClient.Dispose(); if (String.IsNullOrEmpty(version)) { throw new Exception("Invalid version"); } if (!Version.TryParse(version, out var parsedVersion)) { throw new Exception("Invalid version"); } reportingClient.Version = parsedVersion; } catch (Exception ex) { Console.WriteLine($"Failed to add [{id}]{url}"); Console.WriteLine(ex); return; } _clients.Add(id, reportingClient); Console.WriteLine($"Added [{id}]{url} in version {reportingClient.Version} to monitoring"); }
public void ShouldNothave0duration() { _preProdreportingClient = new ReportingClient(baseUri: ""); var frameworks = _preProdreportingClient.GetAllApprenticeshipFrameworks(); var standards = _preProdreportingClient.GetAllApprenticeshipStandards(); Assert.Multiple(() => { Assert.AreEqual(0, frameworks.Where(x => x.Duration == 0).Count(), string.Join(Environment.NewLine, frameworks.Where(x => x.Duration == 0).Select(y => $"{y.Id} has 0 duration"))); Assert.AreEqual(0, frameworks.Where(x => x.MaxFunding == 0).Count(), string.Join(Environment.NewLine, frameworks.Where(x => x.MaxFunding == 0).Select(y => $"{y.Id} has 0 funding"))); Assert.AreEqual(0, standards.Where(x => x.Duration == 0).Count(), string.Join(Environment.NewLine, standards.Where(x => x.Duration == 0).Select(y => $"{y.Id} has 0 duration"))); Assert.AreEqual(0, standards.Where(x => x.MaxFunding == 0).Count(), string.Join(Environment.NewLine, standards.Where(x => x.MaxFunding == 0).Select(y => $"{y.Id} has 0 funding"))); }); }
public async Task ReportingClient_GetPlayerScores_ReportDataReturned() { // 1. Arrange HttpClient client = this.WebApplicationFactory.AddPlayer().CreateClient(); Func <String, String> resolver = api => "http://localhost"; IReportingClient reportingClient = new ReportingClient(resolver, client); String token = "eyJhbGciOiJSUzI1NiIsImtpZCI6ImVhZDQyNGJjNjI5MzU0NGM4MGFmZThhMDk2MzEyNjU2IiwidHlwIjoiSldUIn0.eyJuYmYiOjE1NzAyODk3MDksImV4cCI6MTU3MDI5MzMwOSwiaXNzIjoiaHR0cDovLzE5Mi4xNjguMS4xMzI6NTAwMSIsImF1ZCI6WyJodHRwOi8vMTkyLjE2OC4xLjEzMjo1MDAxL3Jlc291cmNlcyIsIm1hbmFnZW1lbnRhcGkiLCJzZWN1cmlydHlzZXJ2aWNlYXBpIl0sImNsaWVudF9pZCI6ImdvbGZoYW5kaWNhcC50ZXN0ZGF0YWdlbmVyYXRvciIsInNjb3BlIjpbIm1hbmFnZW1lbnRhcGkiLCJzZWN1cmlydHlzZXJ2aWNlYXBpIl19.vLfs2bOMXshW93nw5TTOqd6NPGNYpcrhcom8yZoYc9WGSuYH48VqM5BdbodEukNNJmgbV9wUVgoj1uGztlFfHGFA_q6IQfd3xZln_LIxju6ZNZs8qUyRXDTGxu0dlfF8STLfBUq469SsY9eNi1hBYFyNxl963OfKqDSHAdeBg9yNlwnbky1Tnsxobu9W33fLcjH0KoutlwTFV51UFUEKCBk0w1zsjaDVZacETn74t56y0CvMS7ZSN2_yyunq4JvoUsh3xM5lQ-gl23eQyo6l4QE4wukCS7U_Zr2dg8-EF63VKiCH-ZD49M76TD9kIIge-XIgHqa2Xf3S-FpLxXfEqw"; // 2. Act GetPlayerScoresResponse getPlayerScores = await reportingClient.GetPlayerScores(token, TestData.PlayerId, 10, CancellationToken.None); // 3. Assert getPlayerScores.Scores.ShouldNotBeEmpty(); }
public void TimeSeriesNoDataTest() { var reportingClient = new ReportingClient(ReportingApi); reportingClient.Device.SetDevice(_deviceId, _deviceKey); var sinks = reportingClient.Device.GetSinks(); var onerecord = reportingClient.Device.GetTimeSeriesReport(sinks.First(s => s.SinkType == SinkType.TimeSeries).SinkName, DateTime.UtcNow); Assert.AreEqual(1, onerecord.Devices.Count); var device = onerecord.Devices[0]; Assert.AreEqual(_deviceId, device.DeviceId); Assert.AreEqual("árvíztűrő tükörfúrógép", device.Name); Assert.AreEqual(0, device.Data.Count); }
public TabModule() : base("/tab") { Get["{id:int}"] = parameters => { var tabId = (int)parameters.Id; Program.Service.BroadcastRequest(ReportingClient.GetTabUrl(tabId)); return(200); }; Get["{id:int}/{client:int}"] = parameters => { var tabId = (int)parameters.id; var client = (int)parameters.client; Program.Service.Request(client, ReportingClient.GetTabUrl(tabId)); return(200); }; Get["next"] = _ => { Program.Service.BroadcastRequest(ReportingClient.GetTabNextUrl()); return(200); }; Get["next/{client:int}"] = parameters => { var client = (int)parameters.client; Program.Service.Request(client, ReportingClient.GetTabNextUrl()); return(200); }; Get["prev"] = _ => { Program.Service.BroadcastRequest(ReportingClient.GetTabPreviousUrl()); return(200); }; Get["prev/{client:int}"] = parameters => { var client = (int)parameters.client; Program.Service.Request(client, ReportingClient.GetTabPreviousUrl()); return(200); }; }
public void CurrentDataSingleCsvDataWithCommaTest() { var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId, _deviceKey); ocassionalConnectionClient.RecordTelemetryData("{\"F,ld\": \"12,3\"}"); var reportingClient = new ReportingClient(ReportingApi); reportingClient.Device.SetDevice(_deviceId, _deviceKey); var sinks = reportingClient.Device.GetSinks(); var record = reportingClient.Device.GetCurrentDataCsv(sinks.First(s => s.SinkType == SinkType.CurrentData).SinkName); Assert.IsTrue(record.StartsWith("DeviceId,Name,Time,\"F,ld\"\r\n")); Assert.IsTrue(record.Contains("árvíztűrő")); Assert.IsTrue(record.Contains(_deviceId)); Assert.IsTrue(record.Contains("\"12,3\"\r\n")); }
internal void Request(ReportingClient client, string request) { try { var httpClient = new HttpClient(); httpClient.SendAsync(new HttpRequestMessage() { Method = HttpMethod.Get, RequestUri = new Uri($"{client.FQDN}/{request}") }).ContinueWith(delegate(Task <HttpResponseMessage> response) { httpClient.Dispose(); }); } catch (Exception ex) { Console.WriteLine($"Failed to send request to {client.UniqueId}"); Console.WriteLine(ex); } }
/// <summary> /// Create a new instance of the GroupShare API v1 client using the specified connection. /// </summary> /// <param name="connection">The underlying <seealso cref="IConnection"/> used to make requests</param> public GroupShareClient(IConnection connection) { Ensure.ArgumentNotNull(connection, "connection"); Connection = connection; var apiConnection = new ApiConnection(connection); Project = new ProjectClient(apiConnection); User = new UserClient(apiConnection); Organization = new OrganizationClient(apiConnection); Authenticate = new AuthenticateClient(apiConnection); Role = new RoleClient(apiConnection); Permission = new PermissionClient(apiConnection); ModuleClient = new ModuleClient(apiConnection); License = new LicenseClient(apiConnection); TranslationMemories = new TranslationMemoriesClient(apiConnection); Terminology = new TerminologyClient(apiConnection); TranslateAndAnalysis = new TranslateAndAnalysisClient(apiConnection); Reporting = new ReportingClient(apiConnection); }
public WindowModule() : base("/window") { Get["enableFullscreen"] = _ => { Program.Service.BroadcastRequest(ReportingClient.GetEnableFullscreenUrl()); return(200); }; Get["enableFullscreen/{client:int}"] = parameters => { var client = (int)parameters.client; Program.Service.Request(client, ReportingClient.GetEnableFullscreenUrl()); return(200); }; Get["disableFullscreen"] = _ => { Program.Service.BroadcastRequest(ReportingClient.GetDisableFullscreenUrl()); return(200); }; Get["disableFullscreen/{client:int}"] = parameters => { var client = (int)parameters.client; Program.Service.Request(client, ReportingClient.GetDisableFullscreenUrl()); return(200); }; Get["toggleFullscreen"] = _ => { Program.Service.BroadcastRequest(ReportingClient.GetToggleFullscreenUrl()); return(200); }; Get["toggleFullscreen/{client:int}"] = parameters => { var client = (int)parameters.client; Program.Service.Request(client, ReportingClient.GetToggleFullscreenUrl()); return(200); }; }
public void TimeSeriesNoDataTest() { var reportingClient = new ReportingClient(ReportingApi); reportingClient.Network.SetNetwork(_networkId, _networkKey); var sinks = reportingClient.Network.GetSinks(); var onerecord = reportingClient.Network.GetTimeSeriesReport(sinks.First(s => s.SinkType == SinkType.TimeSeries).SinkName, DateTime.UtcNow); Assert.AreEqual(2, onerecord.Devices.Count); var device = onerecord.Devices.Single(d => d.DeviceId == _deviceId1); Assert.AreEqual(_deviceId1, device.DeviceId); Assert.AreEqual("d1", device.Name); Assert.AreEqual(0, device.Data.Count); device = onerecord.Devices.Single(d => d.DeviceId == _deviceId2); Assert.AreEqual(_deviceId2, device.DeviceId); Assert.AreEqual("d2", device.Name); Assert.AreEqual(0, device.Data.Count); }
public void TimeSeriesMultiCsvTest() { var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId, _deviceKey); ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 123, \"A\": 234}"); Thread.Sleep(100); ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 124, \"B\": 456}"); var reportingClient = new ReportingClient(ReportingApi); reportingClient.Device.SetDevice(_deviceId, _deviceKey); var sinks = reportingClient.Device.GetSinks(); var record = reportingClient.Device.GetTimeSeriesReportCsv(sinks.First(s => s.SinkType == SinkType.TimeSeries).SinkName, DateTime.UtcNow); Assert.IsTrue(record.StartsWith("DeviceId,Name,Time,Fld,A,B\r\n") || record.StartsWith("DeviceId,Name,Time,Fld,B,A\r\n")); Assert.IsTrue(record.Contains("árvíztűrő")); Assert.IsTrue(record.Contains(_deviceId)); Assert.IsTrue(record.Contains("123,234,\r\n")); Assert.IsTrue(record.Contains("124,,456\r\n")); }
public IReportingClient CreateClient(ReportServerConfiguration reportServerConfiguration) { var binding = new BasicHttpBinding("ReportingServicesSoap"); var ntlmBinding = new BasicHttpBinding("ReportingServicesSoapNtlm"); if(reportServerConfiguration.ServiceUrl.StartsWith("https",StringComparison.InvariantCultureIgnoreCase)) { binding.Security.Mode = BasicHttpSecurityMode.Transport; ntlmBinding.Security.Mode = BasicHttpSecurityMode.Transport; } var client = new ReportingClient(reportServerConfiguration, binding); try { client.TestConnection(); } catch (ReportingAuthenticationException ex) { Log.Information("CreateClient ReportingAuthenticationException, Attempting ReportingServicesSoapNtlm Binding.\n{0}", ex.Message); client.Dispose(); client = new ReportingClient(reportServerConfiguration, ntlmBinding); } return client; }
public void CurrentDataSingleCsvTest() { var ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId1, _networkKey); ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 123, \"A\": 234}"); ocassionalConnectionClient = new OccasionallyConnectionClient(PlatformApi, _deviceId2, _networkKey); ocassionalConnectionClient.RecordTelemetryData("{\"Fld\": 124, \"B\": 456}"); var reportingClient = new ReportingClient(ReportingApi); reportingClient.Network.SetNetwork(_networkId, _networkKey); var sinks = reportingClient.Network.GetSinks(); var record = reportingClient.Network.GetCurrentDataCsv(sinks.First(s => s.SinkType == SinkType.CurrentData).SinkName); Assert.IsTrue(record.StartsWith("DeviceId,Name,Time,Fld,A,B\r\n") || record.StartsWith("DeviceId,Name,Time,Fld,B,A\r\n")); Assert.IsTrue(record.Contains("d1")); Assert.IsTrue(record.Contains("d2")); Assert.IsTrue(record.Contains(_deviceId1)); Assert.IsTrue(record.Contains(_deviceId2)); Assert.IsTrue(record.Contains("123,234,\r\n") || record.Contains("123,,234\r\n")); Assert.IsTrue(record.Contains("124,,456\r\n") || record.Contains("124,456,\r\n")); }
public void ShouldHaveSameInformation() { _preProdreportingClient = new ReportingClient(baseUri: ""); var standardsinPP = _preProdreportingClient.standardApiClient.FindAll().Where(x => x.IsPublished == true).Select(y => _preProdreportingClient.standardApiClient.Get(y.Id)).ToList(); var frameworksinPP = _preProdreportingClient.frameworkApiClient.FindAll().Select(y => _preProdreportingClient.frameworkApiClient.Get(y.Id)).ToList(); var standardsinProd = _reportingClient.standardApiClient.FindAll().Where(x => x.IsPublished == true).Select(y => _preProdreportingClient.standardApiClient.Get(y.Id)).ToList(); var frameworksinProd = _reportingClient.frameworkApiClient.FindAll().Select(y => _preProdreportingClient.frameworkApiClient.Get(y.Id)).ToList(); var frameworkmissinginProd = Comapare(frameworksinPP.Select(x => x.FrameworkId), frameworksinProd.Select(x => x.FrameworkId)); var frameworkmissinginPP = Comapare(frameworksinProd.Select(x => x.FrameworkId), frameworksinPP.Select(x => x.FrameworkId)); var standardmissinginProd = Comapare(standardsinPP.Select(x => x.StandardId), standardsinProd.Select(x => x.StandardId)); var standardmissinginPP = Comapare(standardsinProd.Select(x => x.StandardId), standardsinPP.Select(x => x.StandardId)); Assert.Multiple(() => { Assert.AreEqual(standardsinProd.Count, standardsinPP.Count, $"Standard counts mismatch"); Assert.AreEqual(frameworksinProd.Count, frameworksinPP.Count, $"Framework counts mismatch"); Assert.IsTrue(frameworkmissinginProd.Count == 0, $"Missing Frameworks in Prod " + string.Join(",", frameworkmissinginProd)); Assert.IsTrue(frameworkmissinginPP.Count == 0, $"Missing Frameworks in PP " + string.Join(",", frameworkmissinginPP)); Assert.IsTrue(standardmissinginProd.Count == 0, $"Missing Standards in Prod " + string.Join(",", standardmissinginProd)); Assert.IsTrue(standardmissinginPP.Count == 0, $"Missing Standards in PP " + string.Join(",", standardmissinginPP)); }); foreach (var standardinPP in standardsinPP) { var standardinprod = standardsinProd.Single(x => x.StandardId == standardinPP.StandardId); Assert.AreEqual(standardinprod.Title, standardinPP.Title, $"Standard level looks different for {standardinprod.StandardId}"); Assert.AreEqual(standardinprod.Duration, standardinPP.Duration, $"Standard Duration looks different for {standardinprod.StandardId}"); Assert.AreEqual(standardinprod.IsPublished, standardinPP.IsPublished, $"Standard IsPublished looks different for {standardinprod.StandardId}"); Assert.AreEqual(standardinprod.Level, standardinPP.Level, $"Standard Level looks different for {standardinprod.StandardId}"); Assert.AreEqual(standardinprod.MaxFunding, standardinPP.MaxFunding, $"Standard MaxFunding looks different for {standardinprod.StandardId}"); Assert.AreEqual(standardinprod.Ssa1, standardinPP.Ssa1, $"Standard Ssa1 looks different for {standardinprod.StandardId}"); Assert.AreEqual(standardinprod.Ssa2, standardinPP.Ssa2, $"Standard Ssa2 looks different for {standardinprod.StandardId}"); Assert.AreEqual(standardinprod.AssessmentPlanPdf, standardinPP.AssessmentPlanPdf, $"Standard AssessmentPlanPdf looks different for {standardinprod.StandardId}"); Assert.AreEqual(standardinprod.EntryRequirements, standardinPP.EntryRequirements, $"Standard EntryRequirements looks different for {standardinprod.StandardId}"); Assert.AreEqual(standardinprod.IntroductoryText, standardinPP.IntroductoryText, $"Standard IntroductoryText looks different for {standardinprod.StandardId}"); Assert.AreEqual(standardinprod.JobRoles, standardinPP.JobRoles, $"Standard JobRoles looks different for {standardinprod.StandardId}"); Assert.AreEqual(standardinprod.Keywords, standardinPP.Keywords, $"Standard Keywords looks different for {standardinprod.StandardId}"); Assert.AreEqual(standardinprod.OverviewOfRole, standardinPP.OverviewOfRole, $"Standard OverviewOfRole looks different for {standardinprod.StandardId}"); Assert.AreEqual(standardinprod.ProfessionalRegistration, standardinPP.ProfessionalRegistration, $"Standard ProfessionalRegistration looks different for {standardinprod.StandardId}"); Assert.AreEqual(standardinprod.Qualifications, standardinPP.Qualifications, $"Standard Qualifications looks different for {standardinprod.StandardId}"); Assert.AreEqual(standardinprod.StandardPdf, standardinPP.StandardPdf, $"Standard StandardPdf looks different for {standardinprod.StandardId}"); Assert.AreEqual(standardinprod.WhatApprenticesWillLearn, standardinPP.WhatApprenticesWillLearn, $"Standard WhatApprenticesWillLearn looks different for {standardinprod.StandardId}"); } foreach (var frameworkinPP in frameworksinPP) { var frameworkinProd = frameworksinProd.Single(x => x.FrameworkId == frameworkinPP.FrameworkId); Assert.AreEqual(frameworkinProd.Title, frameworkinPP.Title, $"Framework level looks different for {frameworkinProd.FrameworkId}"); Assert.AreEqual(frameworkinProd.FrameworkCode, frameworkinPP.FrameworkCode, $"Framework FrameworkCode looks different for {frameworkinProd.FrameworkId}"); Assert.AreEqual(frameworkinProd.FrameworkName, frameworkinPP.FrameworkName, $"Framework FrameworkName looks different for {frameworkinProd.FrameworkId}"); Assert.AreEqual(frameworkinProd.Level, frameworkinPP.Level, $"Framework Level looks different for {frameworkinProd.FrameworkId}"); Assert.AreEqual(frameworkinProd.PathwayCode, frameworkinPP.PathwayCode, $"Framework PathwayCode looks different for {frameworkinProd.FrameworkId}"); Assert.AreEqual(frameworkinProd.PathwayName, frameworkinPP.PathwayName, $"Framework PathwayName looks different for {frameworkinProd.FrameworkId}"); Assert.AreEqual(frameworkinProd.ProgType, frameworkinPP.ProgType, $"Framework ProgType looks different for {frameworkinProd.FrameworkId}"); Assert.AreEqual(frameworkinProd.Ssa1, frameworkinPP.Ssa1, $"Framework Ssa1 looks different for {frameworkinProd.FrameworkId}"); Assert.AreEqual(frameworkinProd.Ssa2, frameworkinPP.Ssa2, $"Framework Ssa2 looks different for {frameworkinProd.FrameworkId}"); Assert.AreEqual(frameworkinProd.CombinedQualification, frameworkinPP.CombinedQualification, $"Framework CombinedQualification looks different for {frameworkinProd.FrameworkId}"); Assert.AreEqual(frameworkinProd.CompetencyQualification, frameworkinPP.CompetencyQualification, $"Framework CompetencyQualification looks different for {frameworkinProd.FrameworkId}"); Assert.AreEqual(frameworkinProd.CompletionQualifications, frameworkinPP.CompletionQualifications, $"Framework CompletionQualifications looks different for {frameworkinProd.FrameworkId}"); Assert.AreEqual(frameworkinProd.EntryRequirements, frameworkinPP.EntryRequirements, $"Framework EntryRequirements looks different for {frameworkinProd.FrameworkId}"); Assert.AreEqual(frameworkinProd.ExpiryDate, frameworkinPP.ExpiryDate, $"Framework ExpiryDate looks different for {frameworkinProd.FrameworkId}"); Assert.AreEqual(frameworkinProd.FrameworkOverview, frameworkinPP.FrameworkOverview, $"Framework FrameworkOverview looks different for {frameworkinProd.FrameworkId}"); Assert.AreEqual(frameworkinProd.KnowledgeQualification, frameworkinPP.KnowledgeQualification, $"Framework KnowledgeQualification looks different for {frameworkinProd.FrameworkId}"); Assert.AreEqual(frameworkinProd.ProfessionalRegistration, frameworkinPP.ProfessionalRegistration, $"Framework ProfessionalRegistration looks different for {frameworkinProd.FrameworkId}"); var ProdRole = frameworkinProd.JobRoleItems.Select(x => $"{x.Title}-{x.Description}"); var PpRole = frameworkinPP.JobRoleItems.Select(x => $"{x.Title}-{x.Description}"); Assert.AreEqual(ProdRole, PpRole, $"Framework JobRoleItems looks different for {frameworkinProd.FrameworkId}"); } }