public Program(IOptions <MySettings> optionsSettings, MySettings settings, IRuleSet <MyModel> ruleset, ITransformationManager transformer) { // Data transformations TransformSourceData sourceData = new TransformSourceData() { Word = "Development", SourceTime = DateTime.Now, WordCount = 100 }; TransformDestinationData destinationData = transformer.Transform <TransformSourceData, TransformDestinationData>(sourceData); foreach (var timeWord in destinationData.TimeWords) { Console.WriteLine("Time word: {0}", timeWord); } // Rule validations var model1 = new MyModel(); var model2 = new MyModel { Name = "brazil", Number = 34 }; var result1 = ruleset.Check(model1); var result2 = ruleset.ByDefaultCategory().Check(model1); var result3 = ruleset.ByCategory("critical").Check(model1); var result4 = ruleset.ByCode("RN-001").Check(model1); var result5 = ruleset.ByCode(new[] { "RN-002", "RN-004" }).Check(model1); var result6 = ruleset.ByDefaultCategory().Check(model2); var result7 = ruleset.ByCategory("critical").Check(model2); Assert(result1 != null, "result != null"); Assert(!result1.IsSuccess, "!result.IsSuccess"); Assert(result1.Unconformities != null, "result.Unconformities != null"); Assert(result1.Unconformities.Count == 4, "result.Unconformities.Count == 4"); Assert(string.Join(" ", result2.Unconformities.Keys) == "RN-001 RN-002", "RN-001 RN-002"); Assert(string.Join(" ", result3.Unconformities.Keys) == "RN-003 RN-004", "RN-003 RN-004"); Assert(string.Join(" ", result4.Unconformities.Keys) == "RN-001", "RN-001"); Assert(string.Join(" ", result5.Unconformities.Keys) == "RN-002 RN-004", "RN-002 RN-004"); Assert(result6.IsSuccess, "result6.IsSuccess"); Assert(!result7.IsSuccess, "!result7.IsSuccess"); Assert(string.Join(" ", result7.Unconformities.Keys) == "RN-003 RN-004", "RN-003 RN-004 (result7)"); }
/// <summary> /// Checks each mail asdress in the collection against the sending rules, /// removing any addresses to which sending is not allowed. /// </summary> /// <param name="addresses"></param> private void CleanMailAddressCollection(MailAddressCollection addresses) { for (var index = addresses.Count - 1; index >= 0; index--) { var address = addresses[index]; if (ruleSet.Check(address.Address) != RuleAction.Allow) { Trace.TraceInformation( "The email address \"{0}\" has been removed from this message " + "as sending to this address is not allowed.", address.Address); addresses.RemoveAt(index); } } }