// GET: EmployeeSIs/Edit/5
        public ActionResult MidLevelEdit(int?id)
        {
            List <BankTypeMaster> BankTypelist = new List <BankTypeMaster>();

            BankTypelist     = (from a in db.BankTypeMasters select a).ToList();
            ViewBag.BankType = new SelectList(BankTypelist, " BankTypeId", "BankTypeName");

            ///////////////////Bank list
            List <BankMaster> Banklist = new List <BankMaster>();

            Banklist = (from a in db.BankMasters select a).ToList();
            //ViewBag.CountryList = CountryList;
            ViewBag.NameOfBanks = new SelectList(Banklist, " BankId", "BankName");
            //////////////////
            ///////////////////Bank list
            List <PFAMaster> PFAlist = new List <PFAMaster>();

            PFAlist = (from a in db.PFAMasters select a).ToList();
            //ViewBag.CountryList = CountryList;
            ViewBag.PFA = new SelectList(PFAlist, " PFAId", "PFAName");
            //////////////////
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            EmployeeSI employeeSI = db.EmployeeSIs.Find(id);

            if (employeeSI == null)
            {
                return(HttpNotFound());
            }
            ViewBag.EmployeeCode = new SelectList(db.EmployeeGIs, "EmployeeCode", "EmployeeCode", employeeSI.EmployeeCode);
            return(View(employeeSI));
        }
        public ActionResult Create([Bind(Include = "CustomerId,EmployeeSIId,EmployeeCode,CurrentPosting,BankType,NameOfBanks,BankBranch,AccountType,AccountNumber,AccountName,PFA,RSAPinNo,SalaryScale,CreatedDate,IsDeleted")] EmployeeSI employeeSI)
        {
            var isAlready = (from a in db.EmployeeSIs where a.EmployeeCode == employeeSI.EmployeeCode select a.EmployeeCode).Count();

            if (isAlready == 0)
            {
                try
                {
                    if (ModelState.IsValid)
                    {
                        int empidcount = (from a in db.EmployeeSIs where a.EmployeeCode == employeeSI.EmployeeCode select a).Count();
                        if (empidcount == 0)
                        {
                            employeeSI.CreatedDate = DateTime.Now.Date;
                            db.EmployeeSIs.Add(employeeSI);
                            db.SaveChanges();
                            TempData["successmsg"] = "Record is Successfully Added";
                            TempData["msg"]        = "";
                            int empcode = Convert.ToInt32(@Session["employeecode"]);

                            DateTime dttoday  = DateTime.Now.Date;
                            var      Role     = (from a in db.UserMasters where a.EmployeeCode == empcode select a.RoleId).FirstOrDefault();
                            var      RoleName = (from b in db.RoleMasters where b.RoleId == Role select b.RoleName).FirstOrDefault();
                            if (RoleName == "Admin" || RoleName == "Super Admin")
                            {
                                return(RedirectToAction("Index"));
                            }
                            else if (RoleName == "Mid Level Admin")
                            {
                                return(RedirectToAction("MidLevelIndex"));
                            }
                            else if (RoleName == "Low Level Admin")
                            {
                                return(RedirectToAction("MidLevelIndex"));
                            }
                            else
                            {
                                return(RedirectToAction("UserIndex"));
                            }
                        }
                    }
                }
                catch (Exception ext)
                {
                    TempData["successmsg"] = "";
                    TempData["msg"]        = "Record is not Added,try again";
                }


                ViewBag.EmployeeCode = new SelectList(db.EmployeeGIs, "EmployeeCode", "EmployeeCode", employeeSI.EmployeeCode);
                return(View(employeeSI));
            }
            else
            {
                TempData["successmsg"] = "";
                TempData["msg"]        = "This Record is Already Exist";
                return(View(employeeSI));
            }
        }
        // GET: EmployeeSIs/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            EmployeeSI employeeSI = db.EmployeeSIs.Find(id);

            if (employeeSI == null)
            {
                return(HttpNotFound());
            }
            return(View(employeeSI));
        }
        public ActionResult MidLevelEdit([Bind(Include = "CustomerId,EmployeeSIId,EmployeeCode,CurrentPosting,BankType,NameOfBanks,BankBranch,AccountType,AccountNumber,AccountName,PFA,RSAPinNo,SalaryScale,CreatedDate,IsDeleted")] EmployeeSI employeeSI)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    employeeSI.EmployeeSIId = (from a in db.EmployeeSIs where a.EmployeeCode == employeeSI.EmployeeCode select a.EmployeeSIId).FirstOrDefault();
                    employeeSI.CreatedDate  = DateTime.Now;
                    employeeSI.IsDeleted    = false;

                    db.Entry(employeeSI).State = EntityState.Modified;
                    db.SaveChanges();
                    TempData["successmsg"] = "Record is Successfully Updated";
                    TempData["msg"]        = "";

                    int empcode = Convert.ToInt32(@Session["employeecode"]);

                    DateTime dttoday  = DateTime.Now.Date;
                    var      Role     = (from a in db.UserMasters where a.EmployeeCode == empcode select a.RoleId).FirstOrDefault();
                    var      RoleName = (from b in db.RoleMasters where b.RoleId == Role select b.RoleName).FirstOrDefault();
                    return(RedirectToAction("MidLevelIndex"));
                    //if (RoleName == "Admin" || RoleName == "Super Admin")
                    //{
                    //    return RedirectToAction("Index");
                    //}
                    //else if (RoleName == "Mid Level Admin")
                    //{
                    //    return RedirectToAction("MidLevelIndex");
                    //}
                    //else if (RoleName == "Low Level Admin")
                    //{
                    //    return RedirectToAction("MidLevelIndex");
                    //}
                    //else
                    //{
                    //    return RedirectToAction("UserIndex");
                    //}
                }
            }
            catch (Exception ext)
            {
                TempData["successmsg"] = "";
                TempData["msg"]        = "Record is not Updated";
            }
            ViewBag.EmployeeCode = new SelectList(db.EmployeeGIs, "EmployeeCode", "EmployeeCode", employeeSI.EmployeeCode);
            return(View(employeeSI));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            try
            {
                EmployeeSI employeeSI = db.EmployeeSIs.Find(id);
                db.EmployeeSIs.Remove(employeeSI);
                db.SaveChanges();
                TempData["successmsg"] = "Record is Successfully Deleted";
                return(RedirectToAction("Index"));
            }

            catch (Exception ext)
            {
                TempData["successmsg"] = "Record is not Deleted,try again";
                return(RedirectToAction("Index"));
            }
        }