コード例 #1
0
        public ActionResult Edit(Guid id)
        {
            // TODO: Check for null
            var visit = this.visitsService.GetById(id);
            var vm    = new VisitDetailsViewModel(visit);

            return(PartialView("_VisitEditPartial", vm));
        }
コード例 #2
0
            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");
            }
コード例 #3
0
            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());
            }
コード例 #4
0
            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);
            }
コード例 #5
0
        //[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"));
        }
コード例 #6
0
        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));
        }
コード例 #7
0
        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));
        }
コード例 #8
0
        // 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));
        }
コード例 #9
0
            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);
            }
コード例 #10
0
 public VisitDetailsPage(VisitDetailsViewModel viewModel)
 {
     InitializeComponent();
     BindingContext = viewModel;
 }