Exemple #1
0
        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;
        }
Exemple #2
0
        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}");
        }
Exemple #3
0
        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();
        }
Exemple #5
0
        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);
            }
        }
Exemple #7
0
 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;
     }
 }
Exemple #8
0
 public CmdReqGitDiff(IDbObjectText dbObj, ICmdReader reader = null) : base(reader ?? new CmdReadDiffText())
 {
     _dbObj = dbObj;
 }
Exemple #9
0
 public IDiffText GitDiff(IDbObjectText dbObject)
 {
     return(PerformProcess <IDiffText>(new CmdReqGitDiff(dbObject)));
 }
Exemple #10
0
 public int?GitDiffLineNumber(IDbObjectText dbObject, int SearchedLineNumber)
 {
     return(PerformProcess <int?>(new CmdReqGitDiff(dbObject, new CmdReadDiffLineNumber(SearchedLineNumber))));
 }