using DamageAssesment.Api.SurveyResponses.Interfaces; using DamageAssesment.Api.SurveyResponses.Models; using Newtonsoft.Json; namespace DamageAssesment.Api.SurveyResponses.Services { public class EmployeeServiceProvider :ServiceProviderBase, IEmployeeServiceProvider { public EmployeeServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger logger) : base(configuration, httpUtil, logger, "/api/Employees", configuration.GetValue("EndPointSettings:EmployeeUrlBase")) { } public async Task> getEmployeesAsync() { try { var url = urlBase + ressource; var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null); var employees = JsonConvert.DeserializeObject>(responseJsonString); if (employees == null || !employees.Any()) return new List(); else return employees; } catch (Exception ex) { logger?.LogError($"Exception Found : {ex.Message} - Ref: EmployeeServiceProvider.getEmployeesAsync()"); return new List(); } } public async Task getEmployeeAsync(string employeeId) { try { var url = urlBase + "/api/Employees/" + employeeId; var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null); var employee = JsonConvert.DeserializeObject(responseJsonString); if (employee == null ) return null; else return employee; } catch (Exception ex) { logger?.LogError($"Exception Found : {ex.Message} - Ref: EmployeeServiceProvider.getEmployeeAsync()"); return null; } } } }