예제 #1
0
        public IDbSession Open(AbstractDataSource dataSource)
        {
            var dbSession = Open();

            dbSession.SetDataSource(dataSource);
            return(dbSession);
        }
예제 #2
0
 protected override void OnApply(AbstractDataSource dataSource)
 {
     if (slider == null)
     {
         Debug.LogWarning("Slider is null!");
         return;
     }
     if (minValue.bind)
     {
         dataSource.SetData(minValue.key.Value, slider.minValue, this, (s, e) => { if (!s)
                                                                                   {
                                                                                       Debug.LogWarning(e);
                                                                                   }
                            });
     }
     if (maxValue.bind)
     {
         dataSource.SetData(maxValue.key.Value, slider.maxValue, this, (s, e) => { if (!s)
                                                                                   {
                                                                                       Debug.LogWarning(e);
                                                                                   }
                            });
     }
     if (value.bind)
     {
         dataSource.SetData(value.key.Value, slider.value, this, (s, e) => { if (!s)
                                                                             {
                                                                                 Debug.LogWarning(e);
                                                                             }
                            });
     }
 }
예제 #3
0
 protected override AbstractDataSource <MySqlDataReader> GetDataSource()
 {
     if (DataSource == null)
     {
         DataSource = new VoIP();
     }
     return(DataSource);
 }
예제 #4
0
 protected override AbstractDataSource <SqliteDataReader> GetDataSource()
 {
     if (DataSource == null)
     {
         DataSource = new LocalSqlite();
     }
     return(DataSource);
 }
예제 #5
0
        public AbstractDataSource Elect(AbstractRequestContext context)
        {
            AbstractDataSource dataSource = !String.IsNullOrEmpty(context.ReadDb) ? FindByDbName(context) : FindDefault(context);

            if (dataSource == null)
            {
                throw new SmartSqlException($"Statement.Id:{context.FullSqlId},can not find ReadDb:{context.ReadDb} .");
            }
            if (_logger.IsEnabled(LogLevel.Debug))
            {
                _logger.LogDebug($"IgnoreDataSourceChoiceFilter GetDataSource Choice: {dataSource.Name} .");
            }
            return(dataSource);
        }
예제 #6
0
 protected override void OnBind(AbstractDataSource dataSource)
 {
     if (slider == null)
     {
         Debug.LogWarning("Slider is null!");
         return;
     }
     if (minValue.bind)
     {
         dataSource.GetData <float>(minValue.key.Value, this, (val, e, s) =>
         {
             if (s)
             {
                 slider.minValue = val;
             }
             else
             {
                 Debug.LogWarning(e);
             }
         });
     }
     if (maxValue.bind)
     {
         dataSource.GetData <float>(maxValue.key.Value, this, (val, e, s) =>
         {
             if (s)
             {
                 slider.maxValue = val;
             }
             else
             {
                 Debug.LogWarning(e);
             }
         });
     }
     if (value.bind)
     {
         dataSource.GetData <float>(value.key.Value, this, (val, e, s) =>
         {
             if (s)
             {
                 slider.value = val;
             }
             else
             {
                 Debug.LogWarning(e);
             }
         });
     }
 }
예제 #7
0
 internal static void VerifyState <T>(
     AbstractDataSource <T> dataSource,
     bool isClosed,
     bool isFinished,
     bool hasResult,
     T result,
     bool hasFailed,
     Exception failureCause)
 {
     Assert.IsTrue(isClosed == dataSource.IsClosed());
     Assert.IsTrue(isFinished == dataSource.IsFinished());
     Assert.IsTrue(hasResult == dataSource.HasResult());
     Assert.AreSame(result, dataSource.GetResult());
     Assert.IsTrue(hasFailed == dataSource.HasFailed());
     Assert.AreSame(failureCause, dataSource.GetFailureCause());
 }
        public static AbstractDataSource BuildDataSource(int documentId)
        {
            AbstractDataSource dataSource = null;

            switch (documentId)
            {
            case 0:
                dataSource = new LocalDataSource();
                break;

            case 1:
                dataSource = new RemoteDataSource();
                break;
            }

            return(dataSource);
        }
        protected IEnumerable <T1> Query(string sql)
        {
            AbstractDataSource <T2> datasource = GetDataSource();

            try
            {
                T2         reader  = datasource.Open(sql);
                IList <T1> results = new List <T1>();
                while (reader.Read())
                {
                    T1 entity = ToEntity(reader);
                    results.Add(entity);
                }
                return(results);
            }
            finally { datasource.Close(); }
        }
예제 #10
0
        private AbstractDataSource FindDefault(AbstractRequestContext context)
        {
            var database = context.ExecutionContext.SmartSqlConfig.Database;
            AbstractDataSource dataSource = null;

            if (context.DataSourceChoice == DataSourceChoice.Write)
            {
                dataSource = database.Write;
            }
            else if (database.Reads != null)
            {
                var seekList = database.Reads.Select(readDataSource => new WeightFilter <ReadDataSource> .WeightSource
                {
                    Source = readDataSource.Value,
                    Weight = readDataSource.Value.Weight
                });
                dataSource = _weightFilter.Elect(seekList).Source;
            }
            return(dataSource);
        }
예제 #11
0
 public void SetDataSource(AbstractDataSource dataSource)
 {
     DataSource = dataSource;
 }
예제 #12
0
 public void Serialize(string str)
 {
     dataSource = new DataSource(str);
 }