[HttpPost] public ActionResult Create(UploadViewItem viewItem, HttpPostedFile postedFile) { if (!ModelState.IsValid) { return View(); } var result = AddInstanties(postedFile.InputStream, viewItem.StartDatum, viewItem.EindDatum); return View(viewItem); } public class UploadViewItem : IValidatableObject { public UploadViewItem() { EindDatum = DateTime.Now; StartDatum = DateTime.Now; Result = new UploadResultItem(); } [Required(ErrorMessage = "Bestand kan niet worden gevonden")] public string File { get; set; } [RegularExpression(@"^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d$", ErrorMessage = "Datum moet voldoen aan het volgende format: dd-mm-yyyy")] [Required(ErrorMessage = "Startdatum is verplicht")] [DisplayName("Startdatum")] public DateTime StartDatum { get; set; } [RegularExpression(@"^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d$", ErrorMessage = "Datum moet voldoen aan het volgende format: dd-mm-yyyy")] [Required(ErrorMessage = "Einddatum is verplicht")] [DisplayName("Einddatum")] public DateTime EindDatum { get; set; } public UploadResultItem Result { get; set; } public IEnumerable Validate(ValidationContext validationContext) { if (StartDatum.CompareTo(EindDatum) > 0) { yield return new ValidationResult("Startdatum moet voor Einddatum zijn", new string[] { "StartDatum", "EindDatum" }); } } } public class UploadResultItem { public UploadResultItem() { FormatErrorLine = 0; AmountOfAddedItems = 0; WrongCursusInstanties = null; } public int FormatErrorLine { get; set; } public int AmountOfAddedItems { get; set; } public WrongCursusDTO[] WrongCursusInstanties { get; set; } }