protected viewValidations getDataForView(int viewId) { //we get all the relevant fields for this view var viewFields = GetFieldsForView(viewId); //we find the date fields var dataFields = (from field in viewFields where field.dataType == Constants.TIMEPICKER || field.dataType == Constants.DATEPICKER || field.dataType == Constants.EDITTEXT || field.dataType == Constants.CHECKBOX || field.dataType == Constants.RADIOBUTTON select field).ToList(); var context = this; var valueFields = new List <FieldValuePair>(); var validationIssues = new List <DataValidationIssue>(); foreach (var field in dataFields) { var resultObject = new FieldValuePair() { Field = field, Value = string.Empty }; var fieldView = new ValidationObject() { isRequired = field.IsRequired, label = field.Label, //value = view.Text, //viewId = view.Id, validation = field.validation }; switch (field.dataType) { case Constants.TIMEPICKER: case Constants.DATEPICKER: { var view = field.GetDataView <EditText>(this); fieldView.value = view.Text; fieldView.viewId = view.Id; fieldView.viewObject = view; var validationResult = DateValidator.validates(fieldView); clearError(view); if (validationResult != null) { validationIssues.Add(validationResult); } if (string.IsNullOrWhiteSpace(view.Text)) { continue; } resultObject.Value = view.Text; break; } case Constants.EDITTEXT: { var view = field.GetDataView <EditText>(this); fieldView.value = view.Text; fieldView.viewId = view.Id; fieldView.viewObject = view; clearError(view); var validationResult = TextValidator.validates(fieldView); if (validationResult != null) { validationIssues.Add(validationResult); } if (string.IsNullOrWhiteSpace(view.Text)) { continue; } resultObject.Value = view.Text; break; } case Constants.CHECKBOX: { var view = field.GetDataView <CheckBox>(this); if (!view.Checked) { continue; } resultObject.Value = Constants.DEFAULT_CHECKED; break; } case Constants.RADIOBUTTON: { var view = field.GetDataView <RadioButton>(this); if (view == null) { view = field.GetDataView <RadioButton>(this); } if (!view.Checked) { continue; } resultObject.Value = Constants.DEFAULT_CHECKED; break; } default: { throw new ArgumentNullException("Could not find view for field " + field.name); } } if (string.IsNullOrWhiteSpace(resultObject.Value)) { throw new ArgumentNullException("Could not find view for field " + field.name); } valueFields.Add(resultObject); } return(new viewValidations() { TemporalViewData = valueFields, Validations = validationIssues }); }