private async Task <CConfiguration> ReLoadAndSaveQueries(CDataset dataSet) { var ds = Configuration.Datasource.FirstOrDefault(dsrc => dsrc.name.Equals(dataSet.dataSourceName)); var schema = await _dataSourceProvider.GetStoreProcsSchema(ds); if (!string.IsNullOrEmpty(schema)) { var builder = XmlBuilder.BuildQueryElements(ds, schema); if (null != builder) { var config = XmlHelper <CConfiguration> .LoadFromString(builder.ToString()); var currentConfig = XmlHelper <CConfiguration> .Load(DefaultStoreProcsConfigFile); _schedulerProvider.MainThread.Schedule(() => { var currentDataset = currentConfig.Dataset.FirstOrDefault(d => d.name.Equals(dataSet.name)); var scripts = currentDataset.Query.Where(q => q.isScript).ToList(); currentDataset.Query.Clear(); currentDataset.Query.AddRange(config.Dataset.FirstOrDefault().Query); currentDataset.Query.AddRange(scripts); XmlHelper <CConfiguration> .Save(DefaultStoreProcsConfigFile, currentConfig); }); return(currentConfig); } } return(new CConfiguration()); }
private async Task <CConfiguration> LoadAndSaveQueries(CDatasource ds, string datasetName) { var schema = await _dataSourceProvider.GetStoreProcsSchema(ds); if (!string.IsNullOrEmpty(schema)) { var builder = XmlBuilder.BuildQueryElements(ds, schema); if (null != builder) { var config = XmlHelper <CConfiguration> .LoadFromString(builder.ToString()); if (!File.Exists(DefaultStoreProcsConfigFile)) { XmlHelper <CConfiguration> .Save(DefaultStoreProcsConfigFile, config); } else { config.Dataset.FirstOrDefault().dataSourceName = datasetName; config.Dataset.FirstOrDefault().name = datasetName; config.Datasource.FirstOrDefault().name = datasetName; var currentConfig = XmlHelper <CConfiguration> .Load(DefaultStoreProcsConfigFile); currentConfig.Datasource.Add(config.Datasource.FirstOrDefault()); currentConfig.Dataset.Add(config.Dataset.FirstOrDefault()); XmlHelper <CConfiguration> .Save(DefaultStoreProcsConfigFile, currentConfig); return(currentConfig); } return(config); } } return(new CConfiguration()); }