11using Plugin . ValidationRules ;
2- using System ;
3- using System . Collections . Generic ;
4- using System . Text ;
2+ using Plugin . ValidationRules . Extensions ;
3+ using Plugin . ValidationRules . Interfaces ;
54using ValidationRulesTest . Validations ;
65
76namespace ValidationRulesTest . Models
87{
9- public class UserValidator
8+ public class UserValidator : IMapperValidator < User >
109 {
1110 ValidationUnit _unit1 ;
1211
1312 public UserValidator ( )
1413 {
15- LastName = new ValidatableObject < string > ( ) ;
16- Name = new ValidatableObject < string > ( ) ;
17- Email = new ValidatableObject < string > ( ) ;
14+ LastName = new Validatable < string > ( ) ;
15+ Name = new Validatable < string > ( ) ;
16+ Email = new Validatable < string > ( ) ;
1817
1918 _unit1 = new ValidationUnit ( Name , LastName , Email ) ;
2019
@@ -29,24 +28,47 @@ public UserValidator()
2928 Email . Validations . Add ( new EmailRule ( ) ) ;
3029 }
3130
32- public ValidatableObject < string > LastName { get ; set ; }
33- public ValidatableObject < string > Name { get ; set ; }
34- public ValidatableObject < string > Email { get ; set ; }
31+ public Validatable < string > LastName { get ; set ; }
32+ public Validatable < string > Name { get ; set ; }
33+ public Validatable < string > Email { get ; set ; }
3534
3635 public bool Validate ( )
3736 {
3837 // Your logic goes here
3938 return _unit1 . Validate ( ) ;
4039 }
4140
42- public User Cast ( )
41+ public User Map ( )
4342 {
44- return new User
43+ var stopper = new System . Diagnostics . Stopwatch ( ) ;
44+ var testRuns = 1000 ; // 1 second
45+
46+ stopper . Start ( ) ;
47+
48+ // Simple Manual Mapper
49+ var manualMapperUser = new User
4550 {
4651 Name = this . Name . Value ,
4752 LastName = this . LastName . Value ,
4853 Email = this . Email . Value
4954 } ;
55+
56+ stopper . Stop ( ) ;
57+
58+ var time1 = stopper . Elapsed . TotalMilliseconds / ( double ) testRuns ;
59+ System . Console . WriteLine ( "ManualMapper: " + time1 ) ; // Elapsed time: 0.002
60+
61+ stopper . Restart ( ) ;
62+
63+ // Extension Mapper with simple Model
64+ var extMapperUser = this . MapValidator < User , UserValidator > ( ) ;
65+
66+ stopper . Stop ( ) ;
67+
68+ var time2 = stopper . Elapsed . TotalMilliseconds / ( double ) testRuns ;
69+ System . Console . WriteLine ( "ExtensionMapper: " + time2 ) ; // Elapsed time: 0.013
70+
71+ return manualMapperUser ;
5072 }
5173 }
5274}
0 commit comments