//teacher's salary details
        public IActionResult SalaryDetails()
        {
            Int64 Count = 1;
            var   v1    = _context.TeacherSalary.ToList();
            var   v2    = _context.Teacher.ToList();
            var   v3    = _context.TeacherDesignation.ToList();
            var   q     = from vts in v1
                          join vt in v2 on vts.DesigId equals vt.DesigId
                          join vtd in v3 on vts.DesigId equals vtd.DesigId
                          orderby vt.TeacherName ascending
                          select new
            {
                pk     = vts.SerialNo,
                tcrnm  = vt.TeacherName,
                dsgnm  = vtd.DesigName,
                tcrsal = vts.Salary
            };

            var tsvmlist = new List <TeacherSalaryViewModel>();

            foreach (var item in q)
            {
                TeacherSalaryViewModel tsvm = new TeacherSalaryViewModel();
                tsvm.serialnoVM = Count;
                Count++;

                tsvm.salaryVM    = item.tcrsal;
                tsvm.designameVM = item.dsgnm;
                tsvm.tcrnameVM   = item.tcrnm;
                tsvm.PrimaryKey  = item.pk;
                tsvmlist.Add(tsvm);
            }
            return(View(tsvmlist));
        }
        //salary list
        public IActionResult SalaryList(int?page)
        {
            Int64 Count      = 1;
            var   pagenumber = page ?? 1;
            var   v1         = _context.TeacherSalary.ToList();
            var   v2         = _context.TeacherDesignation.ToList();
            var   q          = from vts in v1
                               join vtd in v2 on vts.DesigId equals vtd.DesigId
                               select new
            {
                pk     = vts.SerialNo,
                dsgnm  = vtd.DesigName,
                tcrsal = vts.Salary
            };

            var tsvmlist = new List <TeacherSalaryViewModel>();

            foreach (var item in q)
            {
                TeacherSalaryViewModel tsvm = new TeacherSalaryViewModel();
                tsvm.serialnoVM = Count;
                Count++;

                tsvm.PrimaryKey  = item.pk;
                tsvm.designameVM = item.dsgnm;
                tsvm.salaryVM    = item.tcrsal;
                tsvmlist.Add(tsvm);
            }
            var pg = tsvmlist.ToPagedList(pagenumber, 2);

            return(View(pg));
        }
        public IActionResult SetSalary(TeacherSalaryViewModel tsvm)
        {
            var vss = _context.TeacherDesignation.ToList();

            vss.Insert(0, new TeacherDesignation {
                DesigId = 0, DesigName = "Select a designation"
            });
            ViewBag.ss = vss;
            if (tsvm.desigidVM == 0)
            {
                ViewBag.msg1 = "Please choose a designation";
                return(View());
            }

            var v = _context.TeacherSalary.Where(q => q.DesigId == tsvm.desigidVM).FirstOrDefault();

            if (v != null)
            {
                ViewBag.msg2 = "Salary is already set for this designation";
                return(View());
            }
            TeacherSalary ts = new TeacherSalary();

            ts.SerialNo = 0;
            ts.Salary   = tsvm.salaryVM;
            ts.DesigId  = tsvm.desigidVM;
            _context.TeacherSalary.Add(ts);
            _context.SaveChanges();
            ModelState.Clear();
            return(View());
        }
        //update teacher salary
        public IActionResult UpdateTeacherSalary(Int64 uts)
        {
            //var v = _context.TeacherDesignation.ToList();
            //v.Insert(0, new TeacherDesignation { DesigId = 0, DesigName = "Select a Designation" });
            //ViewBag.td = v;

            var v1 = _context.TeacherSalary.Where(q => q.SerialNo == uts).FirstOrDefault();
            TeacherSalaryViewModel tsvm = new TeacherSalaryViewModel();

            tsvm.PrimaryKey = v1.SerialNo;
            tsvm.desigidVM  = v1.DesigId;

            tsvm.salaryVM = v1.Salary;

            return(View(tsvm));
        }
        public IActionResult UpdateTeacherSalary(TeacherSalaryViewModel updt)
        {
            //var v = _context.TeacherDesignation.ToList();
            //v.Insert(0, new TeacherDesignation { DesigId = 0, DesigName = "Select a Designation" });
            //ViewBag.td = v;
            //if(updt.desigidVM==0)
            //{
            //    ViewBag.msg = "Please Select a Designation";
            //    return View();
            //}

            TeacherSalary ts = new TeacherSalary();

            ts.SerialNo = updt.PrimaryKey;
            ts.DesigId  = updt.desigidVM;
            ts.Salary   = updt.salaryVM;

            _context.TeacherSalary.Update(ts);
            _context.SaveChanges();
            return(RedirectToAction("SalaryList"));
        }