private async Task Build(IEnumerable <BuildItem> items, DatabaseSetting dbSetting, DvcsScriptRepositoryBase.RevisionIdentifierBase sourceChangeset) { using (var connection = new SqlConnection(dbSetting.ConnectionString)) { await connection.OpenAsync(); using (var transaction = connection.BeginTransaction()) { var db = dbSetting.Create(connection, transaction); if (await db.BuildAsync(items)) { transaction.Commit(); } } } await DispatcherInvoke(() => { ((MainWindowViewModel)DataContext).IsReady = true; ((MainWindowViewModel)DataContext).IsDone = true; var vm = ((MainWindowViewModel)DataContext); Properties.Settings.Default.LastChangeset = vm.SourceChangeset as DvcsScriptRepositoryBase.ChangesetId; Properties.Settings.Default.LastTag = vm.SourceChangeset as DvcsScriptRepositoryBase.Tag; Properties.Settings.Default.Save(); }); }
private async Task Update(DatabaseSetting dbSetting, DvcsScriptRepositoryBase.RevisionIdentifierBase sourceChangeset) { ICollection <BuildItem> buildItems; using (var connection = new SqlConnection(dbSetting.ConnectionString)) { await connection.OpenAsync(); using (var transaction = connection.BeginTransaction()) { var fileSystem = new FileSystem(); var db = dbSetting.Create(connection, transaction); var gitProcess = new ExternalProcess(pathToGit.FullName); var dvcsScriptRepo = new GitScriptRepository(dbSetting.ScriptsPath, dbSetting.ServerName, dbSetting.DatabaseName, gitProcess, fileSystem, sqlParser, new ConsoleLogger(SeverityLevel.Warning), false); dvcsScriptRepo.SourceChangeset = sourceChangeset; buildItems = await db.GetChangedBuildItemsAsync(dvcsScriptRepo); transaction.Commit(); } } await DispatcherInvoke(() => { ((MainWindowViewModel)DataContext).IsReady = true; ((MainWindowViewModel)DataContext).IsDone = false; ObservableCollection <BuildItemViewModel> itemsCollection = new ObservableCollection <BuildItemViewModel> (buildItems.Select(x => new BuildItemViewModel(x, Dispatcher))); ((MainWindowViewModel)DataContext).Items = itemsCollection; }); }