public async Task <JsonResult> AjaxMethod(string name, string leave_id)
        {
            var currentuser   = User.Identity.Name;
            var currentuserId = _context.AllUser.Where(x => x.Email == currentuser).FirstOrDefault().id;



            int leave_id_int = int.Parse(leave_id);
            var leave        = _context.LeaveHistory.Include(x => x.AllUser).Include(x => x.leaveType).Where(x => x.leave_id == leave_id_int).FirstOrDefault();

            leave.RegistrarApproveStatus = name;
            leave.LeaveStatus            = name;
            leave.approved_id            = currentuserId;



            UserEmail userEmail = new UserEmail
            {
                ToEmail = leave.AllUser.Email,
            };
            var arr         = new List <KeyValuePair <string, string> >();
            var leavereason = new KeyValuePair <string, string>("{{leavereason}}", leave.LeaveReason);
            var leavestart  = new KeyValuePair <string, string>("{{leavestart}}", leave.StartFrome.ToString());
            var leaveend    = new KeyValuePair <string, string>("{{leaveend}}", leave.EndTill.ToString());
            var leavetype   = new KeyValuePair <string, string>("{{leavetype}}", leave.leaveType.LeaveType);
            var leavestatus = new KeyValuePair <string, string>("{{leavestatus}}", leave.LeaveStatus);

            //temp.Key = "username";
            //temp.Value = "*****@*****.**";
            arr.Add(leavereason);
            arr.Add(leavestart);
            arr.Add(leaveend);
            arr.Add(leavetype);
            arr.Add(leavestatus);
            userEmail.PlaceHolder = arr;
            await emailService.LeaveStatusChangeEmail(userEmail);

            if (name == "Accepted")
            {
                var allocation = _context.leaveAllocation.Where(x => x.id == leave.id && x.leaveTypeID == leave.leaveTypeID).FirstOrDefault();
                allocation.NoOfLeave -= leave.NoOfDay;
                _context.Update(allocation);
                _context.SaveChanges();
            }
            //try
            //{
            _context.Update(leave);
            await _context.SaveChangesAsync();

            //}
            //catch (Exception e)
            //{
            //    throw;
            //}



            return(Json(leave));
        }
        public bool addtoallocation(string email, string oldvalue, int noofday)
        {
            int sum = 0;
            var z   = _context.leaveAllocation.Include(x => x.leaveType).Include(x => x.AllUser)
                      .Where(x => x.leaveType.LeaveType == oldvalue && x.AllUser.Email == email).FirstOrDefault();

            z.NoOfLeave -= noofday;
            _context.Update(z);
            _context.SaveChanges();
            return(true);
        }