public ActionResult Edit(Guid id) { // TODO: Check for null var visit = this.visitsService.GetById(id); var vm = new VisitDetailsViewModel(visit); return(PartialView("_VisitEditPartial", vm)); }
public void RedirectToIndexWithTempDataMessage_WhenPostedValidViewModel() { // Arrange var visitsServiceMock = new Mock <IVisitsService>(); var municipalitiesServiceMock = new Mock <IMunicipalitiesService>(); var usersServiceMock = new Mock <IUserService>(); var pageServiceMock = new Mock <IPageService <Visit> >(); var controller = new VisitsController(visitsServiceMock.Object, municipalitiesServiceMock.Object, usersServiceMock.Object, pageServiceMock.Object); var visitDetailsModel = new VisitDetailsViewModel(); // Act & Assert controller .WithCallTo(c => c.Add(visitDetailsModel)) .ShouldRedirectTo("Index"); controller.ShouldHaveTempDataProperty("message", "Visit added successfully"); }
public void CallAddOnce_WhenPostedValidViewModel() { // Arrange var visitsServiceMock = new Mock <IVisitsService>(); var municipalitiesServiceMock = new Mock <IMunicipalitiesService>(); var usersServiceMock = new Mock <IUserService>(); var pageServiceMock = new Mock <IPageService <Visit> >(); var controller = new VisitsController(visitsServiceMock.Object, municipalitiesServiceMock.Object, usersServiceMock.Object, pageServiceMock.Object); var visitDetailsModel = new VisitDetailsViewModel(); visitsServiceMock.Setup(vs => vs.Add(It.IsAny <Visit>())); // Act controller.Add(visitDetailsModel); // Assert visitsServiceMock.Verify(vs => vs.Add(It.IsAny <Visit>()), Times.Once()); }
public void RenderVisitDetailsPartialWithInvalidViewModel_WhenPostedInvalidViewModel() { // Arrange var visitsServiceMock = new Mock <IVisitsService>(); var municipalitiesServiceMock = new Mock <IMunicipalitiesService>(); var usersServiceMock = new Mock <IUserService>(); var pageServiceMock = new Mock <IPageService <Visit> >(); var controller = new VisitsController(visitsServiceMock.Object, municipalitiesServiceMock.Object, usersServiceMock.Object, pageServiceMock.Object); controller.ModelState.AddModelError("isValid", "view model not valid"); var visitDetailsModel = new VisitDetailsViewModel(); // Act & Assert controller .WithCallTo(c => c.Add(visitDetailsModel)) .ShouldRenderDefaultView() .WithModel(visitDetailsModel); }
//[ValidateAntiForgeryToken] public ActionResult Add(VisitDetailsViewModel visit) { if (!ModelState.IsValid) { return(View(visit)); } var v = new Visit() { Date = visit.Date, Description = visit.Description, UserName = visit.NurseName }; this.visitsService.Add(v); // TODO: review - add success message, redirect?? TempData["message"] = "Visit added successfully"; return(Redirect("Index")); }
public ActionResult Edit(VisitDetailsViewModel visit) { // if view model not valid if (!ModelState.IsValid) { return(PartialView("_VisitEditPartial", visit)); } // find the visit to edit from database var v = this.visitsService.GetById(visit.Id); // update v.Date = visit.Date; v.Description = visit.Description; this.visitsService.Update(v); // cheat visit.LastModifiedOn = DateTime.Now; return(PartialView("_VisitDetailsPartial", visit)); }
public ActionResult Index(int?visitId) { VisitDetailsViewModel vm = new VisitDetailsViewModel(); vm.PatientData = new VisitDetailsViewModel.ParsedData(); vm.ChildPatientData = new List <VisitDetailsViewModel.ParsedData>(); vm.PatientData.Categories = new List <string>(); vm.PatientData.CategoryItemCount = new List <int>(); vm.PatientData.ParsedDetails = new List <string>(); vm.PatientData.ParsedDetailsTitles = new List <string>(); vm.GeneralData = new VisitDetailsViewModel.ParsedData(); if (visitId == null) { //vm.Visit = null; //vm.ActivityInputs = null; } else { vm.Visit = DB.Visits.Find(visitId); vm.PatientData = FillData(vm.Visit, vm.Visit.WorkOrder.Patient.PatientId); vm.PatientData.PatientName = vm.Visit.WorkOrder.Patient.FullNameWithCode; for (int i = 0; i < vm.Visit.WorkOrder.PatientWorkOrders.Count; i++) { VisitDetailsViewModel.ParsedData data = FillData(vm.Visit, vm.Visit.WorkOrder.PatientWorkOrders.ElementAt(i).Patient.PatientId); data.PatientName = vm.Visit.WorkOrder.PatientWorkOrders.ElementAt(i).Patient.FullNameWithCode; vm.ChildPatientData.Add(data); } vm.GeneralData = FillGeneralData(vm.Visit); } return(View(vm)); }
// TODO : consider adding ajaxOnly check //[AjaxOnly] public ActionResult Open(Guid id) { // TODO: Consider another way to stop non-ajax requests // without reloading page - AjaxOnly attribute but with some feedback // TODO: uncomment when dev finished, add to ather ajax methods //if (!this.Request.IsAjaxRequest()) //{ // TempData["message"] = "Not an ajax request"; // return RedirectToAction("Index"); //} // TODO: remove //var test3 = Request; //var test = Request.Url.Query; //var test2 = Request.QueryString["name"]; var visit = this.visitsService.GetById(id); VisitDetailsViewModel vm = new VisitDetailsViewModel(visit); return(PartialView("_VisitDetailsPartial", vm)); }
public void RenderVisitDetailsPartialWithCorrectViewModel_WhenPostedValidViewModel() { // Arrange var visitsServiceMock = new Mock <IVisitsService>(); var municipalitiesServiceMock = new Mock <IMunicipalitiesService>(); var usersServiceMock = new Mock <IUserService>(); var pageServiceMock = new Mock <IPageService <Visit> >(); var controller = new VisitsController(visitsServiceMock.Object, municipalitiesServiceMock.Object, usersServiceMock.Object, pageServiceMock.Object); var visitModel = new Visit(); var visitDetailsModel = new VisitDetailsViewModel(); visitsServiceMock.Setup(vs => vs.Update(visitModel)); visitsServiceMock.Setup(v => v.GetById(It.IsAny <Guid>())).Returns(visitModel); // TODO: Consider if this test should check the proper mapping between data and view models. It is tested in the first test above but because I moved mapping to happen in view model, mabye shold be tested in a separate test only for view models? // Act & Assert controller .WithCallTo(c => c.Edit(visitDetailsModel)) .ShouldRenderPartialView("_VisitDetailsPartial") .WithModel(visitDetailsModel); }
public VisitDetailsPage(VisitDetailsViewModel viewModel) { InitializeComponent(); BindingContext = viewModel; }