//
  // GET: /Opd/
 
  public ActionResult Opd()
  {
      
      HospitalAppEntities2 db = new HospitalAppEntities2();
      List<Patient_Basic_Info> PBI = db.Patient_Basic_Info.ToList();
      return View(PBI);
  }
 //Detail VIew for Rescipt called from OPD View just Searches on non PK
 public ActionResult Basic_Rescipt_Detail(int id)
 {
     HospitalAppEntities2 db = new HospitalAppEntities2();
     Rescipt_info user = db.Rescipt_info.FirstOrDefault(o => o.patient_id == id);
     if (user == null)
     {
         return RedirectToAction("Empty", "Opd", new { id = id});
     }
     else
         return View(user);
 }
 public ActionResult User_Create(appUser AU)
 {
     HospitalAppEntities2 db = new HospitalAppEntities2();
     if(ModelState.IsValid)
     {
         db.appUsers.Add(AU);
         db.SaveChanges();
         return RedirectToAction("adminView");
     }
     return View();
 }
        public ActionResult Edit(Patient_Basic_Info PBI)
        {
            if(ModelState.IsValid)
            {
                HospitalAppEntities2 db = new HospitalAppEntities2();
                db.Entry(PBI).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("OpdView", "Opd");
            }

            return View(PBI);
        }
 //Detail View for Rescipt if called from anywhere in the project searches through PK
 public ActionResult Patient_Rescipt_Detail(int id)
 {
     HospitalAppEntities2 db = new HospitalAppEntities2();
     Rescipt_info RI = db.Rescipt_info.Find(id);
     return View(RI);
 }
 public ActionResult Edit(int id)
 {
     HospitalAppEntities2 db = new HospitalAppEntities2();
     Patient_Basic_Info PBI = db.Patient_Basic_Info.Find(id);
     return View(PBI);
 }
 public ActionResult ResidentialView()
 {
     HospitalAppEntities2 db = new HospitalAppEntities2();
     List<Residential_info> RI = db.Residential_info.ToList();
     return View(RI);
 }
        public ActionResult Patient_Basic_Create(Patient_Basic_Info PBI)
        {
            if(ModelState.IsValid)
            {
                HospitalAppEntities2 db = new HospitalAppEntities2();
                db.Patient_Basic_Info.Add(PBI);
                db.SaveChanges();
               // Patient_Basic_Info = PBI;
                //MIP.patientBasicInfo = PBI;
                return RedirectToAction("Patient_Resident_Create", "Opd");

            }
            return View();
        }
        public bool LoginMe(string userName,string password)
        {
            HospitalAppEntities2 db = new HospitalAppEntities2();
            using (SqlConnection conn = new SqlConnection())
            {
                
                conn.ConnectionString = "data source=.;initial catalog=HospitalApp;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;";
                conn.Open();
                SqlCommand command = new SqlCommand(String.Format("SELECT Name, userPassword,roleID FROM appUser WHERE Name ='{0}'", userName, conn));
                command.Connection = conn;
                SqlDataReader reader = command.ExecuteReader();
                if (reader.Read())
                {
                    if (reader.GetValue(0).ToString() == userName && reader.GetValue(1).ToString() == password)
                    {
                        Role=Convert.ToInt32(reader.GetValue(2));
                        return true;
                    }
                }
                else
                {
                    conn.Close();
                    return false;
                }

            }
            return false;
        }
 public ActionResult Patient_Resident_Create(Residential_info RI)
 {
     HospitalAppEntities2 db = new HospitalAppEntities2();
     if (ModelState.IsValid)
     {
         //MIP.residentInfo = RI;
         
         db.Residential_info.Add(RI);
         db.SaveChanges();
         return RedirectToAction("Patient_Rescipt_Create", "Opd");
     }
     return View();
 }
 public ActionResult User_Edit(appUser AU)
 {
     if (ModelState.IsValid)
     {
         HospitalAppEntities2 db = new HospitalAppEntities2();
         db.Entry(AU).State = EntityState.Modified;
         db.SaveChanges();
         return RedirectToAction("adminView", "Account");
     }
     return View();
 }
        public ActionResult User_Edit(int id)
        {
            HospitalAppEntities2 db = new HospitalAppEntities2();
            appUser AU = db.appUsers.Find(id);

            return View(AU);
        }
 public ActionResult role()
 {
     HospitalAppEntities2 db = new HospitalAppEntities2();
     List<Role> role = db.Roles.ToList();
     return View(role);
 }
 public ActionResult adminView()
 {
     HospitalAppEntities2 db = new HospitalAppEntities2();
     List<appUser> users = db.appUsers.ToList();
     return View(users);
 }
 //Detail view for resident id called from anywhere in project searches from PK
 public ActionResult Patient_Resident_Edit(int id)
 {
     HospitalAppEntities2 db = new HospitalAppEntities2();
     Residential_info RI = db.Residential_info.Find(id);
     return View(RI);
 }
 public ActionResult Patient_Rescipt_Create(Rescipt_info RI)
 {
     if(ModelState.IsValid)
     {
         HospitalAppEntities2 db = new HospitalAppEntities2();
         db.Rescipt_info.Add(RI);
        db.SaveChanges();
         //Rescipt_info = RI;
         //MIP.resciptInfo = RI;
         //MIP.DatabasePunching();
         return RedirectToAction("OpdView", "Opd");
     }
     return View();
 }
 public ActionResult Patient_Resident_Edit(Residential_info RI)
 {
     if(ModelState.IsValid)
     {
         HospitalAppEntities2 db = new HospitalAppEntities2();
         db.Entry(RI).State = EntityState.Modified;
         db.SaveChanges();
         return RedirectToAction("OpdView", "Opd");
     }
     return View();
 }
 public ActionResult User_Delete(appUser AU)
 {
     if(ModelState.IsValid)
     {
         HospitalAppEntities2 db = new HospitalAppEntities2();
         appUser AUanother = db.appUsers.Find(AU.userID);
         db.appUsers.Remove(AUanother);
         db.SaveChanges();
         return RedirectToAction("adminView", "Account");
     }
     return View();
 }