Untitled
unknown
plain_text
a year ago
2.6 kB
8
Indexable
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);
}
}
}
}
}
}Editor is loading...
Leave a Comment