public async Task <IActionResult> CalculateAsync() { var data = JsonConvert.DeserializeObject <RequestHoursVM>((string)TempData["modelData"]); ReportVM model = null; RequestHoursAM request = new RequestHoursAM { Identification = data.Identification, Week = data.Week }; var apiEndpoint = Configuration["ApiEndpoint"]; var apiClient = new HttpClient(); HttpContent content = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); var response = await apiClient.PostAsync(apiEndpoint + "/api/Report/CalculateHours", content); if (response.IsSuccessStatusCode) { var strJson = await response.Content.ReadAsStringAsync(); var deserialize = JsonConvert.DeserializeObject <ReportAM>(strJson); model = new ReportVM { NormalHours = deserialize.NormalHours, SundayHours = deserialize.SundayHours, NightHours = deserialize.NightHours, NormalOvertime = deserialize.NormalOvertime, NightOvertime = deserialize.NightOvertime, SundayOvertime = deserialize.SundayOvertime }; } return(View(model)); }
public ReportAM CalculateHours([FromBody] RequestHoursAM data) { try { ReportAM report = new ReportAM(); var workList = pServiceBO.Get(j => j.Person.Identification == data.Identification && j.WeekNumber == data.Week); if (workList != null && workList.Count > 0) { foreach (PersonServicesAM work in workList.Where(j => j.StarDate.Value.DayOfWeek != DayOfWeek.Sunday)) { TimeSpan diff = (work.EndDate.Value - work.StarDate.Value); report.NormalHours += diff.TotalHours; } foreach (PersonServicesAM work in workList.Where(j => j.StarDate.Value.DayOfWeek == DayOfWeek.Sunday)) { TimeSpan diff = (work.EndDate.Value - work.StarDate.Value); if (report.NormalHours < 48) { report.SundayHours += diff.TotalHours; } else { report.SundayOvertime += diff.TotalHours; } } return(report); } else { return(new ReportAM()); } } catch (Exception e) { logger.LogInformation("Error: {mess}", e); return(new ReportAM()); } }