示例#1
0
        public void AddAsync_EntityDoesNotAlreadyExist_ReturnsEntity()
        {
            var firstEntity = new Patient
            {
                Id = 1,
            };

            var secondEntity = new Patient
            {
                Id = 2,
            };

            var data = new List <Patient>
            {
                firstEntity
            };

            var mockSet       = data.AsQueryable().BuildMockDbSet();
            var mockDbContext = Substitute.For <IDatabaseContext>();

            mockDbContext.Set <Patient>().Returns(mockSet);
            var mockLogger = Substitute.For <ILogger <PatientDal> >();
            var dal        = new PatientDal(mockDbContext, mockLogger);

            var result = Task.Run(async() => await dal.AddAsync(secondEntity)).GetAwaiter().GetResult();

            Assert.That(result, Is.EqualTo(secondEntity));
        }
        public IActionResult Get(string patientName)
        {
            PatientDal          dal    = new PatientDal();
            List <PatientModel> search = (from temp in dal.PatientModels where temp.name == patientName select temp)
                                         .ToList <PatientModel>();

            return(Ok(search));
        }
        public IActionResult Get()
        {
            // add more  var constr2 = configuration.GetConnectionString("ConString2");
            PatientDal          dal  = new PatientDal(constr);
            List <PatientModel> recs = dal.PatientModels.ToList <PatientModel>();

            return(Ok(recs));
        }
示例#4
0
        public void AddAsync_NullEntity_ThrowsArgumentNullException()
        {
            var mockDbContext = Substitute.For <IDatabaseContext>();
            var mockLogger    = Substitute.For <ILogger <PatientDal> >();
            var dal           = new PatientDal(mockDbContext, mockLogger);
            var e             = Assert.Throws <ArgumentNullException>(() => dal.AddAsync(null).GetAwaiter().GetResult());

            Assert.That(e.Message, Does.Contain("newPatientDetails"));
        }
示例#5
0
        public void Filter_PredicateIsNull_ThrowsArgumentNullException()
        {
            var mockDbContext = Substitute.For <IDatabaseContext>();
            var mockLogger    = Substitute.For <ILogger <PatientDal> >();
            var dal           = new PatientDal(mockDbContext, mockLogger);

            var e = Assert.Throws <ArgumentNullException>(() => dal.Filter(null));

            Assert.That(e.Message, Does.Contain("predicate"));
        }
        public IActionResult Post(PatientModel obj)
        {
            // add more  var constr2 = configuration.GetConnectionString("ConString2");
            PatientDal dal = new PatientDal(constr);

            dal.Database.EnsureCreated(); // creates TblPatient
            dal.Add(obj);                 // first saves in memory
            dal.SaveChanges();            //then saves physically in sql
            List <PatientModel> recs = dal.PatientModels.ToList <PatientModel>();

            return(Ok(recs));
        }
示例#7
0
        private void SendNewPass(User user)
        {
            Patient pat     = new PatientDal().Patients.FirstOrDefault <Patient>(x => x.UserName == user.UserName);
            string  email   = pat.PatientEmail;
            Random  rnd     = new Random();
            int     randNum = rnd.Next(10000, 100000);
            string  body    = "Temporary password is: " + randNum.ToString() + " ." + "\nPlease change your password as soon as possible.";
            string  topic   = "Password Reset for Medical-Calendar";

            SendMail(body, topic, email);
            user.Password = des.Encrypt(randNum.ToString(), "Galit@19");
        }
示例#8
0
        public void AddListMedicines(List <MedicineTimes> medicines, Prescription prescription)
        {
            //Patient patient = new Patient();
            //patient = dal.GetPatient(prescription);
            PatientDal patientDal = new PatientDal();

            patientDal.AddMedicines(medicines, prescription);
            //foreach (var item in prescription.Medicines)
            //{
            //    patient.Medicines.Add(item);
            //}
        }
        public IActionResult Delete(string patientName)
        {
            PatientDal dal    = new PatientDal(constr);
            var        search = (from temp in dal.PatientModels
                                 where temp.patientName == patientName
                                 select temp)
                                .FirstOrDefault();


            dal.PatientModels.Remove(search);
            dal.SaveChanges();
            return(Ok(1));
        }
        public ActionResult GetYourAppointmentssByJson()
        {
            if (!Authorize())
            {
                return(RedirectToAction("RedirectByUser", "Home"));
            }
            User               currentUser    = (User)Session["CurrentUser"];
            AppointmentDal     appDal         = new AppointmentDal();
            PatientDal         pdal           = new PatientDal();
            Patient            currentPatient = pdal.Patients.FirstOrDefault <Patient>(x => x.UserName == currentUser.UserName);
            List <Appointment> appointments   = (from app in appDal.Appointments
                                                 where app.PatientUserName == currentPatient.UserName && DateTime.Compare(DateTime.Now, app.Date) < 0
                                                 select app).ToList <Appointment>();

            Thread.Sleep(1000);
            return(Json(appointments, JsonRequestBehavior.AllowGet));
        }
        public ActionResult ChooseAppointment(string DoctorName, DateTime date)
        {
            if (!Authorize())
            {
                return(RedirectToAction("RedirectByUser", "Home"));
            }
            Appointment chosen = new Appointment {
                DoctorName = DoctorName, Date = date
            };
            PatientDal     pdal           = new PatientDal();
            User           currentUser    = (User)Session["CurrentUser"];
            Patient        currentPatient = pdal.Patients.FirstOrDefault <Patient>(x => x.UserName == currentUser.UserName);
            AppointmentDal appDal         = new AppointmentDal();
            Appointment    update         = appDal.Appointments.FirstOrDefault <Appointment>(x => x.Date == chosen.Date && x.DoctorName == chosen.DoctorName);

            update.PatientUserName = currentPatient.UserName;
            appDal.SaveChanges();
            return(View("PatientPage"));
        }
示例#12
0
        public ActionResult RegisterCon(VMUserRegister usr)
        {
            string encryptedAnswer = AES.Encrypt(usr.NewUser.SecurityAnswer);

            if (Session["CurrentUser"] != null)
            {
                return(RedirectToAction("RedirectByUser"));
            }

            usr.NewUser.UserName = des.Encrypt(usr.UserName, "Galit@19");
            usr.NewUser.Password = des.Encrypt(usr.Password, "Galit@19");

            ModelState.Clear();
            TryValidateModel(usr);

            if (ModelState.IsValid)
            {
                UserDal    usrDal        = new UserDal();
                PatientDal ptntDal       = new PatientDal();
                string     encryptedUser = des.Encrypt(usr.UserName, "Galit@19");
                User       objUser       = usrDal.Users.FirstOrDefault <User>(x => x.UserName == encryptedUser);
                if (objUser != null)
                {
                    ViewBag.errorUserRegister = "The user name is already exist";
                    return(View("SignupPage", usr));
                }

                usr.NewUser.SecurityAnswer   = encryptedAnswer;
                usr.NewUser.SecurityQuestion = Request.Form["sq"];
                usr.PatientDetails.UserName  = des.Encrypt(usr.UserName, "Galit@19");
                usrDal.Users.Add(usr.NewUser);
                ptntDal.Patients.Add(usr.PatientDetails);
                ptntDal.SaveChanges();
                usrDal.SaveChanges();
                ViewBag.registerSuccessMsg = "Your registration has been succeeded!";
                return(View("HomePage", usr.NewUser));
            }
            else
            {
                usr.Password = "";
                return(View("SignupPage", usr));
            }
        }
示例#13
0
        public ActionResult Login(UserLogin usr)
        {
            if (Session["CurrentUser"] != null)
            {
                return(RedirectToAction("RedirectByUser"));
            }
            if (ModelState.IsValid)
            {
                UserDal usrDal        = new UserDal();
                string  encryptedUser = des.Encrypt(usr.UserName, "Galit@19");
                User    objUser       = usrDal.Users.FirstOrDefault <User>(x => x.UserName == encryptedUser);
                if (objUser == null || des.Decrypt(objUser.Password, "Galit@19") != usr.Password)
                {
                    ViewBag.errorUserLogin = "******";
                    return(View("LoginPage", usr));
                }
                Patient pat = new PatientDal().Patients.FirstOrDefault <Patient>(x => x.UserName == encryptedUser);
                Session["CurrentUserTemp"] = objUser;
                string email = pat.PatientEmail;

                string chars       = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
                string stringChars = "";
                Random rnd         = new Random();

                for (int i = 0; i < 6; i++)
                {
                    stringChars += chars[rnd.Next(chars.Length)];
                }

                //int randNum = rnd.Next(10000, 100000);
                Session["randNum"] = stringChars;
                string body  = "Authentication number is: " + stringChars.ToString() + " .";
                string topic = "Authentication Code for Medical-Calendar";
                SendMail(body, topic, email);
                return(View("AuthenticationPage"));
                //return RedirectToAction("RedirectByUser");
            }
            else
            {
                usr.Password = "";
                return(View("LoginPage", usr));
            }
        }
示例#14
0
        public IActionResult Post([FromBody] PatientModel obj)
        {
            // Create object of context
            var context = new ValidationContext(obj, null, null);
            // Fill the errors
            var result  = new List <ValidationResult>();
            var isValid = Validator.TryValidateObject(obj, context, result, true);

            if (result.Count == 0)
            {
                PatientDal dal = new PatientDal();
                dal.Database.EnsureCreated();
                dal.Add(obj);
                dal.SaveChanges();
                List <PatientModel> recs = dal.PatientModels.ToList <PatientModel>();
                return(StatusCode(200, recs));             //Json(recs)
            }
            else
            {
                return(StatusCode(500, result));                      //Json(result)
            }
        }
示例#15
0
        public void CheckEntityExistsAsync_EntityFound_ReturnsTrue()
        {
            var entity = new Patient
            {
                Id = 1,
            };

            var data = new List <Patient>
            {
                entity
            };

            var mockSet       = data.AsQueryable().BuildMockDbSet();
            var mockDbContext = Substitute.For <IDatabaseContext>();

            mockDbContext.Set <Patient>().Returns(mockSet);
            var mockLogger = Substitute.For <ILogger <PatientDal> >();
            var dal        = new PatientDal(mockDbContext, mockLogger);

            var result = Task.Run(async() => await dal.CheckEntityExistsAsync(1)).GetAwaiter().GetResult();

            Assert.That(result, Is.True);
        }
示例#16
0
        public void DeleteAsync_IdNotRecognised_ReturnsFalse()
        {
            var firstEntity = new Patient
            {
                Id = 1,
            };

            var data = new List <Patient>
            {
                firstEntity
            };

            var mockSet       = data.AsQueryable().BuildMockDbSet();
            var mockDbContext = Substitute.For <IDatabaseContext>();

            mockDbContext.Set <Patient>().Returns(mockSet);
            var mockLogger = Substitute.For <ILogger <PatientDal> >();
            var dal        = new PatientDal(mockDbContext, mockLogger);

            var result = Task.Run(async() => await dal.DeleteAsync(2)).GetAwaiter().GetResult();

            Assert.That(result, Is.False);
        }
        public IActionResult Post(PatientModel obj)
        {
            var context = new ValidationContext(obj, null, null);
            //fill the errors
            var result  = new List <ValidationResult>();
            var isValid = Validator.TryValidateObject(obj, context, result, true);


            if (result.Count == 0)
            {
                PatientDal dal = new PatientDal();
                dal.Database.EnsureCreated();
                dal.Add(obj);      //Saves in Memory
                dal.SaveChanges(); // Physical Commit in SQL

                List <PatientModel> recs = dal.PatientModels.ToList <PatientModel>();

                return(StatusCode(200, recs)); //200 ( Success )
            }
            else
            {
                return(StatusCode(500, result)); // 500 Internal (Error  )
            }
        }
示例#18
0
        public void AddListMedicines(List <MedicineTimes> medicines, Prescription prescription)
        {
            PatientDal patientDal = new PatientDal();

            patientDal.AddMedicines(medicines, prescription);
        }
 public SecurityController(IConfiguration configuration, PatientDal _pdal)
 {
     constr = configuration["ConnStr"];
     pdal   = _pdal;
 }
 public AdminApiController(IConfiguration configuration, PatientDal _pDal)
 {
     constr = configuration["ConnStr"];
     pDal   = _pDal;
 }
示例#21
0
        public Patient GetPatient(Request request)
        {
            PatientDal patientDal = new PatientDal();

            return(patientDal.GetPatient(request));
        }
示例#22
0
        public override void Initialize()
        {
            var patientDal = new PatientDal(Database.TEST_DB_NAME);

            _patientService = new PatientService(patientDal);
        }
示例#23
0
 public SignupPatientController(IConfiguration configuration, PatientDal _pDal)
 {
     constr = configuration["ConnStr"];
     pDal   = _pDal;
 }