public async Task <IActionResult> LeaveApply(LeaveApplyModel leaveApplyModel)
        {
            string user        = User.FindFirst("Index").Value;
            var    Currentuser = await _taskRepository.GetCurrentUser(user);

            ViewBag.photo         = Currentuser.PhotoURL;
            leaveApplyModel.EmpId = Currentuser.EmpId;
            int      Eid      = leaveApplyModel.EmpId;
            DateTime date     = leaveApplyModel.Startdate;
            bool     existOne = _leaveRepository.CheckExist(Eid, date);

            if (existOne)
            {
                return(RedirectToAction(nameof(LeaveApply), new { isExist = true }));
            }
            else
            {
                TimeSpan differ = (TimeSpan)(leaveApplyModel.EndDate - leaveApplyModel.Startdate);
                leaveApplyModel.NoOfDays = differ.Days;
                if (leaveApplyModel.EvidencePDF != null)
                {
                    String folder = "images/evidencePDF/";
                    leaveApplyModel.PdfURL = await UploadPDF(folder, leaveApplyModel.EvidencePDF);
                }
                int id = await _leaveRepository.AddLeave(leaveApplyModel);

                if (id > 0)
                {
                    return(RedirectToAction(nameof(LeaveApply), new { isSucceess = true, leaveId = id }));
                }
            }
            return(View());
        }
        public async Task <bool> UpdateLeave(LeaveApplyModel leaveApplyModel)
        {
            var leave = await _context.LeaveApply.FindAsync(leaveApplyModel.LeaveApplyId);

            leave.LeaveType = leaveApplyModel.LeaveType;
            leave.Startdate = leaveApplyModel.Startdate;
            leave.EndDate   = leaveApplyModel.EndDate;
            leave.Reason    = leaveApplyModel.Reason;
            leave.NoOfDays  = leaveApplyModel.NoOfDays;
            leave.PdfURL    = leaveApplyModel.PdfURL;

            _context.Entry(leave).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return(true);
        }
        public async Task <int> AddLeave(LeaveApplyModel LeaveApplyModel)
        {
            var leaveApply = new LeaveApply()
            {
                LeaveType   = LeaveApplyModel.LeaveType,
                Startdate   = LeaveApplyModel.Startdate,
                EndDate     = LeaveApplyModel.EndDate,
                Reason      = LeaveApplyModel.Reason,
                EmpId       = LeaveApplyModel.EmpId,
                AppliedDate = DateTime.Now,
                NoOfDays    = LeaveApplyModel.NoOfDays,
                Status      = "Waiting for Recommendation",
                Visible     = "Show",
                PdfURL      = LeaveApplyModel.PdfURL
            };

            await _context.LeaveApply.AddAsync(leaveApply);

            await _context.SaveChangesAsync();

            return(leaveApply.LeaveApplyId);
        }
        public async Task <IActionResult> EditLeave(LeaveApplyModel leaveApplyModel)
        {
            string user        = User.FindFirst("Index").Value;
            var    Currentuser = await _taskRepository.GetCurrentUser(user);

            ViewBag.photo         = Currentuser.PhotoURL;
            leaveApplyModel.EmpId = Currentuser.EmpId;
            TimeSpan differ = (TimeSpan)(leaveApplyModel.EndDate - leaveApplyModel.Startdate);

            leaveApplyModel.NoOfDays = differ.Days;
            if (leaveApplyModel.EvidencePDF != null)
            {
                String folder = "images/evidencePDF/";
                leaveApplyModel.PdfURL = await UploadPDF(folder, leaveApplyModel.EvidencePDF);
            }
            bool success = await _leaveRepository.UpdateLeave(leaveApplyModel);

            if (success == true)
            {
                return(RedirectToAction(nameof(LeaveApply), new { isUpdate = true, leaveId = leaveApplyModel.LeaveApplyId }));
            }

            return(View());
        }