public IActionResult LeaveWithdrawal() { try { LeaveWithdrawalViewModel modeldata; LeaveWithdrawalViewModel objNewModel = new LeaveWithdrawalViewModel(); string EmployeeId = HttpContext.Session.GetString(Constant.EmployeeID); string Approverid = Convert.ToString(EmployeeId); var EmployeeName = HttpContext.Session.GetString(Constant.SessionUserName); objNewModel.leavewithdrawal = new List <LeaveWithdrawalModel>(); modeldata = Mapper.Map <LeaveWithdrawalViewModel>(_iLeavewithdrawalService.GetLeaveRequestForWithdrawal(EmployeeId)); string Year = DateTime.Now.Year.ToString(); string param = "LeaveHistory?pernr=" + EmployeeId + "&year=" + Year; using (HttpClient client = new HttpClient()) { string apiUrl = _rfcconfig.GetSection("MySettings").GetSection("WebApiBaseUrl").Value + param; client.BaseAddress = new Uri(apiUrl); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); var response = client.GetAsync(apiUrl); var data = response.Result; if (data.IsSuccessStatusCode) { var readTask = data.Content.ReadAsStringAsync(); EMPLEAVEHISTORY QuotaOverviewDetails = JsonConvert.DeserializeObject <EMPLEAVEHISTORY>(readTask.Result); if (QuotaOverviewDetails != null && QuotaOverviewDetails.OUTPUT != null) { foreach (var item in QuotaOverviewDetails.OUTPUT) { LeaveWithdrawalModel objTempModel = new LeaveWithdrawalModel(); objTempModel.LeaveCode = Convert.ToString(item.LEAVE_CODE); objTempModel.EmployeeID = EmployeeId; objTempModel.LeaveAppliedDateString = "<span>" + item.APPLIED_DATE.ToString("yyyyMMdd", CultureInfo.InvariantCulture) + "</span>" + item.APPLIED_DATE.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture).Replace('-', '/');; objTempModel.FromDateString = item.BEGDA.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture).Replace('-', '/');; objTempModel.ToDateString = item.ENDDA.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture).Replace('-', '/');; objTempModel.TotalLeaves = Convert.ToDouble(item.TOT_LEAVES); objTempModel.Status = Convert.ToString(item.STATUS); objTempModel.LeaveShift = Convert.ToString(item.LEAVE_TYPE); objTempModel.Indicator = item.SAP_STATUS; objTempModel.LeaveAppliedFrom = item.SUBMITTED_BY; if (item.SAP_STATUS == "S") { objTempModel.ErrorMsg = "SAP updated successfully"; } else { objTempModel.ErrorMsg = item.ERROR_MESSAGE; } objNewModel.leavewithdrawal.Add(objTempModel); } } } } string PA = HttpContext.Session.GetString(Constant.PersonalArea); string PSA = HttpContext.Session.GetString(Constant.PersonalSubArea); string Category = HttpContext.Session.GetString(Constant.Category); var LeaveCategoryList = _ILeaveRequestViewService.GetLeaveRequest(PA, PSA, Category); LeaveCategoryList.RemoveAt(0); foreach (var subitem in objNewModel.leavewithdrawal) { var urlNameExists = LeaveCategoryList.Any(s => s.Value.Split('~')[2] == subitem.LeaveCode); if (urlNameExists) { subitem.LeaveCategory = LeaveCategoryList.FirstOrDefault(s => s.Value.Split('~')[2] == subitem.LeaveCode).Text; } else { subitem.LeaveCategory = subitem.LeaveCode; } LeaveWithdrawalModel model = modeldata.leavewithdrawal.FirstOrDefault(t => t.LeaveCode == subitem.LeaveCode && t.LeaveType == subitem.LeaveType && t.FromDateString == subitem.FromDateString && t.ToDateString == subitem.FromDateString); if (model != null) { subitem.ApproverName = model.ApproverName; subitem.LeaveAppliedDate = model.LeaveAppliedDate; modeldata.leavewithdrawal.Remove(model); } } foreach (var subitem in modeldata.leavewithdrawal) { if (subitem.LeaveShift == "F") { subitem.LeaveShift = "First Half"; } else if (subitem.LeaveShift == "S") { subitem.LeaveShift = "Second Half"; } else { subitem.LeaveShift = "Full Day"; } string date = subitem.LeaveAppliedDateString.Replace('-', '/'); DateTime dtdate = DateTime.ParseExact(date, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); subitem.LeaveAppliedDateString = "<span>" + dtdate.ToString("yyyyMMdd") + "</span>" + dtdate.ToString("dd/MM/yyyy"); subitem.LeaveAppliedFrom = "EMP"; subitem.FromDateString = subitem.FromDateString.Replace('-', '/'); subitem.ToDateString = subitem.ToDateString.Replace('-', '/'); objNewModel.leavewithdrawal.Add(subitem); } return(View(objNewModel)); } catch (Exception ex) { _logger.LogError(ex, ex.Message); return(View()); } }
public JsonResult GetHolidayListByYear(string Year, string download, string email = null) { LeaveHistoryModelViewModel objModel = new LeaveHistoryModelViewModel(); LeaveHistoryModelViewModel objNewModel = new LeaveHistoryModelViewModel(); objNewModel.LeaveHistory = new List <LeaveHistoryModelViewModel>(); try { var objEmployeeId = HttpContext.Session.GetString(Constant.EmployeeID); string year = Year; var EmployeeName = HttpContext.Session.GetString(Constant.SessionUserName); objModel = Mapper.Map <LeaveHistoryModelViewModel>(_ILeaveHistoryService.GetLeaveHistoryDetails(objEmployeeId, year)); string param = "LeaveHistory?pernr=" + objEmployeeId + "&year=" + year; using (HttpClient client = new HttpClient()) { string apiUrl = _rfcconfig.GetSection("MySettings").GetSection("WebApiBaseUrl").Value + param; client.BaseAddress = new Uri(apiUrl); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); var response = client.GetAsync(apiUrl); var data = response.Result; if (data.IsSuccessStatusCode) { var readTask = data.Content.ReadAsStringAsync(); EMPLEAVEHISTORY QuotaOverviewDetails = JsonConvert.DeserializeObject <EMPLEAVEHISTORY>(readTask.Result); if (QuotaOverviewDetails != null && QuotaOverviewDetails.OUTPUT != null) { foreach (var item in QuotaOverviewDetails.OUTPUT) { LeaveHistoryModelViewModel objTempModel = new LeaveHistoryModelViewModel(); objTempModel.LeaveCode = Convert.ToString(item.LEAVE_CODE); objTempModel.LeaveAppliedDate = "<span>" + item.APPLIED_DATE.ToString("yyyyMMdd", CultureInfo.InvariantCulture) + "</span>" + item.APPLIED_DATE.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture).Replace('-', '/'); objTempModel.FromDate = item.BEGDA.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture).Replace('-', '/');; objTempModel.ToDate = item.ENDDA.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture).Replace('-', '/');; objTempModel.TotalLeaves = string.IsNullOrEmpty(item.TOT_LEAVES) ? 0 : Convert.ToDouble(item.TOT_LEAVES); objTempModel.Status = Convert.ToString(item.STATUS); objTempModel.LeaveType = Convert.ToString(item.LEAVE_TYPE); objTempModel.Indicator = item.SAP_STATUS; if (item.SAP_STATUS == "S") { objTempModel.ErrorMsg = "SAP updated successfully"; } else { objTempModel.ErrorMsg = item.ERROR_MESSAGE; } objNewModel.LeaveHistory.Add(objTempModel); } } } } string PA = HttpContext.Session.GetString(Constant.PersonalArea); string PSA = HttpContext.Session.GetString(Constant.PersonalSubArea); string Category = HttpContext.Session.GetString(Constant.Category); var LeaveCategoryList = _ILeaveRequestViewService.GetLeaveRequest(PA, PSA, Category); LeaveCategoryList.RemoveAt(0); LeaveHistoryModelViewModel tempmodeladd = new LeaveHistoryModelViewModel(); tempmodeladd.LeaveHistory = new List <LeaveHistoryModelViewModel>(); foreach (var subitem in objNewModel.LeaveHistory) { var urlNameExists = LeaveCategoryList.Any(s => s.Value.Split('~')[2] == subitem.LeaveCode); if (urlNameExists) { subitem.LeaveCategory = LeaveCategoryList.FirstOrDefault(s => s.Value.Split('~')[2] == subitem.LeaveCode).Text; } else { subitem.LeaveCategory = subitem.LeaveCode; } LeaveHistoryModelViewModel model = objModel.LeaveHistory.FirstOrDefault(t => t.LeaveCode == subitem.LeaveCode && t.LeaveType == subitem.LeaveType && t.FromDate == subitem.FromDate && t.ToDate == subitem.ToDate); if (model != null) { //record exists subitem.ApproverName = model.ApproverName; subitem.LeaveAppliedDate = model.LeaveAppliedDate; objModel.LeaveHistory.Remove(model); } } foreach (var subitem in objModel.LeaveHistory) { string date = subitem.LeaveAppliedDate.Replace('-', '/'); DateTime dtdate = DateTime.ParseExact(date, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); subitem.LeaveAppliedDate = "<span>" + dtdate.ToString("yyyyMMdd") + "</span>" + dtdate.ToString("dd/MM/yyyy").Replace('-', '/'); subitem.FromDate = subitem.FromDate.Replace('-', '/'); subitem.ToDate = subitem.ToDate.Replace('-', '/'); objNewModel.LeaveHistory.Add(subitem); } if (download == "yes") { string empname = HttpContext.Session.GetString("FirstName"); SendEmail(objNewModel.LeaveHistory.OrderByDescending(a => a.LeaveAppliedDate).ToList(), empname, email); } return(Json(new { result = true, data = objNewModel })); } catch (Exception ex) { _logger.LogError(ex, ex.Message); return(Json(new { result = false, data = objNewModel })); } }