public OrganisationSearchController(ILogger <OrganisationSearchController> logger, IMediator mediator, RoatpApiClient roatpApiClient, ReferenceDataApiClient referenceDataApiClient, CompaniesHouseApiClient companiesHouseApiClient, CharityCommissionApiClient charityCommissionApiClient) { _logger = logger; _roatpApiClient = roatpApiClient; _referenceDataApiClient = referenceDataApiClient; _companiesHouseApiClient = companiesHouseApiClient; _charityCommissionApiClient = charityCommissionApiClient; _mediator = mediator; }
public void Before_each_test() { var httpClient = new HttpClient { BaseAddress = new Uri(RoatpApiBaseAddress), }; httpClient.DefaultRequestHeaders.Add("Accept", "application/json"); var logger = new Mock <ILogger <RoatpApiClient> >(); var hostingEnvironment = new Mock <IHostingEnvironment>(); _config = new ConfigurationService(hostingEnvironment.Object, "LOCAL", ConnectionString, Version, ServiceName); _config.GetConfig().GetAwaiter().GetResult().RoatpApiAuthentication.ApiBaseAddress = RoatpApiBaseAddress; _apiClient = new RoatpApiClient(httpClient, logger.Object, new RoatpTokenService(_config)); }
public List <Provider> GetAllProvidersFromApi() { var roatpapiclient = new RoatpApiClient(_uri); return(roatpapiclient.FindAll().ToList()); }
public static void ImportRoATPData(Object stateInfo) { Boolean automatedTaskStarted = false; try { if (String.IsNullOrEmpty(Constants.ConfigSettings.RoATPAPIImportTime)) { // Log Warning about RoATPAPIImportTime not being set AppGlobal.Log.WriteError(AppGlobal.Language.GetText("Automation_RoATPAPIImport_ImportTimeNotConfigured", "Error Importing RoATP Data. RoATPAPIImportTime Not Configured", false, languageId)); return; } if (DateTime.Now.ToString("HH:mm") == Constants.ConfigSettings.RoATPAPIImportTime) { // Ensure that another server hasn't picked this up if (!CanRunAutomatedTask(AutomatedTaskName.RoATPAPI)) { AppGlobal.Log.WriteLog(AppGlobal.Language.GetText("Automation_RoATPImport_Running", "Automated RoATP API data import running on a different server", false, languageId)); return; } automatedTaskStarted = true; // Do the import new Thread(() => { try { using (ProviderPortalEntities db = new ProviderPortalEntities()) { List <Int32> ukprns = new List <Int32>(); using (RoatpApiClient client = new RoatpApiClient()) { foreach (SFA.Roatp.Api.Types.Provider apiProvider in client.FindAll()) { if (apiProvider.ProviderType == SFA.Roatp.Api.Types.ProviderType.MainProvider) { if (apiProvider.Ukprn <= Int32.MaxValue) // Should always be but just incase { ukprns.Add(Convert.ToInt32(apiProvider.Ukprn)); } } List <Provider> providers = db.Providers.Where(x => x.Ukprn == apiProvider.Ukprn && x.RecordStatusId == (Int32)Constants.RecordStatus.Live).ToList(); if (providers.Count > 0) { foreach (Provider provider in providers) { RoATPProviderType providerType = db.RoATPProviderTypes.Find((Int32)apiProvider.ProviderType); if (providerType != null) { if (provider.RoATPProviderType != providerType || provider.RoATPStartDate != apiProvider.StartDate || provider.ApprenticeshipContract != (apiProvider.ProviderType == SFA.Roatp.Api.Types.ProviderType.MainProvider)) { // Provider found and updated - log it. AppGlobal.Log.WriteLog(String.Format(AppGlobal.Language.GetText("Automation_RoATPImport_ProviderUpdated", "Automated RoATP API data import updated provider {0} for ukprn {1}", false, languageId), provider.ProviderId, provider.Ukprn)); provider.RoATPProviderType = providerType; provider.RoATPStartDate = apiProvider.StartDate; provider.ApprenticeshipContract = apiProvider.ProviderType == SFA.Roatp.Api.Types.ProviderType.MainProvider; db.Entry(provider).State = EntityState.Modified; } } } } else { // Provider not found - log it AppGlobal.Log.WriteLog(String.Format(AppGlobal.Language.GetText("Automation_RoATPImport_ProviderNotFound", "Automated RoATP API data import no provider found for ukprn {0}", false, languageId), apiProvider.Ukprn)); } } } // Get current apprenticeship provers who are not in the API foreach (Provider provider in db.Providers.Where(x => x.ApprenticeshipContract == true && !ukprns.Contains(x.Ukprn))) { // Log it AppGlobal.Log.WriteLog(String.Format(AppGlobal.Language.GetText("Automation_RoATPImport_RemovedProviderFromRoATP", "Automated RoATP API data import removed provider {0} from RoATP, ukprn {1}", false, languageId), provider.ProviderId, provider.Ukprn)); provider.ApprenticeshipContract = false; db.Entry(provider).State = EntityState.Modified; } // Save the changes db.SaveChanges(); } // Complete the task CompleteAutomatedTask(AutomatedTaskName.RoATPAPI); } catch (Exception ex) { // Send Email foreach (String address in Constants.ConfigSettings.RoATPImportErrorEmailAddress.Split(';')) { //AppGlobal.EmailQueue.AddToSendQueue( // TemplatedEmail.EmailMessage( // new MailAddress(address), // null, // new MailAddress(Constants.ConfigSettings.AutomatedFromEmailAddress, Constants.ConfigSettings.AutomatedFromEmailName), // Constants.EmailTemplates.RoATPImportError, // new List<EmailParameter> // { // new EmailParameter("%EXCEPTION%", ex.Message), // new EmailParameter("%STACKTRACE%", ex.StackTrace) // }, // AppGlobal.Language.GetText("TemplatedEmail_EmailOverride_FormatString", "<p>This email was originally sent to {0}:<p>{1}", false, languageId))); var emailMessage = TemplatedEmail.EmailMessage( new MailAddress(address), null, new MailAddress(Constants.ConfigSettings.AutomatedFromEmailAddress, Constants.ConfigSettings.AutomatedFromEmailName), Constants.EmailTemplates.RoATPImportError, new List <EmailParameter> { new EmailParameter("%EXCEPTION%", ex.Message), new EmailParameter("%STACKTRACE%", ex.StackTrace) }, AppGlobal.Language.GetText("TemplatedEmail_EmailOverride_FormatString", "<p>This email was originally sent to {0}:<p>{1}", false, languageId)); var response = SfaSendGridClient.SendGridEmailMessage(emailMessage, null); } AppGlobal.Log.WriteError(String.Format(AppGlobal.Language.GetText("Automation_RoATPImport_GenericError", "Automated RoATP API Data Importer Failed With Error: {0}", false, languageId), ex.Message)); if (automatedTaskStarted) { CompleteAutomatedTask(AutomatedTaskName.RoATPAPI); } } }).Start(); } } catch (Exception ex) { AppGlobal.Log.WriteError(String.Format(AppGlobal.Language.GetText("Automation_RoATPImport_GenericError", "Automated RoATP API Data Importer Failed With Error: {0}", false, languageId), ex.Message)); if (automatedTaskStarted) { CompleteAutomatedTask(AutomatedTaskName.RoATPAPI); } } }