//This method is called asynchronously to calculate wages. public IActionResult OnPostCalculate() { var emploeeId = Convert.ToInt32(Request.Query["emploeeId"]); var emploee = _context.Emploees.FirstOrDefault(p => p.ID == emploeeId); // This is the calculation for non-fixed employees. if (!emploee.FIX_PAYMENT) { var salaryamount = _calculate.Consider(emploee.F_NAME, emploee.L_NAME); CalculateResult[0] = emploee.FIX_PAYMENT; CalculateResult[2] = emploee.F_NAME; CalculateResult[3] = emploee.L_NAME; CalculateResult[5] = salaryamount; CalculateResult[6] = emploee.COUNT_HOUR; return(new JsonResult(CalculateResult)); } // This is the calculation for fixed employees. else { //This is the validation of data from calendars. var firstdate = Request.Query["firstdate"]; var lastdate = Request.Query["lastdate"]; var validationresult = Validation.DateValidation(firstdate, lastdate); CalculateResult[0] = true; CalculateResult[1] = validationresult[0]; CalculateResult[4] = validationresult[1]; if (!Convert.ToBoolean(validationresult[0])) { return(new JsonResult(CalculateResult)); } // This is the calculation for fixed employees. var FirstDate = Convert.ToDateTime(firstdate); var LastDate = Convert.ToDateTime(lastdate); var salaryamount = _calculate.ConsiderFix(emploee.F_NAME, emploee.L_NAME, FirstDate, LastDate); CalculateResult[0] = emploee.FIX_PAYMENT; CalculateResult[2] = emploee.F_NAME; CalculateResult[3] = emploee.L_NAME; CalculateResult[5] = salaryamount[0]; CalculateResult[6] = salaryamount[1]; return(new JsonResult(CalculateResult)); } }