示例#1
0
        public ActionResult Add(AddPathwayInputModel pathwayInputModel)
        {
            if (ModelState.IsValid)
            {
                using (var unitOfwork = new UnitOfWork())
                {
                    var pathway = new Pathway
                    {
                        PPINumber        = pathwayInputModel.PPINumber,
                        Patient          = GetPatientByNhsNumber(pathwayInputModel.SelectedPatientNHSNumber, unitOfwork),
                        OrganizationCode = pathwayInputModel.OrganizationCode
                    };

                    pathway.ValidationFailed += ruleViolation =>
                    {
                        ruleViolation.CreatedAt = DateTime.UtcNow;
                        unitOfwork.RuleViolations.Add(ruleViolation);
                    };
                    pathway.Validate();

                    unitOfwork.Pathways.Add(pathway);
                    unitOfwork.SaveChanges();
                }

                return(RedirectToAction("Add"));
            }

            pathwayInputModel.Patients    = GetAllPatients();
            pathwayInputModel.AllPathways = GetAllPathways();

            return(View(pathwayInputModel));
        }
示例#2
0
        public void Validate_RaisesValidationFailedEvent_WhenPpiNumberHasALengthDifferentThan20Characters()
        {
            //Arrange
            var pathway = new Pathway
            {
                PPINumber = new string('x', 22)
            };
            RuleViolation eventRaised = null;

            pathway.ValidationFailed += delegate { eventRaised = new RuleViolation(); };

            //Act
            pathway.Validate();

            //Assert
            Assert.IsNotNull(eventRaised);
        }