public void CheckOut() { var dbObject = _IDEProvider.GetDbObject <IDbObject>(true); if (dbObject != null) { RunCommand(NinjectCore.Get <CommandCheckOut>(), dbObject); } }
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 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 TeamCodingViewModel(ITeamCodingProvider TeamCodingProvider, IIDEProvider IDEProvider, ISettings Settings) { _TeamCodingProvider = TeamCodingProvider; UserLogin = Settings.TEAMCODING_LOGIN; DbObject = IDEProvider.GetDbObject <DbObject>(true); if (DbObject == null) { DbObject = new DbObject("SIA", "LOLKEK", "PACKAGE"); } CheckInSource = NinjectCore.Get <CommandCheckIn>(); CheckOutSource = NinjectCore.Get <CommandCheckOut>(); CheckInCommand = new RelayCommand(CheckIn, CheckInSource.CanExecute); CheckOutCommand = new RelayCommand(CheckOut, CheckOutSource.CanExecute); CheckOutList = new ObservableCollection <ICheckOutObject>(); FillCheckOutList(); }
public eTeamCodingChecksResult CheckBeforeCompile(out string ErrorMsg) { eTeamCodingChecksResult answer = eTeamCodingChecksResult.None; ErrorMsg = string.Empty; Seri.Log.Here().Debug("Начинаем проверку перед компиляцией"); // Проверяем включен ли TeamCoding if (!_Settings.TEAMCODING_ENABLE) { Seri.Log.Here().Debug("TeamCoding отключен, пропускаем все проверки"); answer |= eTeamCodingChecksResult.Allow; } else { // Пробуем загрузить провайдера TeamCoding try { if (_TeamCodingProvider == null) { _TeamCodingProvider = NinjectCore.Get <ITeamCodingProvider>(); } } catch (Exception ex) { // При загрузке провайдера были ошибки Seri.LogException(ex); ErrorMsg = ex.Message; // Запрещаем компилировать объект answer |= eTeamCodingChecksResult.Restrict | eTeamCodingChecksResult.ProviderNotSet; return(answer); } // Текущий сервер var ServerName = _IDEProvider.SQLQueryExecute <DummyString>(_Settings.SQL_SERVERNAME)[0].Value; Seri.Log.Here().Debug("ServerName = " + ServerName); // Текущий объект var dbObject = _IDEProvider.GetDbObject <DbObject>(true); Seri.Log.Here().Debug($"dbObject {dbObject}"); if (dbObject == null) { // Если объет не определн, пропускам answer |= eTeamCodingChecksResult.Allow; Seri.Log.Here().Warning("Перед компиляцией не смогли определить объект, почему? (Не должны здесть оказаться)"); } else { // Текущий владелец объекта по версии Team Coding-а var UserOwner = _TeamCodingProvider.GetUserOwner(dbObject, ServerName); Seri.Log.Here().Debug("UserOwner = " + UserOwner); // Владельца нет if (string.IsNullOrEmpty(UserOwner)) { // Проверяем можем ли мы компилировать без CheckOut if (_Settings.TEAMCODING_RESTRICT_COMPILE_WITHOUT_CHECKOUT) { ErrorMsg = "Запрещено компилировать объект без CheckOut"; answer |= eTeamCodingChecksResult.Restrict; } else { answer |= eTeamCodingChecksResult.Allow; } } else { // Владелец есть, и это МЫ if (UserOwner == _Settings.TEAMCODING_LOGIN) { answer |= eTeamCodingChecksResult.Allow; } else { ErrorMsg = $"Невозможно скомпилировать. Объект находится в пользовании [{UserOwner}]"; answer |= eTeamCodingChecksResult.Restrict; } } } } return(answer); }