void RuleSetOnValidationCompleted(object sender, ValidationCompletedEventArgs args) { Validator.RuleSet.ValidationCompleted -= RuleSetOnValidationCompleted; var ruleSetValidationResult = new RuleSetValidationResult(); var validationException = args.Exception; if (validationException != null) { ruleSetValidationResult = validationException.Result; } foreach (var modelMemberPasswordScore in _modelMemberPasswordScores) { var password = View.ObjectTypeInfo.FindMember(modelMemberPasswordScore.Name).GetValue(View.CurrentObject); var passwordScore = PasswordAdvisor.CheckStrength(password + ""); if (passwordScore < modelMemberPasswordScore.PasswordScore) { var messageTemplate = String.Format(CaptionHelper.GetLocalizedText(XpandValidationModule.XpandValidation, "PasswordScoreFailed"), modelMemberPasswordScore.Name, passwordScore, modelMemberPasswordScore.PasswordScore); var validationResult = Validator.RuleSet.NewRuleSetValidationMessageResult(ObjectSpace, messageTemplate, ContextIdentifier.Save, View.CurrentObject, View.ObjectTypeInfo.Type); ruleSetValidationResult.AddResult(validationResult.Results.First()); args.Handled = true; } } if (args.Handled) { throw validationException ?? new ValidationException(ruleSetValidationResult); } }
protected override void OnValidationFail(ValidationCompletedEventArgs validationCompletedEventArgs) { base.OnValidationFail(validationCompletedEventArgs); if (!validationCompletedEventArgs.Handled) { validationCompletedEventArgs.Handled = true; var ruleSetValidationResult = new RuleSetValidationResult(); foreach (var result in validationCompletedEventArgs.Exception.Result.Results.Where(item => GetRuleType(item.Rule)==RuleType.Critical)) { ruleSetValidationResult.AddResult(result); } throw new ValidationException(ruleSetValidationResult.GetFormattedErrorMessage(), ruleSetValidationResult); } }
protected override void OnValidationFail(ValidationCompletedEventArgs validationCompletedEventArgs) { base.OnValidationFail(validationCompletedEventArgs); if (!validationCompletedEventArgs.Handled) { validationCompletedEventArgs.Handled = true; var ruleSetValidationResult = new RuleSetValidationResult(); foreach (var result in validationCompletedEventArgs.Exception.Result.Results.Where(item => GetRuleType(item.Rule) == Validation.RuleType.RuleType.Critical)) { ruleSetValidationResult.AddResult(result); } throw new ValidationException(ruleSetValidationResult.GetFormattedErrorMessage(), ruleSetValidationResult); } }
void SimpleActionOnExecute(object sender, SimpleActionExecuteEventArgs simpleActionExecuteEventArgs) { if (((ActionBase)sender).Id == "Throw Exception") { throw new Exception("Exception was thrown"); } var result = new RuleSetValidationResult(); const string messageTemplate = "This exception will not be logged see FeatureCenterWindowsFormsModule ExceptionHandlingWinModuleOnCustomHandleException method "; result.AddResult(new RuleSetValidationResultItem(View.CurrentObject, ContextIdentifier.Delete, null, new RuleValidationResult(null, this, ValidationState.Invalid, messageTemplate))); throw new ValidationException(messageTemplate, result); }
private void ObjectSpace_OnObjectDeleting(object sender, ObjectsManipulatingEventArgs e) { foreach (var o in e.Objects) { var count = ((XPObjectSpace)ObjectSpace).Session.CollectReferencingObjects(o).Count; if (count > 0) { var result = new RuleSetValidationResult(); var messageTemplate = "Cannot be deleted " + count + " references found"; result.AddResult(new RuleSetValidationResultItem(o, ContextIdentifier.Delete, null, new RuleValidationResult(null, this, ValidationState.Invalid, messageTemplate))); throw new ValidationException(messageTemplate, result); } } }
private void ObjectSpace_OnObjectDeleting(object sender, ObjectsManipulatingEventArgs e) { foreach (var o in e.Objects) { var count = ObjectSpace.Session.CollectReferencingObjects(o).Count; if (count > 0) { var result = new RuleSetValidationResult(); var messageTemplate = "Cannot be deleted " + count + " referemces found"; result.AddResult(new RuleSetValidationResultItem(o, ContextIdentifier.Delete, null, new RuleValidationResult(null, this, false, messageTemplate))); throw new ValidationException(messageTemplate, result); } } }
void RuleSetOnValidationCompleted(object sender, ValidationCompletedEventArgs args) { Validator.RuleSet.ValidationCompleted -= RuleSetOnValidationCompleted; var ruleSetValidationResult = new RuleSetValidationResult(); var validationException = args.Exception; if (validationException != null) ruleSetValidationResult = validationException.Result; foreach (var modelMemberPasswordScore in _modelMemberPasswordScores) { var password = View.ObjectTypeInfo.FindMember(modelMemberPasswordScore.Name).GetValue(View.CurrentObject); var passwordScore = PasswordAdvisor.CheckStrength(password +""); if (passwordScore<modelMemberPasswordScore.PasswordScore) { var messageTemplate = String.Format(CaptionHelper.GetLocalizedText(XpandValidationModule.XpandValidation, "PasswordScoreFailed"), modelMemberPasswordScore.Name, passwordScore, modelMemberPasswordScore.PasswordScore); var ruleValidationResult = new RuleValidationResult(null, View.CurrentObject, ValidationState.Invalid, messageTemplate); ruleSetValidationResult.AddResult(new RuleSetValidationResultItem(View.CurrentObject, ContextIdentifier.Save, null,ruleValidationResult)); args.Handled = true; } } if (args.Handled) throw validationException??new ValidationException(ruleSetValidationResult); }
/// <summary> /// Fires after the next button has been clicked /// </summary> private bool Validate(XafWizardPage page) { RuleValidationResult result; var validationResults = new RuleSetValidationResult(); var usedProperties = new List<string>(); var resultsHighlightControllers = new List<ResultsHighlightController> { Frame.GetController<ResultsHighlightController>() }; foreach (var item in page.View.GetItems<PropertyEditor>()) { if (item.Control != null && ((Control)item.Control).Visible) { usedProperties.Add(item.PropertyName); if (item is ListPropertyEditor) { usedProperties.AddRange(((ListPropertyEditor)item).ListView.Editor.RequiredProperties.Select(property => property.TrimEnd('!'))); var nestedController = ((ListPropertyEditor)item).Frame.GetController<ResultsHighlightController>(); if (nestedController != null) { resultsHighlightControllers.Add(nestedController); } } } } var modifiedObjects = page.View.ObjectTypeInfo.IsPersistent ? ObjectSpace.ModifiedObjects : new List<object> { page.View.CurrentObject }; foreach (var obj in modifiedObjects) { IList<IRule> rules = Validator.RuleSet.GetRules(obj, ContextIdentifier.Save); foreach (IRule rule in rules) { bool ruleInUse = rule.UsedProperties.Any(property => usedProperties.Contains(property) || !string.IsNullOrEmpty(usedProperties.Where(p => p.EndsWith(String.Format(".{0}", property))).FirstOrDefault())); string reason; if (ruleInUse && RuleSet.NeedToValidateRule(rule, obj, out reason)) { result = rule.Validate(obj); if (result.State == ValidationState.Invalid) { validationResults.AddResult(new RuleSetValidationResultItem(obj, ContextIdentifier.Save, rule, result)); } } } } foreach (ResultsHighlightController resultsHighlightController in resultsHighlightControllers) { resultsHighlightController.ClearHighlighting(); if (validationResults.State == ValidationState.Invalid) { resultsHighlightController.HighlightResults(validationResults); } } return validationResults.State == ValidationState.Valid; }
/// <summary> /// Fires after the next button has been clicked /// </summary> private bool Validate(XafWizardPage page) { RuleValidationResult result; var validationResults = new RuleSetValidationResult(); var usedProperties = new List <string>(); var resultsHighlightControllers = new List <ResultsHighlightController> { Frame.GetController <ResultsHighlightController>() }; foreach (var item in page.View.GetItems <PropertyEditor>()) { if (item.Control != null && ((Control)item.Control).Visible) { usedProperties.Add(item.PropertyName); if (item is ListPropertyEditor) { usedProperties.AddRange(((ListPropertyEditor)item).ListView.Editor.RequiredProperties.Select(property => property.TrimEnd('!'))); var nestedController = ((ListPropertyEditor)item).Frame.GetController <ResultsHighlightController>(); if (nestedController != null) { resultsHighlightControllers.Add(nestedController); } } } } var modifiedObjects = page.View.ObjectTypeInfo.IsPersistent ? ObjectSpace.ModifiedObjects : new List <object> { page.View.CurrentObject }; foreach (var obj in modifiedObjects) { IList <IRule> rules = Validator.RuleSet.GetRules(obj, ContextIdentifier.Save); foreach (IRule rule in rules) { bool ruleInUse = rule.UsedProperties.Any(property => usedProperties.Contains(property) || !string.IsNullOrEmpty(usedProperties.Where(p => p.EndsWith(String.Format(".{0}", property))).FirstOrDefault())); string reason; if (ruleInUse && RuleSet.NeedToValidateRule(rule, obj, out reason)) { result = rule.Validate(obj); if (result.State == ValidationState.Invalid) { validationResults.AddResult(new RuleSetValidationResultItem(obj, ContextIdentifier.Save, rule, result)); } } } } foreach (ResultsHighlightController resultsHighlightController in resultsHighlightControllers) { resultsHighlightController.ClearHighlighting(); if (validationResults.State == ValidationState.Invalid) { resultsHighlightController.HighlightResults(validationResults); } } return(validationResults.State == ValidationState.Valid); }
/// <summary> /// Fires after the next button has been clicked /// </summary> /// <param name="sender">Wizard Control</param> /// <param name="e">WizardCommandButtonClick EventArgs</param> private void WizardControl_NextClick(object sender, WizardCommandButtonClickEventArgs e){ RuleValidationResult result; var validationResults = new RuleSetValidationResult(); var usedProperties = new List<string>(); var resultsHighlightControllers = new List<ResultsHighlightController> {Frame.GetController<ResultsHighlightController>()}; foreach (PropertyEditor item in ((XafWizardPage) e.Page).View.GetItems<PropertyEditor>()){ if (((Control) item.Control).Visible){ usedProperties.Add(item.PropertyName); if (item is ListPropertyEditor){ foreach (string property in ((ListPropertyEditor) item).ListView.Editor.RequiredProperties){ usedProperties.Add(property.TrimEnd('!')); } var nestedController = ((ListPropertyEditor) item).Frame.GetController<ResultsHighlightController>(); if (nestedController != null){ resultsHighlightControllers.Add(nestedController); } } } } foreach (object obj in ObjectSpace.ModifiedObjects){ IList<IRule> rules = Validator.RuleSet.GetRules(obj, ContextIdentifier.Save); foreach (IRule rule in rules){ bool ruleInUse = false; foreach (string property in rule.UsedProperties){ if (usedProperties.Contains(property)){ ruleInUse = true; break; } } if (ruleInUse){ result = rule.Validate(obj); if (result.State == ValidationState.Invalid){ validationResults.AddResult(new RuleSetValidationResultItem(obj, ContextIdentifier.Save, rule, result)); } } } } foreach (ResultsHighlightController resultsHighlightController in resultsHighlightControllers){ resultsHighlightController.ClearHighlighting(); if (validationResults.State == ValidationState.Invalid){ resultsHighlightController.HighlightResults(validationResults); } } if (validationResults.State == ValidationState.Invalid){ e.Handled = true; } }
/// <summary> /// Fires after the next button has been clicked /// </summary> private bool Validate(XafWizardPage page) { if (page == null) { return(true); } var validationResults = new RuleSetValidationResult(); var usedProperties = new List <string>(); var resultsHighlightControllers = new List <ResultsHighlightController> { Frame.GetController <ResultsHighlightController>() }.Where(controller => controller != null).ToList(); foreach (var item in page.View.GetItems <PropertyEditor>()) { if (item.Control != null && ((Control)item.Control).Visible) { usedProperties.Add(item.PropertyName); var editor = item as ListPropertyEditor; if (editor != null) { usedProperties.AddRange(editor.ListView.Editor.RequiredProperties.Select(property => property.TrimEnd('!'))); var nestedController = editor.Frame.GetController <ResultsHighlightController>(); if (nestedController != null) { resultsHighlightControllers.Add(nestedController); } } } } var modifiedObjects = ModifiedObjects(page); foreach (var obj in modifiedObjects) { IList <IRule> rules = Validator.RuleSet.GetRules(obj, ContextIdentifier.Save); foreach (IRule rule in rules) { bool ruleInUse = rule.UsedProperties.Any(property => usedProperties.Contains(property) || !string.IsNullOrEmpty(usedProperties.FirstOrDefault(p => p.EndsWith( $".{property}")))); string reason; if (ruleInUse && RuleSet.NeedToValidateRule(ObjectSpace, rule, obj, out reason)) { var objectSpaceLink = rule as IObjectSpaceLink; if (objectSpaceLink != null) { objectSpaceLink.ObjectSpace = ObjectSpace; } RuleValidationResult result = rule.Validate(obj); if (result.State == ValidationState.Invalid) { validationResults.AddResult(new RuleSetValidationResultItem(obj, ContextIdentifier.Save, rule, result)); } } } } foreach (ResultsHighlightController resultsHighlightController in resultsHighlightControllers) { resultsHighlightController.ClearHighlighting(); if (validationResults.State == ValidationState.Invalid) { resultsHighlightController.HighlightResults(validationResults); } } return(validationResults.State != ValidationState.Invalid); }