public async Task <IActionResult> Edit(int id, [Bind("DoctorId,AvailableTime,AvailabilityId")] DoctorAvailability doctorAvailability) { if (id != doctorAvailability.AvailabilityId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(doctorAvailability); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!DoctorAvailabilityExists(doctorAvailability.AvailabilityId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["DoctorId"] = new SelectList(_context.Doctor, "DoctorId", "DoctorEmail", doctorAvailability.DoctorId); return(View(doctorAvailability)); }
/// <summary> /// Checks doctor availability /// </summary> /// <param name="doctorAvailability"></param> /// <returns></returns> public bool MarkAvailability(List <DoctorAvailability> doctorAvailability) { using (DbContextTransaction dbTransaction = db.Database.BeginTransaction()) { try { foreach (var item in doctorAvailability) { DoctorAvailability availability = db.DoctorAvailability.SingleOrDefault(t => t.Date == item.Date && t.UserId == item.UserId); if (availability != null) { availability.FromTime = item.FromTime; availability.ToTime = item.ToTime; } else { db.DoctorAvailability.Add(item); } db.SaveChanges(); } dbTransaction.Commit(); return(true); } catch (Exception e) { var ravenClient = new RavenClient("https://[email protected]/1820886"); ravenClient.Capture(new SentryEvent(e)); dbTransaction.Rollback(); return(false); } } }
public ActionResult DeleteConfirmed(int id) { DoctorAvailability doctorAvailability = db.DoctorAvailabilities.Find(id); db.DoctorAvailabilities.Remove(doctorAvailability); db.SaveChanges(); return(RedirectToAction("Index")); }
public string getDrAvailableTime(string username, string appointmentDate) { List <DoctorAvailability> availability = db.doctorAvailability.Where(co => co.username == username).ToList(); if (availability == null) { return(""); } List <Appointment> appointments = db.appointment.Where(ap => ap.drName == username && ap.appointmentDate == appointmentDate).ToList(); DoctorAvailability doctorAvailability = null; var jsonString = ""; if (availability != null && availability.Count() > 0) { doctorAvailability = availability.First(); int startTime = doctorAvailability.startTime; int endTime = doctorAvailability.endTime; string drName = doctorAvailability.username; bool isBooked = false; AvailabilityDAL availabilityDAL = new AvailabilityDAL(); List <AvailabilityDAL> availabilityDALs = new List <AvailabilityDAL>(); if (startTime < endTime) { for (int i = startTime; i <= endTime; i++) { isBooked = isBookedAppointment(appointments, i); availabilityDAL = new AvailabilityDAL(i, drName, isBooked); availabilityDALs.Add(availabilityDAL); } } else { for (int i = startTime; i < 24; i++) { isBooked = isBookedAppointment(appointments, i); availabilityDAL = new AvailabilityDAL(i, drName, isBooked); availabilityDALs.Add(availabilityDAL); } for (int i = 0; i <= endTime; i++) { isBooked = isBookedAppointment(appointments, i); availabilityDAL = new AvailabilityDAL(i, drName, isBooked); availabilityDALs.Add(availabilityDAL); } } jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(availabilityDALs); } return(jsonString); }
public ActionResult Edit([Bind(Include = "Id,dr_id,avail_date,time,status")] DoctorAvailability doctorAvailability) { if (ModelState.IsValid) { db.Entry(doctorAvailability).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.dr_id = new SelectList(db.doctors, "Id", "Name", doctorAvailability.dr_id); return(View(doctorAvailability)); }
public async Task <IActionResult> Create([Bind("DoctorId,AvailableTime,AvailabilityId")] DoctorAvailability doctorAvailability) { if (ModelState.IsValid) { _context.Add(doctorAvailability); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["DoctorId"] = new SelectList(_context.Doctor, "DoctorId", "DoctorEmail", doctorAvailability.DoctorId); return(View(doctorAvailability)); }
public ActionResult Create([Bind(Include = "Id,dr_id,avail_date,time,status")] DoctorAvailability doctorAvailability) { if (ModelState.IsValid) { db.DoctorAvailabilities.Add(doctorAvailability); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.dr_id = new SelectList(db.doctors, "Id", "Name", doctorAvailability.dr_id); return(View(doctorAvailability)); }
public bool AddDoctorAvailability(DoctorAvailability doctorAvailability) { try { db.DoctorAvailability.Add(doctorAvailability); db.SaveChanges(); return(true); } catch (Exception) { return(false); } }
public ActionResult AddDoctor(DoctorRegisterViewModel model, string returnUrl) { if (Session["userId"] == null) { return(Redirect("~")); } Users user = new Users(); user.RoleId = Convert.ToInt32(Roles.Doctor); AutoMapper.Mapper.Map(model, user); user.CreatedBy = (int)Session["userId"]; DoctorAvailability availability = new DoctorAvailability(); DoctorFee doctorFee = new DoctorFee(); doctorFee.Fee = model.Fee; List <DoctorSpecialization> doctorSpecialization = new List <DoctorSpecialization>(); foreach (var item in model.Specializations) { DoctorSpecialization DoctorSpecialization = new DoctorSpecialization(); DoctorSpecialization.SpecializationId = (int)item; doctorSpecialization.Add(DoctorSpecialization); } try { if (new Accounts().AddUser(user, availability, doctorSpecialization, doctorFee)) { return(Redirect("~/Admin/Doctors")); } else { return(RedirectToAction("~/Admin/Doctors/Add")); } } catch (EmailAlreadyExistsEx ex) { ModelState.AddModelError("", ex.Message); return(View(model)); } catch (PhoneAlreadyExistsEx ex) { ModelState.AddModelError("", ex.Message); return(View(model)); } catch (Exception ex) { ModelState.AddModelError("", "Unable to add doctor"); return(View(model)); } }
public AppointmentTime PreviousToScheduleTime = null; // = new AppointmentTime(); public void ToAvailabilityList() { DoctorAvailability doctorAvailability; for (int i = 0; i < Availability.Length; i += 3) { doctorAvailability = new DoctorAvailability(); doctorAvailability.Date = DateTime.Parse(Availability[i]); doctorAvailability.FromTime = byte.Parse(Availability[i + 1]); doctorAvailability.ToTime = byte.Parse(Availability[i + 2]); doctorAvailability.UserId = DoctorId; AvailabilityList.Add(doctorAvailability); } }
// GET: DoctorAvailabilities/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } DoctorAvailability doctorAvailability = db.DoctorAvailabilities.Find(id); if (doctorAvailability == null) { return(HttpNotFound()); } return(View(doctorAvailability)); }
// GET: DoctorAvailabilities/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } DoctorAvailability doctorAvailability = db.DoctorAvailabilities.Find(id); if (doctorAvailability == null) { return(HttpNotFound()); } ViewBag.dr_id = new SelectList(db.doctors, "Id", "Name", doctorAvailability.dr_id); return(View(doctorAvailability)); }
public String setDoctorTiming(int startTime, int endTime) { string username = Request.Cookies["username"].Value; DoctorAvailability doctorAvailability = new DoctorAvailability(username, startTime, endTime); try { db.doctorAvailability.AddOrUpdate(doctorAvailability); db.SaveChanges(); return("Successfuly Updated!"); } catch (Exception ex) { return("This username already exists"); } }
public ActionResult Create([Bind(Include = "Id,dr_id,First_Name,Last_Name,Email_id,contact_no,avail_id,Date ")] book_an_appointment book_an_appointment) { if (ModelState.IsValid) { db.book_an_appointment.Add(book_an_appointment); db.SaveChanges(); DoctorAvailability doctorAvailability = db.DoctorAvailabilities.Find(book_an_appointment.avail_id); doctorAvailability.status = "Book"; db.Entry(doctorAvailability).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("SuccessMessage")); } ViewBag.dr_id = new SelectList(db.doctors, "Id", "Name", book_an_appointment.dr_id); ViewBag.avail_id = new SelectList(db.DoctorAvailabilities, "Id", "time", book_an_appointment.avail_id); return(View(book_an_appointment)); }
public AppointmentTime GetExistingToSchedule(int doctorId, DateTime date) { try { DoctorAvailability schedule = db.DoctorAvailability.SingleOrDefault(t => t.UserId == doctorId && t.Date == date.Date); var timeSlots = db.AppointmentTime.ToList(); foreach (var item in timeSlots) { if ((int)item.Id == (int)schedule.ToTime) { return(item); } } return(null); } catch (Exception e) { var ravenClient = new RavenClient("https://[email protected]/1820886"); ravenClient.Capture(new SentryEvent(e)); return(null); } }
public async Task <IActionResult> DeleteConfirmed(int id) { var appointment = await _context.Appointment.FindAsync(id); var appointment1 = from p in _context.Appointment where p.ApptId == id select p; var apptid = appointment1.ToList(); var misusecount = from p in _context.MisusedUser where p.UserEmail == User.Identity.Name select p.Misusedcount; int count = misusecount.FirstOrDefault(); //Add the user to misused user database if (User.IsInRole("Patient")) { if (!UserExists(User.Identity.Name)) { var newuser = new MisusedUser { UserEmail = User.Identity.Name, Misusedcount = 0 }; _context.MisusedUser.Add(newuser); await _context.SaveChangesAsync(); } } //Update misuse count or deny permission to cancel appointment based on misuse count. if (User.IsInRole("Patient")) { if (count > 5) { return(View("PermissionDenied")); } else { count += 1; var findemail = await _context.MisusedUser.FindAsync(User.Identity.Name); findemail.Misusedcount = count; await _context.SaveChangesAsync(); } } foreach (var x in apptid) { //Remove from unvailable time var appointment_context = _context.DoctorUnavailability.Where(a => a.Unavailable == x.ApptDate && a.DoctorId == x.DoctorId).FirstOrDefault(); _context.DoctorUnavailability.Remove(appointment_context); await _context.SaveChangesAsync(); //Add to available time var addtime = new DoctorAvailability { DoctorId = x.DoctorId, AvailableTime = x.ApptDate }; _context.DoctorAvailability.Add(addtime); await _context.SaveChangesAsync(); } _context.Appointment.Remove(appointment); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }
public IHttpActionResult TimeDetails(DoctorAvailability time) { string Hospital = time.Hospital; string ID = time.ID; int temp; string fullname; using (SqlConnection conn = new SqlConnection()) { conn.ConnectionString = "Data Source=DESKTOP-3SOIUD0\\SQLEXPRESS;Initial Catalog=Eclinic;Integrated Security=True;"; conn.Open(); string checkuname = "select count(*) from Hospital where NID = '" + ID + "' AND HospitalName ='" + Hospital + "'"; SqlCommand com = new SqlCommand(checkuname, conn); temp = Convert.ToInt32(com.ExecuteScalar().ToString()); conn.Close(); conn.Open(); string query1 = "select FName from NormalUser where NID = '" + ID + "'"; SqlCommand Fname = new SqlCommand(query1, conn); string frist = Fname.ExecuteScalar().ToString().Replace(" ", ""); conn.Close(); conn.Open(); string query2 = "select LName from NormalUser where NID = '" + ID + "'"; SqlCommand Lname = new SqlCommand(query2, conn); string Last = Lname.ExecuteScalar().ToString().Replace(" ", ""); conn.Close(); fullname = string.Concat("Dr", " ", frist, " ", Last); } if (temp == 0) { string query = "EXEC Add_DeatailsToHospital '" + ID + "','" + Hospital + "'"; int r = connectionProvider.CreateSomething(query); } DateTime Sday = Convert.ToDateTime(time.Sday); DateTime Eday = Convert.ToDateTime(time.Eday); string Mon = time.Mon; DateTime MStime = Convert.ToDateTime(time.MStime); DateTime MEtime = Convert.ToDateTime(time.MEtime); string Tue = time.Tue; DateTime TStime = Convert.ToDateTime(time.TStime); DateTime TEtime = Convert.ToDateTime(time.TEtime); string Wed = time.Wed; DateTime WStime = Convert.ToDateTime(time.WStime); DateTime WEtime = Convert.ToDateTime(time.WEtime); string Thu = time.Thu; DateTime THStime = Convert.ToDateTime(time.THStime); DateTime THEtime = Convert.ToDateTime(time.THEtime); string Fri = time.Fri; DateTime FStime = Convert.ToDateTime(time.FStime); DateTime FEtime = Convert.ToDateTime(time.FEtime); string Sat = time.Sat; DateTime SAStime = Convert.ToDateTime(time.SAStime); DateTime SAEtime = Convert.ToDateTime(time.SAEtime); string Sun = time.Sun; DateTime SUStime = Convert.ToDateTime(time.SUStime); DateTime SUEtime = Convert.ToDateTime(time.SUEtime); int dayvalue; string rangebegin; string rangeend; string rangerbegin1; string a = " to "; for (DateTime d = Sday; d <= Eday; d = d.AddDays(1)) { DateTime date = d.Date; dayvalue = ((int)d.DayOfWeek); switch (dayvalue) { case 1: for (DateTime t = MStime; t < MEtime;) { rangebegin = Convert.ToString(t.TimeOfDay); t = t.AddMinutes(30); rangeend = Convert.ToString(t.TimeOfDay); rangerbegin1 = string.Concat(rangebegin, a); string TimeSlot = string.Concat(rangerbegin1, rangeend); string query2 = "EXEC Add_Available'" + fullname + "','" + date + "','" + TimeSlot + "','" + Hospital + "'"; int r = connectionProvider.CreateSomething(query2); } break; case 2: for (DateTime t = TStime; t < TEtime;) { rangebegin = Convert.ToString(t.TimeOfDay); t = t.AddMinutes(30); rangeend = Convert.ToString(t.TimeOfDay); rangerbegin1 = string.Concat(rangebegin, a); string TimeSlot = string.Concat(rangerbegin1, rangeend); string query2 = "EXEC Add_Available'" + fullname + "','" + date + "','" + TimeSlot + "','" + Hospital + "'"; int r = connectionProvider.CreateSomething(query2); } break; case 3: for (DateTime t = WStime; t < WEtime;) { rangebegin = Convert.ToString(t.TimeOfDay); t = t.AddMinutes(30); rangeend = Convert.ToString(t.TimeOfDay); rangerbegin1 = string.Concat(rangebegin, a); string TimeSlot = string.Concat(rangerbegin1, rangeend); string query2 = "EXEC Add_Available'" + fullname + "','" + date + "','" + TimeSlot + "','" + Hospital + "'"; int r = connectionProvider.CreateSomething(query2); } break; case 4: for (DateTime t = THStime; t < THEtime;) { rangebegin = Convert.ToString(t.TimeOfDay); t = t.AddMinutes(30); rangeend = Convert.ToString(t.TimeOfDay); rangerbegin1 = string.Concat(rangebegin, a); string TimeSlot = string.Concat(rangerbegin1, rangeend); string query2 = "EXEC Add_Available'" + fullname + "','" + date + "','" + TimeSlot + "','" + Hospital + "'"; int r = connectionProvider.CreateSomething(query2); } break; case 5: for (DateTime t = FStime; t < FEtime;) { rangebegin = Convert.ToString(t.TimeOfDay); t = t.AddMinutes(30); rangeend = Convert.ToString(t.TimeOfDay); rangerbegin1 = string.Concat(rangebegin, a); string TimeSlot = string.Concat(rangerbegin1, rangeend); string query2 = "EXEC Add_Available'" + fullname + "','" + date + "','" + TimeSlot + "','" + Hospital + "'"; int r = connectionProvider.CreateSomething(query2); } break; case 6: for (DateTime t = SAStime; t < SAEtime;) { rangebegin = Convert.ToString(t.TimeOfDay); t = t.AddMinutes(30); rangeend = Convert.ToString(t.TimeOfDay); rangerbegin1 = string.Concat(rangebegin, a); string TimeSlot = string.Concat(rangerbegin1, rangeend); string query2 = "EXEC Add_Available'" + fullname + "','" + date + "','" + TimeSlot + "','" + Hospital + "'"; int r = connectionProvider.CreateSomething(query2); } break; case 0: for (DateTime t = SUStime; t < SUEtime;) { rangebegin = Convert.ToString(t.TimeOfDay); t = t.AddMinutes(30); rangeend = Convert.ToString(t.TimeOfDay); rangerbegin1 = string.Concat(rangebegin, a); string TimeSlot = string.Concat(rangerbegin1, rangeend); string query2 = "EXEC Add_Available'" + fullname + "','" + date + "','" + TimeSlot + "','" + Hospital + "'"; int r = connectionProvider.CreateSomething(query2); } break; } } return(Ok()); }