/// <summary>
        ///     Creates an instance of SQLServerConnectionStringBuilder
        /// </summary>
        /// <param name="parser">Parses nameValue colection to database connection definition</param>
        public SQLServerConnectionStringBuilder(IConnectionDefinitionParser parser)
        {
            if (parser == null)
            {
                throw new ArgumentNullException("parser");
            }

            this.Definition = parser.ConnectionDefinition;
        }
        /// <summary>
        ///     Validates the Connection Definition.
        /// </summary>
        /// <param name="definition">The definition.</param>
        /// <param name="validationResult">The validation result.</param>
        /// <returns><c>true</c> if required fields are provided., <c>false</c> otherwise.</returns>
        /// <exception cref="System.NotImplementedException"></exception>
        public static bool ValidateDefinition(IDbConnectionDefinition definition, IList <ValidationResult> validationResult)
        {
            var members = new List <string>();

            if (string.IsNullOrWhiteSpace(definition.DataSource))
            {
                members.Add("DataSource");
            }

            if (string.IsNullOrWhiteSpace(definition.Database))
            {
                members.Add("Database");
            }

            if (!definition.IntegratedSecurity)
            {
                if (string.IsNullOrWhiteSpace(definition.UserName))
                {
                    members.Add("UserName");
                }

                if (string.IsNullOrWhiteSpace(definition.Password))
                {
                    members.Add("Password");
                }
            }

            if (members.Count == 0)
            {
                return(true);
            }

            validationResult.Add(new ValidationResult("DbConnectioDefinition is invalid.", members));

            return(false);
        }
 /// <summary>
 /// Builds from definiton.
 /// </summary>
 /// <param name="definition">The definition.</param>
 /// <returns></returns>
 public static SQLServerConnectionStringBuilder BuildFromDefiniton(IDbConnectionDefinition definition)
 {
     return(new SQLServerConnectionStringBuilder(definition));
 }
 /// <summary>
 ///     Creates an instance of SQLServerConnectionStringBuilder
 /// </summary>
 /// <param name="definition">Databse connection definition</param>
 protected SQLServerConnectionStringBuilder(IDbConnectionDefinition definition)
 {
     this.Definition = definition;
 }