/// <summary> /// Method that returns the details of leave for an employee /// </summary> /// <param name="employeeId">userId of user</param> /// <returns>Details of leave for an employee</returns> public async Task <IEnumerable <LeaveReportDetails> > LeaveReportDetailsAsync(string employeeId) { //Get user details User user = await GetEmployeeByIdAsync(employeeId); List <LeaveReportDetails> leaveReportDetails = new List <LeaveReportDetails>(); if (user != null) { //Get all leaves applied by the employee List <LeaveRequest> leaves = (await _leaveRequest.FetchAsync(x => x.EmployeeId == employeeId)).ToList(); //Assign details of approved leaves foreach (var leave in leaves) { LeaveReportDetails leaveReportDetail = new LeaveReportDetails(); if (leave.Status == Condition.Approved) { leaveReportDetail.EmployeeUserName = user.Email; leaveReportDetail.EmployeeName = string.Format(_stringConstant.EmployeeFirstLastNameFormat, user.FirstName, user.LastName); leaveReportDetail.LeaveFrom = leave.FromDate.ToShortDateString(); leaveReportDetail.StartDay = leave.FromDate.DayOfWeek.ToString(); leaveReportDetail.LeaveUpto = leave.EndDate.Value.ToShortDateString(); leaveReportDetail.EndDay = leave.EndDate.Value.DayOfWeek.ToString(); leaveReportDetail.Reason = leave.Reason; leaveReportDetail.Type = leave.Type.ToString(); leaveReportDetails.Add(leaveReportDetail); } } return(leaveReportDetails); } return(leaveReportDetails); }
/// <summary> /// Method that returns the details of leave for an employee /// </summary> /// <param name="employeeId"></param> /// <param name="accessToken"></param> /// <returns>Details of leave for an employee</returns> public async Task <IEnumerable <LeaveReportDetails> > LeaveReportDetails(string employeeId, string accessToken) { User user = await GetEmployeeById(employeeId, accessToken); if (user != null) { var leaves = _leaveRequest.Fetch(x => x.EmployeeId == employeeId).ToList(); List <LeaveReportDetails> leaveReportDetails = new List <LeaveReportDetails>(); foreach (var leave in leaves) { LeaveReportDetails leaveReportDetail = new LeaveReportDetails(); if (leave.Status == Condition.Approved) { leaveReportDetail.EmployeeUserName = user.Email; leaveReportDetail.EmployeeName = string.Format("{0} {1}", user.FirstName, user.LastName); leaveReportDetail.LeaveFrom = leave.FromDate.ToShortDateString(); leaveReportDetail.StartDay = leave.FromDate.DayOfWeek.ToString(); leaveReportDetail.LeaveUpto = leave.EndDate.Value.ToShortDateString(); leaveReportDetail.EndDay = leave.EndDate.Value.DayOfWeek.ToString(); leaveReportDetail.Reason = leave.Reason; } leaveReportDetails.Add(leaveReportDetail); } return(leaveReportDetails); } return(null); }