Exemple #1
0
        /// <summary>
        /// Determines whether [has pending leave] [the specified employee identifier].
        /// </summary>
        /// <param name="employeeId">The employee identifier.</param>
        /// <returns>
        /// The bool DataResponse.
        /// </returns>
        public bool HasPendingLeave(int employeeId)
        {
            var context      = new LeavePortalEntities();
            var pendingLeave = context.LeaveRequests.Where(x => x.EmployeeId == employeeId && x.IsPending == true).Any();

            return(pendingLeave);
        }
Exemple #2
0
        /// <summary>
        /// Determines whether [has available leave] [the specified employee identifier].
        /// </summary>
        /// <param name="employeeId">The employee identifier.</param>
        /// <returns>
        /// The bool DataResponse.
        /// </returns>
        public bool HasAvailableLeave(int employeeId)
        {
            var context      = new LeavePortalEntities();
            var leaveBalance = context.LeaveBalances.Any(x => x.EmployeeId == employeeId && x.Balance > 0);

            return(leaveBalance);
        }
Exemple #3
0
        /// <summary>
        /// Cancels the leave.
        /// </summary>
        /// <param name="employeeId">The employee identifier.</param>
        /// <returnsThe Outcome.</returns>
        public DataOperationOutcome CancelLeave(int employeeId)
        {
            var context             = new LeavePortalEntities();
            var leaveRequestOutcome = context.LeaveRequests.SingleOrDefault(x => x.EmployeeId == employeeId && x.IsPending == true);

            leaveRequestOutcome.IsPending      = false;
            leaveRequestOutcome.LeaveCancelled = true;
            context.SaveChanges();

            return(DataOperationOutcome.Success);
        }
        /// <summary>
        /// Gets the supervisor.
        /// </summary>
        /// <param name="employeeId">The employee identifier.</param>
        /// <returns>
        /// The supervisor id.
        /// </returns>
        public int?GetSupervisor(int employeeId)
        {
            var context    = new LeavePortalEntities();
            var supervisor = context.Supervisors.SingleOrDefault(x => x.EmployeeId == employeeId);

            if (supervisor == null)
            {
                return(null);
            }

            return(supervisor.Supervisor1);
        }
Exemple #5
0
        /// <summary>
        /// Commits the leave balance.
        /// </summary>
        /// <param name="employeeId">The employee identifier.</param>
        /// <param name="leaveBalance">The leave balance.</param>
        /// <param name="approved">if set to <c>true</c> [approved].</param>
        /// <returns>
        /// Teh DataOperationOutcome.
        /// </returns>
        public DataOperationOutcome CommitLeaveBalance(int employeeId, decimal leaveBalance, bool approved)
        {
            var context             = new LeavePortalEntities();
            var leaveBalanceOutcome = context.LeaveBalances.SingleOrDefault(x => x.EmployeeId == employeeId);
            var leaveRequestOutcome = context.LeaveRequests.SingleOrDefault(x => x.EmployeeId == employeeId && x.IsPending == true);

            leaveBalanceOutcome.Balance    = leaveBalance;
            leaveRequestOutcome.IsApproved = approved;
            leaveRequestOutcome.IsPending  = false;
            context.SaveChanges();

            return(DataOperationOutcome.Success);
        }
Exemple #6
0
        /// <summary>
        /// Gets the holiday.
        /// </summary>
        /// <param name="date">The date.</param>
        /// <returns>A specific holiday.</returns>
        public HolidayModel GetHoliday(DateTime date)
        {
            var context = new LeavePortalEntities();
            var holiday = context.Holidays.Where(x => DbFunctions.TruncateTime(x.Date) == DbFunctions.TruncateTime(date.Date)).SingleOrDefault();

            if (holiday == null)
            {
                return(null);
            }

            var mapped = holiday.Map();

            return(mapped);
        }
Exemple #7
0
        /// <summary>
        /// Gets the manager history.
        /// </summary>
        /// <param name="approverId">The approver identifier.</param>
        /// <returns>The LeaveHistoryCollection.</returns>
        public LeaveHistoryCollection GetManagerHistory(int approverId)
        {
            var context             = new LeavePortalEntities();
            var pendingLeaveOutcome = context.LeaveRequests.Where(x => x.ApprovedBy == approverId && x.IsApproved != null);

            if (pendingLeaveOutcome.Count() == 0)
            {
                return(null);
            }

            var mappedHistory = pendingLeaveOutcome.MapHistory();

            return(mappedHistory);
        }
Exemple #8
0
        /// <summary>
        /// Gets the employee history.
        /// </summary>
        /// <param name="employeeId">The employee identifier.</param>
        /// <returns>The LeaveHistoryCollection.</returns>
        public LeaveHistoryCollection GetEmployeeHistory(int employeeId)
        {
            var context             = new LeavePortalEntities();
            var pendingLeaveOutcome = context.LeaveRequests.Where(x => x.EmployeeId == employeeId && x.IsPending == false).OrderBy(x => x.EmployeeId);

            if (pendingLeaveOutcome.Count() == 0)
            {
                return(null);
            }

            var mappedHistory = pendingLeaveOutcome.MapHistory();

            return(mappedHistory);
        }
Exemple #9
0
        /// <summary>
        /// Gets the pending leave requests.
        /// </summary>
        /// <param name="approver">The approver.</param>
        /// <returns></returns>
        public LeaveRequestCollection GetPendingLeaveRequests(int approver)
        {
            var context      = new LeavePortalEntities();
            var leaveRequest = context.LeaveRequests.Where(x => x.ApprovedBy == approver && x.IsPending == true).OrderBy(x => x.EmployeeId);

            if (leaveRequest == null)
            {
                return(null);
            }

            var mapped = leaveRequest.Map();

            return(mapped);
        }
Exemple #10
0
        /// <summary>
        /// Gets the pending leave.
        /// </summary>
        /// <param name="employeeId">The employee identifier.</param>
        /// <returns>
        /// Leave request.
        /// </returns>
        public LeaveRequestModel GetPendingLeave(int employeeId)
        {
            var context      = new LeavePortalEntities();
            var leaveRequest = context.LeaveRequests.Where(x => x.EmployeeId == employeeId && x.IsPending == true).FirstOrDefault();

            if (leaveRequest == null)
            {
                return(null);
            }

            var mapped = leaveRequest.Map();

            return(mapped);
        }
Exemple #11
0
        /// <summary>
        /// Gets the leave balance.
        /// </summary>
        /// <param name="employeeId">The employee identifier.</param>
        /// <returns>
        /// The leave balance.
        /// </returns>
        public LeaveBalanceModel GetLeaveBalance(int employeeId)
        {
            var context      = new LeavePortalEntities();
            var leaveBalance = context.LeaveBalances.SingleOrDefault(x => x.EmployeeId == employeeId);
            var employee     = context.AspNetUsers.SingleOrDefault(x => x.EmployeeId == employeeId.ToString());

            if (leaveBalance == null)
            {
                return(null);
            }

            var mapped = leaveBalance.Map(employee.Name, employee.Surname);

            return(mapped);
        }
Exemple #12
0
        /// <summary>
        /// Gets the leave types.
        /// </summary>
        /// <returns>
        /// A collection of leave types.
        /// </returns>
        public LeaveTypeCollection GetLeaveTypes()
        {
            var context    = new LeavePortalEntities();
            var leaveTypes = context.LeaveTypes;

            if (leaveTypes == null)
            {
                return(null);
            }

            var mapped = leaveTypes.Map();

            return(new LeaveTypeCollection {
                Data = mapped
            });
        }
Exemple #13
0
        /// <summary>
        /// Updates the leave request.
        /// </summary>
        /// <param name="employeeId">The employee identifier.</param>
        /// <param name="fromDate">From date.</param>
        /// <param name="toDate">To date.</param>
        /// <param name="daysRequested">The days requested.</param>
        /// <param name="remainingBalance">The remaining balance.</param>
        /// <param name="leaveTypeId">The leave type identifier.</param>
        /// <param name="comments">The comments.</param>
        /// <param name="supervisorId">The supervisor identifier.</param>
        /// <returns>The DataOperationOutcome</returns>
        public DataOperationOutcome UpdateLeaveRequest(int employeeId, DateTime fromDate, DateTime toDate, decimal daysRequested, decimal remainingBalance, int leaveTypeId, string comments, int supervisorId)
        {
            var context      = new LeavePortalEntities();
            var leaveRequest = context.LeaveRequests.SingleOrDefault(x => x.EmployeeId == employeeId && x.IsPending == true);

            leaveRequest.FromDate              = fromDate;
            leaveRequest.ToDate                = toDate;
            leaveRequest.LeaveRequestedInDays  = daysRequested;
            leaveRequest.RemainingLeaveBalance = remainingBalance;
            leaveRequest.LeaveTypeId           = leaveTypeId;
            leaveRequest.Comments              = comments;

            context.SaveChanges();

            return(DataOperationOutcome.Success);
        }
        /// <summary>
        /// Gets the employee.
        /// </summary>
        /// <param name="employeeId">The employee identifier.</param>
        /// <returns>
        /// The Employee DataResponse.
        /// </returns>
        public DataResponse <EmployeeModel> GetEmployee(int employeeId)
        {
            var context = new LeavePortalEntities();
            //var employee = context.Employees.Where(x => x.EmployeeID == employeeId).SingleOrDefault();
            var employee = context.AspNetUsers.Where(x => x.EmployeeId == employeeId.ToString()).SingleOrDefault();

            if (employee == null)
            {
                return(new DataResponse <EmployeeModel> {
                    IsSuccessful = false, ErrorMessage = "Unable to find the employee id"
                });
            }

            var mapped = employee.Map();

            return(new DataResponse <EmployeeModel> {
                IsSuccessful = true, Data = mapped
            });
        }
Exemple #15
0
        /// <summary>
        /// Adds the new leave request.
        /// </summary>
        /// <param name="employeeId">The employee identifier.</param>
        /// <param name="fromDate">From date.</param>
        /// <param name="toDate">To date.</param>
        /// <param name="daysRequested">The days requested.</param>
        /// <param name="remainingBalance">The remaining balance.</param>
        /// <param name="leaveTypeId">The leave type identifier.</param>
        /// <param name="comments">The comments.</param>
        /// <param name="supervisorId">The supervisor identifier.</param>
        /// <returns>
        /// The DataOperationOutcome.
        /// </returns>
        public DataOperationOutcome AddNewLeaveRequest(int employeeId, DateTime fromDate, DateTime toDate, decimal daysRequested, decimal remainingBalance, int leaveTypeId, string comments, int supervisorId)
        {
            var context         = new LeavePortalEntities();
            var addleaveRequest = new LeaveRequest
            {
                FromDate              = fromDate,
                ToDate                = toDate,
                LeaveRequestedInDays  = daysRequested,
                RemainingLeaveBalance = remainingBalance,
                IsPending             = true,
                EmployeeId            = employeeId,
                ApprovedBy            = supervisorId,
                LeaveTypeId           = leaveTypeId,
                Comments              = comments,
                LeaveCancelled        = false,
                DateRequested         = DateTime.Now
            };

            context.LeaveRequests.Add(addleaveRequest);
            context.SaveChanges();

            return(DataOperationOutcome.Success);
        }