/// <summary> /// Initializes a new instance of the <see cref="ValidationCallHandler"/> class that uses the given /// rule set, <see cref="SpecificationSource"/> to get the validation rules, and handler order. /// </summary> /// <param name="ruleset">The validation rule set specified in the configuration.</param> /// <param name="specificationSource">A value that indicates whether the validation should come from the configuration, from attributes, or from both sources.</param> /// <param name="handlerOrder">The order of the handler.</param> public ValidationCallHandler( string ruleset, SpecificationSource specificationSource, int handlerOrder) : this(ruleset, GetValidatorFactory(specificationSource), handlerOrder) { }
private static ValidatorFactory GetValidatorFactory(SpecificationSource specificationSource) { if (specificationSource == SpecificationSource.ParameterAttributesOnly) { return(null); } var configurationSource = ConfigurationSourceFactory.Create(); var instrumentationProvider = ValidationInstrumentationProvider.FromConfigurationSource(configurationSource); switch (specificationSource) { case SpecificationSource.Both: return(new CompositeValidatorFactory( instrumentationProvider, new AttributeValidatorFactory(instrumentationProvider), new ConfigurationValidatorFactory(configurationSource, instrumentationProvider))); case SpecificationSource.Attributes: return(new AttributeValidatorFactory(instrumentationProvider)); case SpecificationSource.Configuration: return(new ConfigurationValidatorFactory(configurationSource, instrumentationProvider)); default: return(null); } }
/// <summary> /// Creates a <see cref="ParameterValidatingCallHandler"/> that uses the given <paramref name="ruleset"/> and /// <paramref name="specificationSource"/> to get the validation rules. /// </summary> /// <param name="ruleset">Validation ruleset as specified in configuration.</param> /// <param name="specificationSource">Should the validation come from configuration file, attributes, or both?</param> /// <param name="handlerOrder">Order of the handler in the handlers' pipeline.</param> public ParameterValidatingCallHandler( string ruleset, SpecificationSource specificationSource, int handlerOrder) : this(ruleset, CreateValidatorFactory(specificationSource), handlerOrder) { }
void AddValidationPolicy(IUnityContainer factory, string ruleSet, SpecificationSource specificationSource, IMatchingRule matchingRule) { factory.Configure <Interception>().AddPolicy("Noop") .AddMatchingRule(matchingRule) .AddCallHandler(new ValidationCallHandler(ruleSet, specificationSource)); }
/// <summary> /// Load workstation and server specifications from disk. /// </summary> /// <param name="storage">Choose whether to load workstation or server specs</param> /// <param name="specificationType">Choose which specification type to load (CPU, RAM, disk, etc)</param> /// <returns>List of strings from configuration storage</returns> public static List<string> GetSpecifications(SpecificationSource storage, SpecificationType specificationType) { List<string> configs = new List<string>(); string storagePath = string.Empty; storagePath = AppUtilities.GetStoragePathFromStorageAndSpecification(storage, specificationType); if (File.Exists(storagePath)) { using (FileStream fs = new FileStream(storagePath, FileMode.Open)) using (StreamReader sr = new StreamReader(fs)) { while (sr.Peek() != -1) { configs.Add(sr.ReadLine()); } } } return configs; }
/// <summary> /// Creates the validator factory. /// </summary> /// <param name="specificationSource">The specification source.</param> /// <returns>A validator factory object.</returns> protected static ValidatorFactory CreateValidatorFactory( SpecificationSource specificationSource) { using (var configurationSource = ConfigurationSourceFactory.Create()) switch (specificationSource) { case SpecificationSource.Both: return(new CompositeValidatorFactory( new AttributeValidatorFactory(), new ConfigurationValidatorFactory(configurationSource))); case SpecificationSource.Attributes: return(new AttributeValidatorFactory()); case SpecificationSource.Configuration: return(new ConfigurationValidatorFactory(configurationSource)); case SpecificationSource.ParameterAttributesOnly: default: throw new InvalidOperationException("Invalid specification source."); } }
private static ValidatorFactory GetValidatorFactory(SpecificationSource specificationSource) { if (specificationSource == SpecificationSource.ParameterAttributesOnly) { return(null); } switch (specificationSource) { case SpecificationSource.Both: return(ValidationFactory.DefaultCompositeValidatorFactory); case SpecificationSource.Attributes: return(new AttributeValidatorFactory()); case SpecificationSource.Configuration: return(ValidationFactory.DefaultConfigurationValidatorFactory); default: return(null); } }
/// <summary> /// Get the path to the storage /// </summary> /// <param name="storageType">Type of storage</param> /// <param name="specificationType">Type of specification</param> /// <returns>The path to the specification profile</returns> public static string GetStoragePathFromStorageAndSpecification(SpecificationSource storageType, SpecificationType specificationType) { string path = GetAppPath(); if (storageType == SpecificationSource.LocalMachine) { path = Path.Combine(path, storageType.ToString()); path = Path.Combine(path, Environment.MachineName); EnsureDirectory(new DirectoryInfo(path)); path = Path.Combine(path, specificationType.ToString() + ".txt"); } if (storageType == SpecificationSource.PilotWorkstationMinimum | storageType == SpecificationSource.PilotAppServerMinimum | storageType == SpecificationSource.AppointmentsAppServerMinimum | storageType == SpecificationSource.AppointmentsWorkstationMinimum) { path = Path.Combine(path, storageType.ToString()); EnsureDirectory(new DirectoryInfo(path)); path = Path.Combine(path, specificationType.ToString() + ".txt"); } return path; }
/// <summary> /// Creates a <see cref="ParameterValidatingCallHandler"/> that uses the given <paramref name="ruleset"/> and /// <paramref name="specificationSource"/> to get the validation rules. /// </summary> /// <param name="ruleset">Validation rule-set as specified in configuration.</param> /// <param name="specificationSource">Should the validation come from configuration file, attributes, or both?</param> public ParameterValidatingCallHandler( string ruleset, SpecificationSource specificationSource) : this(ruleset, specificationSource, 0) { }
/// <summary> /// Initializes a new instance of the <see cref="ValidationCallHandlerAttribute"/> that uses the /// given rule set. /// </summary> /// <param name="ruleSet">The name of the rule set to use.</param> public ValidationCallHandlerAttribute(string ruleSet) { this.ruleSet = ruleSet; this.specificationSource = SpecificationSource.Both; }
/// <summary> /// Initializes a new instance of the <see cref="ValidationCallHandler"/> class that uses the given /// rule set and <see cref="SpecificationSource"/> to get the validation rules. /// </summary> /// <param name="ruleSet">The validation rule set specified in the configuration.</param> /// <param name="specificationSource">A value that indicates whether the validation should come from the configuration, from attributes, or from both sources.</param> public ValidationCallHandler(string ruleSet, SpecificationSource specificationSource) : this(ruleSet, specificationSource, 0) { }
/// <summary> /// Creates a <see cref="ValidationCallHandler"/> that uses the given /// ruleset and <see cref="SpecificationSource"/> to get the validation rules. /// </summary> /// <param name="ruleSet">Validation ruleset as specified in configuration.</param> /// <param name="specificationSource">Should the validation come from config, attributes, or both?</param> /// <param name="handlerOrder">Order of the handler</param> public ValidationCallHandler(string ruleSet, SpecificationSource specificationSource, int handlerOrder) : this(ruleSet, GetValidatorFactory(specificationSource), handlerOrder) { }
/// <summary> /// Creates a <see cref="ValidationCallHandler"/> that uses the given /// ruleset and <see cref="SpecificationSource"/> to get the validation rules. /// </summary> /// <param name="ruleSet">Validation ruleset as specified in configuration.</param> /// <param name="specificationSource">Should the validation come from config, attributes, or both?</param> public ValidationCallHandler(string ruleSet, SpecificationSource specificationSource) : this(ruleSet, specificationSource, 0) { }
private static ValidatorFactory GetValidatorFactory(SpecificationSource specificationSource) { if (specificationSource == SpecificationSource.ParameterAttributesOnly) { return null; } var configurationSource = ConfigurationSourceFactory.Create(); var instrumentationProvider = ValidationInstrumentationProvider.FromConfigurationSource(configurationSource); switch (specificationSource) { case SpecificationSource.Both: return new CompositeValidatorFactory( instrumentationProvider, new AttributeValidatorFactory(instrumentationProvider), new ConfigurationValidatorFactory(configurationSource, instrumentationProvider)); case SpecificationSource.Attributes: return new AttributeValidatorFactory(instrumentationProvider); case SpecificationSource.Configuration: return new ConfigurationValidatorFactory(configurationSource, instrumentationProvider); default: return null; } }
/// <summary> /// Creates a <see cref="ServiceParameterValidatingCallHandler"/> that uses the given <paramref name="ruleset"/> and /// <paramref name="specificationSource"/> to get the validation rules. /// </summary> /// <param name="ruleset">Validation ruleset as specified in configuration.</param> /// <param name="specificationSource">Should the validation come from configuration file, attributes, or both?</param> public ServiceParameterValidatingCallHandler( string ruleset, SpecificationSource specificationSource) : base(ruleset, specificationSource, 0) { }
/// <summary> /// Write information gathered to the data store /// </summary> /// <param name="storageType">Storage profile</param> /// <param name="specificationType">Category of specification</param> /// <param name="data">Data to write</param> public static void Write(SpecificationSource storageType, SpecificationType specificationType, string data) { string storagePath = string.Empty; storagePath = AppUtilities.GetStoragePathFromStorageAndSpecification(storageType, specificationType); using (FileStream fs = new FileStream(storagePath, FileMode.Append)) using (StreamWriter sw = new StreamWriter(fs)) { sw.WriteLine(data); sw.Flush(); } }
void AddValidationPolicy(IUnityContainer factory, string ruleSet, SpecificationSource specificationSource, IMatchingRule matchingRule) { factory.Configure<Interception>().AddPolicy("Noop") .AddMatchingRule(matchingRule) .AddCallHandler(new ValidationCallHandler(ruleSet, specificationSource)); }
private static ValidatorFactory GetValidatorFactory(SpecificationSource specificationSource) { if (specificationSource == SpecificationSource.ParameterAttributesOnly) { return null; } switch (specificationSource) { case SpecificationSource.Both: return ValidationFactory.DefaultCompositeValidatorFactory; case SpecificationSource.Attributes: return new AttributeValidatorFactory(); case SpecificationSource.Configuration: return ValidationFactory.DefaultConfigurationValidatorFactory; default: return null; } }
/// <summary> /// Initializes a new instance of the <see cref="ValidationCallHandlerAttribute"/> that uses the /// given rule set. /// </summary> /// <param name="ruleSet">The name of the rule set to use.</param> public ValidationCallHandlerAttribute(string ruleSet) { this.ruleSet = ruleSet; this.specificationSource = SpecificationSource.Both; }
/// <summary> /// Creates a <see cref="ValidationCallHandler"/> that uses the given /// ruleset and <see cref="SpecificationSource"/> to get the validation rules. /// </summary> /// <param name="ruleSet">Validation ruleset as specified in configuration.</param> /// <param name="specificationSource">Should the validation come from config, attributes, or both?</param> public ValidationCallHandler(string ruleSet, SpecificationSource specificationSource) { this.ruleSet = ruleSet; this.specificationSource = specificationSource; }