コード例 #1
0
        /// <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);
        }