示例#1
0
        public ActionResult Index()
        {
            ApplicationUser currentUser = (from u in _context.Users
                                           where u.UserName == User.Identity.Name
                                           select u).FirstOrDefault();

            LeaveList list = new LeaveList();

            list.Holidays = _context.PublicHoliday.ToList();

            list.UserLeaves = (from u in _context.Users
                               where u.Manager.Id == currentUser.Id
                               select new UserLeave()
            {
                UserID = u.Id,
                Leaves = (from tbl in _context.Leave where tbl.User.Id == u.Id select tbl).ToList(),
                Name = u.FullName,
                EmploymentStartDate = u.EmploymentStartDate
            }).ToList();

            List <UserLeave> subLeaves = (from u in _context.Users
                                          where u.Manager.Manager.Id == currentUser.Id
                                          select new UserLeave()
            {
                UserID = u.Id,
                Leaves = (from tbl in _context.Leave where tbl.User.Id == u.Id select tbl).ToList(),
                Name = u.FullName,
                EmploymentStartDate = u.EmploymentStartDate
            }).ToList();

            list.UserLeaves.AddRange(subLeaves);

            list.Leaves = _context.Leave.Where(tbl => tbl.User.Id == currentUser.Id).ToList();

            list.Leaves = Deferral.AddDeferral(list.Leaves, list.Holidays);
            list.Leaves = Accrual.AddAccrual(currentUser.EmploymentStartDate, currentUser.FullName, list.Leaves);

            foreach (UserLeave userLeave in list.UserLeaves)
            {
                userLeave.Leaves = Deferral.AddDeferral(userLeave.Leaves, list.Holidays);
                userLeave.Leaves = Accrual.AddAccrual(userLeave.EmploymentStartDate, userLeave.Name, userLeave.Leaves);
            }

            list.FormModel = new LeaveFormModel()
            {
                StartDate     = DateTime.Now.Date,
                EndDate       = DateTime.Now.Date,
                UserID        = currentUser.Id,
                RequestDate   = DateTime.Now,
                LeaveStateID  = 1,
                Note          = "",
                Attachement   = "",
                Institution   = "",
                StudentNumber = ""
            };

            ViewBag.LeaveStateID = new SelectList(_context.LeaveState, "LeaveStateID", "Description", 1);

            return(View(list));
        }