private List <T> Map <T>(SqlDataReader reader, ConfigProvader config)
        {
            var parsed = Parse(reader);
            var ans    = new List <T>();

            foreach (var dict in parsed)
            {
                ans.Add(config.Map <T>(dict));
            }
            return(ans);
        }
        private async Task <List <T> > MapAsync <T>(SqlDataReader reader, ConfigProvader config)
        {
            var parsed = await ParseAsync(reader);

            var ans = new List <T>();

            foreach (var dict in parsed)
            {
                ans.Add(config.Map <T>(dict));
            }
            return(ans);
        }
        public DataAccess(Model.DataManagerOptions.ConnectionOptions options)
        {
            config = new ConfigProvader();

            string connectionString = $"Data Source={options.DataSource};" +
                                      $" Initial catalog={options.InitialCatalog};" +
                                      $" User={options.User};" +
                                      $" Password={options.Password};" +
                                      $" Integrated Security={options.IntegratedSecurity}";

            using (var scope = new TransactionScope())
            {
                connection = new SqlConnection(connectionString);
                connection.Open();
                scope.Complete();
            }
        }