Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public JsonResult LoadOccupantsDetailedInformation()
- {
- //Load the personsFormModel with data
- return new JsonpResult(personsFormModel, JsonRequestBehavior.AllowGet);
- }
- [HttpPost]
- public ActionResult SaveOccupantsDetailedInformation(
- PersonsFormModel personsFormModel)
- {
- //This line is always returning true even if I pass 2 persons with the same ssn
- if (ModelState.IsValid == false)
- {
- var errorList = ModelState.ToDictionary(
- kvp => kvp.Key,
- kvp => kvp.Value.Errors.Select(e => e.ErrorMessage).ToArray()
- );
- return Json(new { Errors = errorList });
- }
- //Save the data in personsFormModel to database
- return Json(new JsonResultViewModel { Success = true });
- }
- public partial class PersonsFormModel : List<PersonFormModel>, IValidatableObject
- {
- public IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> Validate(
- ValidationContext validationContext)
- {
- var validationResults
- = new List<System.ComponentModel.DataAnnotations.ValidationResult>();
- if (this.SSNs.Count() > this.SSNs.Distinct().Count())
- {
- validationResults.Add(new System.ComponentModel.DataAnnotations.ValidationResult(
- "All the persons in the household should have a unique SSN\ITIN number",
- new[] { "SSN" }));
- }
- return validationResults;
- }
- private IEnumerable<string> SSNs
- {
- get
- {
- return this.Select(element => element.SSN);
- }
- }
- }
- public class PrequalifyOccupantListPersonDetailedFormModel
- {
- [Required(ErrorMessage = "SSN is required")]
- public string SSN { get; set; }
- }
- [Test]
- public void Should_validate_person_form_model()
- {
- var input = new PersonsFormModel();
- input.Add(new PersonFormModel { SSN = "33" });
- input.Add(new PersonFormModel { SSN = "33" });
- _controller.ViewData.ModelState.Clear();
- var results = new List<ValidationResult>();
- bool isValid = Validator.TryValidateObject(input,
- new ValidationContext(input, null, null),
- results,true);
- Assert.IsTrue(!isValid, "Cannot have duplicates.");
- }
- ***Controller:***
- public JsonResult LoadOccupantsDetailedInformation()
- {
- //Load the personsFormModel with data
- return new JsonpResult(personsFormModel, JsonRequestBehavior.AllowGet);
- }
- [HttpPost]
- public ActionResult SaveOccupantsDetailedInformation(
- PersonsFormModel personsFormModel)
- {
- //This line is always returning true even if I pass 2 persons with the same ssn
- if (ModelState.IsValid == false)
- {
- var errorList = ModelState.ToDictionary(
- kvp => kvp.Key,
- kvp => kvp.Value.Errors.Select(e => e.ErrorMessage).ToArray()
- );
- return Json(new { Errors = errorList });
- }
- //Save the data in personsFormModel to database
- return Json(new JsonResultViewModel { Success = true });
- }
- ***Model:***
- public class PersonsFormModel : IValidatableObject
- {
- public PersonsFormModel()
- {
- this.Instance = new List<PersonFormModel>();
- }
- public List<PrequalifyOccupantListPersonFormModel> Instance { get; set; }
- public void Add(PersonFormModel personFormModel)
- {
- Instance.Add(personFormModel);
- }
- public IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> Validate(
- ValidationContext validationContext)
- {
- var validationResults
- = new List<System.ComponentModel.DataAnnotations.ValidationResult>();
- if (this.SSNs.Count() > this.SSNs.Distinct().Count())
- {
- validationResults.Add(new System.ComponentModel.DataAnnotations.ValidationResult(
- "All the persons in the household should have a unique SSN\ITIN number",
- new[] { "SSN" }));
- }
- return validationResults;
- }
- private IEnumerable<string> SSNs
- {
- get
- {
- return Instance.Select(element => element.SSN);
- }
- }
- }
- public class PersonFormModel
- {
- [Required(ErrorMessage = "SSN is required")]
- public string SSN { get; set; }
- }
- View:
- // Note, I am passing the "Instance" here.
- var postData = JSON.stringify({ Instance: list });
- RealPage.DataManager.POST({
- url: "/Approval/SaveOccupantsDetailedInformation"
- , data: postData
- , success: function (data) {
- if (data && data.Success) {
- }
- }
- });
Add Comment
Please, Sign In to add comment