public bool IsSettingForDatabase(DatabaseSetting db)
 {
     if (db == null)
     {
         return(false);
     }
     if (!ServerName.Equals(db.ServerName, StringComparison.InvariantCultureIgnoreCase))
     {
         return(false);
     }
     if (!DatabaseName.Equals(db.DatabaseName, StringComparison.InvariantCultureIgnoreCase))
     {
         return(false);
     }
     if (!ConnectionString.Equals(db.ConnectionString, StringComparison.InvariantCultureIgnoreCase))
     {
         return(false);
     }
     if (!ConnectionString.Equals(db.ConnectionString, StringComparison.InvariantCultureIgnoreCase))
     {
         return(false);
     }
     return((new DirectoryInfo(ScriptsPath)).FullName.Equals((new DirectoryInfo(db.ScriptsPath)).FullName, StringComparison.InvariantCultureIgnoreCase));
 }
 public bool IsSettingForDatabase(DatabaseSetting db)
 {
     if(db == null)
     {
         return false;
     }
     if(!ServerName.Equals(db.ServerName, StringComparison.InvariantCultureIgnoreCase))
     {
         return false;
     }
     if(!DatabaseName.Equals(db.DatabaseName, StringComparison.InvariantCultureIgnoreCase))
     {
         return false;
     }
     if (!ConnectionString.Equals(db.ConnectionString, StringComparison.InvariantCultureIgnoreCase))
     {
         return false;
     }
     if (!ConnectionString.Equals(db.ConnectionString, StringComparison.InvariantCultureIgnoreCase))
     {
         return false;
     }
     return (new DirectoryInfo(ScriptsPath)).FullName.Equals((new DirectoryInfo(db.ScriptsPath)).FullName, StringComparison.InvariantCultureIgnoreCase);
 }
 public AddDatabaseViewModel()
 {
     Database = new DatabaseSetting();
 }
        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;
            });
        }