public void Delete_HappyPath() { // obtains a valid patient Firestarter.CreateFakePatients(this.db.Doctors.First(), this.db, 1); this.db.SaveChanges(); var patientId = this.db.Patients.First().Id; var formModel = new DiagnosisViewModel { PatientId = patientId, Text = "This is my diagnosis", Cid10Code = "Q878", Cid10Name = "Doença X" }; var mr = new MockRepository(true); var controller = mr.CreateController<DiagnosisController>(); controller.Create(new[] { formModel }); Assert.IsTrue(controller.ModelState.IsValid); // get's the newly created diagnosis var newlyCreatedDiagnosis = this.db.Diagnoses.First(); // tries to delete the anamnese var result = controller.Delete(newlyCreatedDiagnosis.Id); var deleteMessage = (JsonDeleteMessage)result.Data; Assert.AreEqual(true, deleteMessage.success); Assert.AreEqual(0, this.db.Anamnese.Count()); }
public ActionResult Create(DiagnosisViewModel[] diagnoses) { return this.Edit(diagnoses); }
public ActionResult Edit(DiagnosisViewModel[] diagnoses) { var formModel = diagnoses.Single(); if (string.IsNullOrEmpty(formModel.Text) && string.IsNullOrEmpty(formModel.Cid10Name)) this.ModelState.AddModelError("", "É necessário preencher um diagnóstico CID-10 ou as notas"); if (this.ModelState.IsValid) { Diagnosis dbObject; if (formModel.Id == null) { Debug.Assert(formModel.PatientId != null, "formModel.PatientId != null"); dbObject = new Diagnosis() { CreatedOn = this.GetUtcNow(), PatientId = formModel.PatientId.Value, PracticeId = this.DbUser.PracticeId, }; this.db.Diagnoses.AddObject(dbObject); } else dbObject = this.db.Diagnoses.First(a => a.Id == formModel.Id); dbObject.Patient.IsBackedUp = false; dbObject.Observations = formModel.Text; dbObject.Cid10Code = formModel.Cid10Code; dbObject.Cid10Name = formModel.Cid10Name; dbObject.MedicalRecordDate = this.ConvertToUtcDateTime(formModel.MedicalRecordDate.Value); this.db.SaveChanges(); // todo: this shoud be a redirect... so that if user press F5 in browser, the object will no be saved again. return this.View("Details", GetViewModel(dbObject, this.GetToLocalDateTimeConverter())); } return this.View("Edit", formModel); }
public ActionResult Edit(int? id, int? patientId, int? y, int? m, int? d) { DiagnosisViewModel viewModel = null; if (id != null) viewModel = GetViewModel( (from a in this.db.Diagnoses where a.Id == id select a).First(), this.GetToLocalDateTimeConverter()); else viewModel = new DiagnosisViewModel() { Id = null, PatientId = patientId, MedicalRecordDate = DateTimeHelper.CreateDate(y, m, d) ?? this.GetPracticeLocalNow(), }; return this.View("Edit", viewModel); }
public void Edit_HappyPath() { // obtains a valid patient Firestarter.CreateFakePatients(this.db.Doctors.First(), this.db, 1); this.db.SaveChanges(); var patientId = this.db.Patients.First().Id; var formModel = new DiagnosisViewModel { PatientId = patientId, Cid10Code = "CodeX", Cid10Name = "XDesease", Text = "Notes" }; var mr = new MockRepository(true); var controller = mr.CreateController<DiagnosisController>(); var referenceTime = DateTime.UtcNow; controller.UtcNowGetter = () => referenceTime; controller.Edit(new[] { formModel }); Assert.IsTrue(controller.ModelState.IsValid); var diagnosis = this.db.Diagnoses.First(); Assert.AreEqual(0, (referenceTime.Ticks - diagnosis.CreatedOn.Ticks) / 100000); Assert.AreEqual(patientId, diagnosis.PatientId); Assert.AreEqual(formModel.Text, diagnosis.Observations); Assert.AreEqual(formModel.Cid10Code, diagnosis.Cid10Code); Assert.AreEqual(formModel.Cid10Name, diagnosis.Cid10Name); }
public void Edit_WhenBothCid10AndNotesAreEmpty() { // obtains a valid patient Firestarter.CreateFakePatients(this.db.Doctors.First(), this.db, 1); this.db.SaveChanges(); var patientId = this.db.Patients.First().Id; var formModel = new DiagnosisViewModel { PatientId = patientId, }; var mr = new MockRepository(true); var controller = mr.CreateController<DiagnosisController>(); controller.Edit(new[] { formModel }); Assert.IsFalse(controller.ModelState.IsValid); }