public GitDiffViewModel(IDbObjectText DbObjectText, IIDEProvider IDE, IGitAPI Git, IWarnings Warnings, ISettings Settings) { _DbObjectText = DbObjectText; IDiffText DiffText = Git.GitDiff(DbObjectText); FillDocument(DiffText); CurrentBranch = Git.GetCurrentBranch(); CurrentDataBase = IDE.GetDatabaseConnection(); ObjectDescrName = DbObjectText.DescriptionName; ObjectFullPath = DbObjectText.GetRawFilePath(); if (Settings.UnexpectedBranch) { UnexpectedBranch = Warnings.IsBranchUnexsepted(CurrentBranch, true); } if (Settings.UnexpectedServer) { UnexpectedServer = Warnings.IsServerUnexsepted(CurrentDataBase, true); } SaveTextCommand = NinjectCore.Get <CommandSaveTextToRepository>(); LoadTextCommand = NinjectCore.Get <CommandLoadTextFromRepository>(); ButtonsClassicStyle = Settings.ClassicButtonsPosition; }
private void SaveText() { if (_DbObjectText == null) { _DbObjectText = _IDEProvider.GetDbObject <IDbObjectText>(); } else { _DbObjectText.DirectoriesChecks(); } if (_BranchName == null) { _BranchName = _GitAPI.GetCurrentBranch(); } if (_Warnings.IsBranchUnexsepted(_BranchName)) { return; } string FilePath = _DbObjectText.GetRawFilePath(); Seri.Log.Here().Debug("FilePath={0}", FilePath); File.WriteAllText(FilePath, _DbObjectText.Text, _DbObjectText.GetSaveEncoding()); _IDEProvider.SetStatusMessage($"Объект БД сохранён в: {FilePath}"); }
private void LoadText() { if (_DbObjectText == null) { _DbObjectText = _IDEProvider.GetDbObject <IDbObjectText>(); } else { _DbObjectText.DirectoriesChecks(); } if (_ServerName == null) { _ServerName = _IDEProvider.GetDatabaseConnection(); } if (_Warnings.IsServerUnexsepted(_ServerName)) { return; } string FilePath = _DbObjectText.GetRawFilePath(); Seri.Log.Here().Debug("FilePath={0}", FilePath); string LocalText = File.ReadAllText(FilePath); _PlsqlCodeFormatter.RemoveSlash(ref LocalText); _IDEProvider.SetText(LocalText); _IDEProvider.SetStatusMessage($"Объект БД загружен из: {FilePath}"); }
public override void Execute(object parameter) { IDbObjectText dbObj = _IDEProvider.GetDbObject <IDbObjectText>(); WindowGitDiff WindowGitDiff = new WindowGitDiff(dbObj); WindowGitDiff.Show(); }
public WindowGitDiff(IDbObjectText DbObjectText) { InitializeComponent(); var param = NinjectCore.GetParameter("DbObjectText", DbObjectText); DataContext = NinjectCore.Get <GitDiffViewModel>(param); }
public override void Execute(object parameter) { // Поулчаем объект БД открытый в PL/SQL Developer IDbObjectText DbObjectText = _IIDEProveider.GetDbObject <DbObjectTextRaw>(); // Получаем номер строки, на которой установлен курсор int CurrentLineNumber = _IIDEProveider.GetCurrentLine(); // Получаем номер соответствющей строки в репозитории int?RepositoryLineNumber = _GitAPI.GitDiffLineNumber(DbObjectText, CurrentLineNumber); if (RepositoryLineNumber != null) { int ValMinus = 5; int ValPlus = 5; if (_Settings.ShowGitBlameProperties) { string[] TextLines = DbObjectText.Text.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries); WindowGitBlameProperties wgbp = new WindowGitBlameProperties(TextLines[(int)CurrentLineNumber - 1]); bool?result = wgbp.ShowDialog(); if (result != null && (bool)result) { ValMinus = wgbp.OutputValMinus; ValPlus = wgbp.OutputValPlus; } else { return; } } var lines = _GitAPI.GitBlame <List <string> >(DbObjectText.RepName, Math.Max(1, (int)RepositoryLineNumber - ValMinus), (int)RepositoryLineNumber + ValPlus); WindowGitBlame wgb = new WindowGitBlame(lines); wgb.Show(); } else { MessageBox.Show("В репозитории не найдена данная строка (Если строка не является новой, попробуйте поменять ветку)", "Не найдена строка в репозитории", MessageBoxButton.OK, MessageBoxImage.Warning); } }
public override void Execute(object parameter) { _CanExecute = false; try { if (parameter != null && parameter is TextOperationsParametrs TextParam) { _DbObjectText = TextParam.DbObjectText; _BranchName = TextParam.StringParam; } SaveText(); } catch (Exception ex) { throw ex; } finally { _CanExecute = true; } }
public CmdReqGitDiff(IDbObjectText dbObj, ICmdReader reader = null) : base(reader ?? new CmdReadDiffText()) { _dbObj = dbObj; }
public IDiffText GitDiff(IDbObjectText dbObject) { return(PerformProcess <IDiffText>(new CmdReqGitDiff(dbObject))); }
public int?GitDiffLineNumber(IDbObjectText dbObject, int SearchedLineNumber) { return(PerformProcess <int?>(new CmdReqGitDiff(dbObject, new CmdReadDiffLineNumber(SearchedLineNumber)))); }