Ejemplo n.º 1
0
        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");
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }