Untitled
public async Task SyncAISLogs() { // daily sync var date = DateTime.Today.ToString("yyyy-MM-dd HH:mm:ss"); // passed to API using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri(Constants.AISPaydayToday.BaseUrl); client.DefaultRequestHeaders.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(Constants.Common.JSONType)); client.Timeout = TimeSpan.FromMinutes(5); // Set the timeout to 2 minutes var endPoint = string.Format(Constants.AISPaydayToday.SnycTimelogPayday, date); HttpResponseMessage responseMessage = await client.GetAsync(endPoint); if (responseMessage.IsSuccessStatusCode) { string objResp = responseMessage.Content.ReadAsStringAsync().Result; List<TimelogsToPayDay> logsAIS = JsonConvert.DeserializeObject<List<TimelogsToPayDay>>(objResp); if (logsAIS.Count > 0) { // pass to the service; var validatedTimelogs = _timelogsService.TimelogAIS(logsAIS); if (validatedTimelogs.SucceededReadLines.Count > 0) { var timelogsList = validatedTimelogs.SucceededReadLines; var groupLogsByCompanies = timelogsList.GroupBy(x => x.Employee.CompanyID) .Select(data => new { CompanyID = data.Key, timelogs = data.ToList() }); foreach (var item in groupLogsByCompanies) { //get first log since all employee after group has the same company var getFirstLog = item.timelogs.FirstOrDefault(); var companySetup = await GetCompanySetupAsync(getFirstLog.EmployeeID, _employeeService); _timelogsService.BulkCreateTxt(item.timelogs, companySetup); } } } } } }
Leave a Comment