public async Task GetServiceStatusExceptionAsync() { //Fake set up incorrectly to cause exception A.CallTo(() => fakeGovUkNotifyClient.SendEmail(A <string> ._, A <string> ._, A <string> ._, A <Dictionary <string, dynamic> > ._)).Throws <NotifyClientException>(); A.CallTo(() => fakeApplicationLogger.LogExceptionWithActivityId(A <string> ._, A <Exception> ._)).Returns("Exception logged"); //Act var govUkNotifyService = new GovUkNotifyService(fakeApplicationLogger, fakeGovUkNotifyClient); var serviceStatus = await govUkNotifyService.GetCurrentStatusAsync(); //Asserts serviceStatus.Status.Should().NotBe(ServiceState.Green); serviceStatus.Notes.Should().Contain("Exception"); }
public async Task <ServiceStatus> GetCurrentStatusAsync() { var serviceStatus = new ServiceStatus { Name = ServiceName, Status = ServiceState.Red, Notes = string.Empty }; var checkSubject = "maths"; serviceStatus.CheckParametersUsed = $"Searched for - {checkSubject}"; try { var request = MessageConverter.GetCourseListInput(checkSubject); var apiResult = await serviceHelper.UseAsync <ServiceInterface, CourseListOutput>(async x => await tolerancePolicy.ExecuteAsync(() => x.CourseListAsync(request), Constants.CourseSearchEndpointConfigName, FaultToleranceType.CircuitBreaker), Constants.CourseSearchEndpointConfigName); //The call worked ok serviceStatus.Status = ServiceState.Amber; serviceStatus.Notes = "Success Response"; //We have actual data if (apiResult.CourseListResponse.CourseDetails.Any()) { serviceStatus.Status = ServiceState.Green; serviceStatus.Notes = string.Empty; } } catch (Exception ex) { serviceStatus.Notes = $"{Constants.ServiceStatusFailedCheckLogsMessage} - {applicationLogger.LogExceptionWithActivityId(Constants.ServiceStatusFailedLogMessage, ex)}"; } return(serviceStatus); }
public async Task <ServiceStatus> GetCurrentStatusAsync() { var serviceStatus = new ServiceStatus { Name = ServiceName, Status = ServiceState.Red, Notes = string.Empty }; try { //Plumber var checkSOC = "5314"; serviceStatus.CheckParametersUsed = $"SOC used - {checkSOC}"; var response = await asheProxy.EstimatePayMdAsync(checkSOC); if (response.IsSuccessStatusCode) { //Got a response back serviceStatus.Status = ServiceState.Amber; serviceStatus.Notes = "Success Response"; var JobProfileSalary = await response.Content.ReadAsAsync <JobProfileSalary>(); serviceStatus.Notes = "Response Read"; if (JobProfileSalary?.Median != null) { //Manged to read salary information serviceStatus.Status = ServiceState.Green; serviceStatus.Notes = string.Empty; } } else { serviceStatus.Notes = $"Non Success Response StatusCode: {response.StatusCode} Reason: {response.ReasonPhrase}"; } } catch (Exception ex) { serviceStatus.Notes = $"{Constants.ServiceStatusFailedCheckLogsMessage} - {applicationLogger.LogExceptionWithActivityId(Constants.ServiceStatusFailedLogMessage, ex)}"; } return(serviceStatus); }
public Task <ServiceStatus> GetCurrentStatusAsync() { var serviceStatus = new ServiceStatus { Name = ServiceName, Status = ServiceState.Red, Notes = string.Empty }; var emailAddress = "*****@*****.**"; serviceStatus.CheckParametersUsed = $"Email used - {emailAddress}"; var vocPersonalisation = new VocSurveyPersonalisation(); vocPersonalisation.Personalisation.Add("jpprofile", "ServiceCheck"); vocPersonalisation.Personalisation.Add("clientId", "ServiceCheck ClientId"); try { var response = clientProxy.SendEmail(ConfigurationManager.AppSettings[Constants.GovUkNotifyApiKey], emailAddress, ConfigurationManager.AppSettings[Constants.GovUkNotifyTemplateId], this.Convert(vocPersonalisation)); //Got a response back serviceStatus.Status = ServiceState.Amber; serviceStatus.Notes = "Success Response"; if (!string.IsNullOrEmpty(response?.id)) { serviceStatus.Status = ServiceState.Green; serviceStatus.Notes = string.Empty; } } catch (Exception ex) { serviceStatus.Notes = $"{Constants.ServiceStatusFailedCheckLogsMessage} - {applicationLogger.LogExceptionWithActivityId(Constants.ServiceStatusFailedLogMessage, ex)}"; } return(Task.FromResult(serviceStatus)); }
public async Task <ServiceStatus> GetCurrentStatusAsync() { var serviceStatus = new ServiceStatus { Name = ServiceName, Status = ServiceState.Red, Notes = string.Empty }; var searchTerm = "*"; serviceStatus.CheckParametersUsed = $"Search term - {searchTerm}"; try { var searchParam = new SearchParameters { Top = 5 }; var result = await indexClient.Documents.SearchAsync <T>(searchTerm, searchParam); //The call worked ok serviceStatus.Status = ServiceState.Amber; serviceStatus.Notes = "Success search with 0 results"; if (result.Results.Count > 0) { serviceStatus.Status = ServiceState.Green; serviceStatus.Notes = string.Empty; } } catch (Exception ex) { serviceStatus.Notes = $"{Constants.ServiceStatusFailedCheckLogsMessage} - {applicationLogger.LogExceptionWithActivityId(Constants.ServiceStatusFailedLogMessage, ex)}"; } return(serviceStatus); }
public async Task <ServiceStatus> GetCurrentStatusAsync() { var serviceStatus = new ServiceStatus { Name = ServiceName, Status = ServiceState.Red, Notes = string.Empty }; try { var checkText = "nursee"; serviceStatus.CheckParametersUsed = $"Text used - {checkText}"; var response = await GetSpellCheckResponseAsync(checkText); if (response.IsSuccessStatusCode) { //Got a response back serviceStatus.Status = ServiceState.Amber; serviceStatus.Notes = "Success Response"; var resultsString = await response.Content.ReadAsStringAsync(); //Manged to read result information serviceStatus.Notes = "Success Result"; dynamic spellSuggestions = JObject.Parse(resultsString); if (spellSuggestions.flaggedTokens.Count > 0) { //got corrections serviceStatus.Status = ServiceState.Green; serviceStatus.Notes = string.Empty; } } else { serviceStatus.Notes = $"{response.ReasonPhrase}"; applicationLogger.Warn($"{nameof(SpellCheckService)}.{nameof(GetCurrentStatusAsync)} : Unsuccessful reason - {response.ReasonPhrase} - {await response.Content.ReadAsStringAsync()}"); } } catch (Exception ex) { serviceStatus.Notes = $"{Constants.ServiceStatusFailedCheckLogsMessage} - {applicationLogger.LogExceptionWithActivityId(Constants.ServiceStatusFailedLogMessage, ex)}"; } return(serviceStatus); }