public async Task <LeaveMainResponse> GetAllLeaveRecordByEmployee(LeaveRequestByEmployee FilterRequest) { FilterRequest.Page = FilterRequest.Page == 0 ? 1 : FilterRequest.Page; FilterRequest.Limit = FilterRequest.Limit == 0 ? 10 : FilterRequest.Limit; IQueryable <LeaveResponse> data; LeaveMainResponse leaveMainResponse = new LeaveMainResponse(); data = from l1 in ObjContext.Leave join GC1 in ObjContext.GlobalCodes on l1.LeaveType equals GC1.GlobalCodeId into gcode1 from gcd1 in gcode1.DefaultIfEmpty() join GC2 in ObjContext.GlobalCodes on l1.RequestStatus equals GC2.GlobalCodeId into gcode2 from gcd2 in gcode2.DefaultIfEmpty() join GC3 in ObjContext.GlobalCodes on l1.Duration equals GC3.GlobalCodeId into gcode3 from gcd3 in gcode3.DefaultIfEmpty() join U in ObjContext.Users on l1.EmployeeId equals U.UserId into US1 from US in US1.DefaultIfEmpty() orderby FilterRequest.OrderBy where l1.IsDeleted == false && l1.IsActive == true && l1.EmployeeId == FilterRequest.EmployeeId select new LeaveResponse { EmployeeId = l1.EmployeeId, LeaveType = gcd1.CodeName, Duration = (gcd3.CodeName == null ? String.Empty : gcd3.CodeName), StartDate = l1.StartDate, EndDate = l1.EndDate, NumberOfDays = l1.NumberOfDays, CreatedOn = l1.CreatedOn, LeaveId = l1.LeaveId, Reason = l1.Reason, RequestStatusName = (gcd2.CodeName == null ? String.Empty : gcd2.CodeName), PendingLeaves = l1.PendingLeaves, RequestStatus = l1.RequestStatus, Username = US.UserName, Email = US.Email }; if (FilterRequest.OrderByDescending == true) { data = data.OrderByDescending(x => x.GetType().GetProperty(FilterRequest.OrderBy).GetValue(x)); } else { data = data.OrderBy(x => x.GetType().GetProperty(FilterRequest.OrderBy).GetValue(x)); } leaveMainResponse.totalRecords = data.Count(); if (FilterRequest.AllRecords) { leaveMainResponse.leaveResponse = await data.ToListAsync(); } else { leaveMainResponse.leaveResponse = data.Skip((FilterRequest.Page - 1) * FilterRequest.Limit).Take(FilterRequest.Limit).ToList(); } return(leaveMainResponse); }
public async Task <BaseResponse> GetAllLeaveRecordByEmployee(LeaveRequestByEmployee filterRequest) { try { var leaveResponse = await _leavesRepository.GetAllLeaveRecordByEmployee(filterRequest); if (leaveResponse.totalRecords != 0) { _response.Status = true; _response.Message = Constants.DEFAULT_SUCCESS_MSG; _response.data.leaveMainResponse = leaveResponse; } else { _response.Message = Constants.GLOBAL_CODE_CATEGORY_NOT_EXISTS; } } catch (Exception ex) { throw ex; } return(_response); }
public async Task <ActionResult> GetAllLeaves(LeaveRequestByEmployee filterRequest) { try { _response = await _LeavesService.GetAllLeaveRecordByEmployee(filterRequest); if (_response.Status == false) { _json = JsonConvert.SerializeObject(_response, _serializerSettings); return(BadRequest(_json)); } _json = JsonConvert.SerializeObject(_response, _serializerSettings); return(new OkObjectResult(_json)); } catch (Exception ex) { _response.Message = ex.Message; _response.Status = false; _json = JsonConvert.SerializeObject(_response, _serializerSettings); return(BadRequest(_json)); } }