public WindowTeamCoding() { InitializeComponent(); _viewmodel = NinjectCore.Get <TeamCodingViewModel>(); DataContext = _viewmodel; }
public DbObjectRepository(string Owner, string name, string type) : base(Owner, name, type) { Seri.Log.Here().Debug($"Создаём объект DbObject. Owner={Owner}, name={name}, type={type}"); _settings = NinjectCore.Get <ISettings>(); if (string.IsNullOrWhiteSpace(Owner) || string.IsNullOrWhiteSpace(name) || string.IsNullOrWhiteSpace(type)) { throw new Exception("Не удалось распознать объект БД"); } if (Directory.Exists(GetRawDirPath())) { this.ObjectOwner = Helper.GetCaseSensitiveFolderName(GetRawDirPath()); } try { ObjectTypeItem = (eDbObjectType)Enum.Parse(typeof(eDbObjectType), type.Replace(" ", "").ToUpper(), true); } catch { throw new Exception($"Тип объекта: {type} - не поддерживается"); } FileExtension = Helper.FileExtension[ObjectTypeItem]; Seri.Log.Here().Verbose("FileExtension={0}", FileExtension); if (File.Exists(GetRawFilePath())) { FileName = Helper.GetCaseSensitiveFileName(GetRawFilePath()); } Seri.Log.Here().Verbose($"Конец конструктора DbObject"); }
public GitBlameViewModel(IEnumerable <string> lines) { ShowCommitCommand = NinjectCore.Get <CommandOpenCommitByURL>(); ListRuns = new List <Run>(); var ColorsByCommit = new Dictionary <string, SolidColorBrush>(); foreach (string line in lines) { string sha = GetShaFromLine(line); SolidColorBrush brush; if (ColorsByCommit.ContainsKey(sha)) { brush = ColorsByCommit[sha]; } else { int pos255 = random.Next(0, 3); byte colorR = pos255 == 0 ? (byte)255 : GenRGBVal(); byte colorG = pos255 == 1 ? (byte)255 : GenRGBVal(); byte colorB = pos255 == 2 ? (byte)255 : GenRGBVal(); brush = new SolidColorBrush(Color.FromRgb(colorR, colorG, colorB)); ColorsByCommit.Add(sha, brush); } ListRuns.Add(new Run(line + "\r\n") { Background = brush }); } }
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; }
public eTeamCodingChecksResult CheckBeforeOpen(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.Allow | 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; } else { var UserOwner = _TeamCodingProvider.GetUserOwner(dbObject, ServerName); Seri.Log.Here().Debug("UserOwner = " + UserOwner); if (!string.IsNullOrEmpty(UserOwner)) { ErrorMsg = $"Объект находится в пользовании у [{UserOwner}]"; answer |= eTeamCodingChecksResult.Restrict; } } } return(answer); }
public CmdBuilderGIT(ICmdReader reader, string gitRepPath = null) : base(reader) { ProcessFileName = DefaultGitExePath; _Settings = NinjectCore.Get <ISettings>(); GitRepPath = (gitRepPath == null) ? _Settings.GitRepositoryPath : gitRepPath; }
public WindowGitDiff(IDbObjectText DbObjectText) { InitializeComponent(); var param = NinjectCore.GetParameter("DbObjectText", DbObjectText); DataContext = NinjectCore.Get <GitDiffViewModel>(param); }
public WindowFtoggle(string SelectedText) { InitializeComponent(); var param = NinjectCore.GetParameter("SelectedText", SelectedText); DataContext = NinjectCore.Get <FtoggleViewModel>(param); }
public void CheckIn() { var dbObject = _IDEProvider.GetDbObject <IDbObject>(true); if (dbObject != null) { RunCommand(NinjectCore.Get <CommandCheckIn>(), dbObject); } }
public MainWindow() { InitializeComponent(); var x = NinjectCore.Get <IPluginSettingsStorage>(); var p = x.GetParam(Plugin.Settings.ePluginParameterID.TEAMCODING_FILEPROVIDER_PATH); p.SetValue("D:\\"); }
private void CheckSettings(TeamCodingFile file) { if (_Settings.TEAMCODING_RESTRICT_COMPILE_WITHOUT_CHECKOUT != file.RestrickCompileWithoutCheckOut) { var storage = NinjectCore.Get <IPluginSettingsStorage>(); var parameter = storage.GetParam(Settings.ePluginParameterID.TEAMCODING_RESTRICT_COMPILE_WITHOUT_CHECKOUT); parameter.SetValue <bool>(file.RestrickCompileWithoutCheckOut); MessageBox.Show($"В TeamCoding зафиксировано изменение настройки RestrickCompileWithoutCheckOut. " + $"Установлено значение [{file.RestrickCompileWithoutCheckOut}]", "Обновление настрйоки", MessageBoxButton.OK, MessageBoxImage.Warning); } }
static API() { try { _CallbackManager = NinjectCore.Get <ICallbackManager>(); _Menu = NinjectCore.Get <IMenu>(); _TeamCodingChecks = NinjectCore.Get <ITeamCodingChecks>(); } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.Source + "\r\n" + ex.StackTrace); Seri.Log.Here().Error(ex.Message + "\r\n" + ex.Source + "\r\n" + ex.StackTrace); throw; } }
public static void InitRepository() { Console.WriteLine($"Here we go! GitRepositoryPath: {GitRepPath}"); IPluginSettingsStorage SettingsStorage = NinjectCore.Get <IPluginSettingsStorage>(); IPluginParameter GitRepParam = SettingsStorage.GetParam(Plugin.Settings.ePluginParameterID.GitRepositoryPath); GitRepParam.SetValue(GitRepPath); repository = new GitRep(GitRepPath); repository.CreateRepository(); repository.AddFile(); repository.AddFile(); repository.StageAll(); repository.DoCommit("init commit"); }
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 CmdReader() { try { if (typeof(T).IsInterface) { Result = NinjectCore.Get <T>(); } else if (typeof(T).GetConstructor(Type.EmptyTypes) != null) { Result = Activator.CreateInstance <T>(); } else if (typeof(T) != typeof(string)) { Seri.Log.Here().Warning($"Для типа {typeof(T).Name} отсутствует конструктор по умолчанию!"); } } catch (MissingMethodException ex) { Seri.Log.Here().Error($"Выбран не совместимый тип [{typeof(T).Name}] для ридера [{this.GetType().Name}]"); throw ex; } }
public void ShowGitDiff() { RunCommand(NinjectCore.Get <CommandShowGitDiff>()); }
private void FillSettings() { _ListSettings = new List <IPluginParameter>(); #region Main group _ListSettings.Add(new PluginParameter <string>(ePluginParameterID.GitRepositoryPath, @"D:\Repo") { Description = "Репозиторий Git", DescriptionExt = "Необходимо указать расположение репозитрия Git с объектами DB", Group = ePluginParameterGroupType.Main, ParamterUIType = ePluginParameterUIType.Path, OrderPosition = 1 }); _ListSettings.Add(new PluginParameterList(ePluginParameterID.SaveEncodingType, 2, typeof(eSaveEncodingType)) { Description = "Кодировка по умолчанию", DescriptionExt = @"Файл в репозитории Git может иметь маркер кодировки UTF8 – BOM. BOM - Byte Order Mark, Маркер последовательности " + "байтов или метка порядка – специальный символ из стандарта Юникод, вставляемый в начало текстового файла или потока для обозначения того, " + "что в файле(потоке) используется Юникод, а также для косвенного указания кодировки и порядка байтов, " + "с помощью которых символы Юникода были закодированы. Рекомендуется не менять существующий формат.", Group = ePluginParameterGroupType.Main, ParamterUIType = ePluginParameterUIType.List, OrderPosition = 100 }); #endregion #region GitDiff group _ListSettings.Add(new PluginParameter <bool>(ePluginParameterID.DiffAddSchema, true) { Description = "Добавлять префикс схемы к названию объекта", DescriptionExt = "Эта настройка, дополняет предыдущую. При отсутствии схемы в названии объекта БД, она будет добавлена. (Такое встречается в файлах Git)", Group = ePluginParameterGroupType.GitDiff, OrderPosition = 30 }); _ListSettings.Add(new PluginParameter <bool>(ePluginParameterID.DiffChangeCor, true) { Description = "Игнорировать изменения до названия объекта", DescriptionExt = "Касается переноса после ‘Create or replace’ а также лишних пробелов, которые могут встречаться в файле Git и " + "отсутствовать в PL/SQL Developer. При включенной настройке, вы не увидите этих изменений в первых строках файла.", Group = ePluginParameterGroupType.GitDiff, OrderPosition = 10 }); _ListSettings.Add(new PluginParameter <bool>(ePluginParameterID.DiffChangeName, true) { Description = "Сохранять название объекта, как в git", DescriptionExt = "Название объекта БД открытого в PL/SQL Developer может не всегда совпадать с названием того же объекта в Git. " + "Если опция включена, название объекта всегда будет соответствовать версии названия в файле в репозитории Git.", Group = ePluginParameterGroupType.GitDiff, OrderPosition = 20 }); _ListSettings.Add(new PluginParameter <bool>(ePluginParameterID.DiffCRLF, true) { Description = "Обрабатывать перенос строк LF", DescriptionExt = "В PL/SQL Developer применяется стандартный для Windows перенос строк в два символа CR-LF (“Carriage Return” и “Line Feed”). " + "Если в локальном файле репозитория Git, перенос строк реализован через один символ LF (пока такое встречается редко), то при включённой опции, " + "CR-LF в тексте объекта БД будет заменено на LF. Это позволит избежать конфликтов в каждой строчке текста. Так же эту проблему можно решить, " + "если в настрйоках Git установить переменную autocrlf в true(выполнить git config--global core.autocrlf true)", Group = ePluginParameterGroupType.GitDiff, OrderPosition = 50 }); _ListSettings.Add(new PluginParameter <bool>(ePluginParameterID.DiffWorkWithSlash, true) { Description = "Обрабатывать '/' в конце файла", DescriptionExt = "Текст в файлах в репозитории Git заканчивается на ‘/’. Обработка этого символа предотвращает его " + "затирание при операции сохранения текста. А также убирает этот символ при операции загрузки текста.", Group = ePluginParameterGroupType.GitDiff, OrderPosition = 40 }); _ListSettings.Add(new PluginParameter <bool>(ePluginParameterID.DiffEndSpace, true) { Description = "Игн. изменения пробелов в конце строк", DescriptionExt = "Изменения в виде пробелов на конце строк не будут отображаться при сравнении, но будут фиксироваться в комите, " + "если вы не загрузили исходный текст объекта перед работой. Настрйока повилась, после интеграции " + "конвейерной системы релизов, которая очевидно делает то же самое.", Group = ePluginParameterGroupType.GitDiff, OrderPosition = 60 }); #endregion #region Warning group _ListSettings.Add(new PluginParameter <bool>(ePluginParameterID.UnexpectedBranch, true) { Description = "Проверка ветки при сохранении текста в репозиторий", DescriptionExt = "При сохранении текста объекта в репозитории, если название ветки не совпадает с соответствующим регулярным выражением " + "– появится предупреждение, во избежание отправки изменений не в ту ветку.", Group = ePluginParameterGroupType.Warning, OrderPosition = 10 }); _ListSettings.Add(new PluginParameter <bool>(ePluginParameterID.UnexpectedServer, true) { Description = "Проверка сервера при загрузки текста в PL/SQL Developer", DescriptionExt = "При загрузке текста в PL/SQL Developer, если название сервера не совпадает с соответствующим регулярным выражением – " + "появится предупреждение, во избежание изменения объекта БД не на том сервере", Group = ePluginParameterGroupType.Warning, OrderPosition = 20 }); _ListSettings.Add(new PluginParameter <string>(ePluginParameterID.WarnInRegEx, string.Empty) { Description = "Регулярное выражение, для проверки операции SaveText", DescriptionExt = string.Empty, Group = ePluginParameterGroupType.Warning, ParentParameterID = ePluginParameterID.UnexpectedBranch, OrderPosition = 11 }); _ListSettings.Add(new PluginParameter <string>(ePluginParameterID.WarnOutRegEx, string.Empty) { Description = "Регулярное выражение, для проверки операции LoadText", DescriptionExt = string.Empty, Group = ePluginParameterGroupType.Warning, ParentParameterID = ePluginParameterID.UnexpectedServer, OrderPosition = 21 }); #endregion #region Blame Group _ListSettings.Add(new PluginParameter <bool>(ePluginParameterID.ShowGitBlameProperties, true) { Description = "Запрашивать настройки для команды GitBlame", DescriptionExt = "Если опция включена, то перед операцией GitBlame можно будет выбрать кол-во строк которое будет обработано. Если же отклчить настройку, то по умолчанию обработаются только 10 строк", Group = ePluginParameterGroupType.Blame, OrderPosition = 10 }); var CommitViewURL = _DefaultConfiguration.SelectToken("CommitViewURL").ToString(); if (string.IsNullOrEmpty(CommitViewURL)) { CommitViewURL = "https://www.google.com/search?q="; } _ListSettings.Add(new PluginParameter <string>(ePluginParameterID.CommitViewURL, CommitViewURL) { Description = "URL для запуска информации по коммиту", DescriptionExt = "В окне GitBlame при запросе информации по комиту будет переход по этой ссылки. (К этой ссылке в конце будет добавлен sha комита)", Group = ePluginParameterGroupType.Blame, OrderPosition = 20 }); #endregion #region Others group _ListSettings.Add(new PluginParameter <bool>(ePluginParameterID.ClassicButtonsPosition, false) { Description = "Классическое расположение кнопок в окне Gitt Diff", DescriptionExt = string.Empty, Group = ePluginParameterGroupType.Others, OrderPosition = 10 }); _ListSettings.Add(new PluginParameter <bool>(ePluginParameterID.DICTI_CHILDREN_LIMIT_ENABLE, true) { Description = "Включить ограничение для отбора дочерних записей из Dicti", Group = ePluginParameterGroupType.Others, OrderPosition = 20 }); _ListSettings.Add(new PluginParameter <int>(ePluginParameterID.DICTI_CHILDREN_LIMIT_VALUE, 20) { Description = "Лимит на кол0во отобранных дочерних записей для Dicti", Group = ePluginParameterGroupType.Others, ParentParameterID = ePluginParameterID.DICTI_CHILDREN_LIMIT_ENABLE, OrderPosition = 20 }); #endregion #region SQL Group _ListSettings.Add(new PluginParameter <string>(ePluginParameterID.SQL_DICTI_PARENT_COUNT, _DefaultConfiguration.SelectToken("SQL_DICTI_PARENT_COUNT").ToString()) { Group = ePluginParameterGroupType.SQL }); _ListSettings.Add(new PluginParameter <string>(ePluginParameterID.SQL_DICTI_PARENT, _DefaultConfiguration.SelectToken("SQL_DICTI_PARENT").ToString()) { Group = ePluginParameterGroupType.SQL }); _ListSettings.Add(new PluginParameter <string>(ePluginParameterID.SQL_DICTI_HIERARCHY, _DefaultConfiguration.SelectToken("SQL_DICTI_HIERARCHY").ToString()) { Group = ePluginParameterGroupType.SQL }); _ListSettings.Add(new PluginParameter <string>(ePluginParameterID.SQL_DICTIISN_BY_CONSTNAME, _DefaultConfiguration.SelectToken("SQL_DICTIISN_BY_CONSTNAME").ToString()) { Group = ePluginParameterGroupType.SQL }); _ListSettings.Add(new PluginParameter <string>(ePluginParameterID.SQL_SERVERNAME, _DefaultConfiguration.SelectToken("SQL_SERVERNAME").ToString()) { Group = ePluginParameterGroupType.SQL }); _ListSettings.Add(new PluginParameter <string>(ePluginParameterID.SQL_FTOGGLE, _DefaultConfiguration.SelectToken("SQL_FTOGGLE").ToString()) { Group = ePluginParameterGroupType.SQL }); #endregion #region TeamCoding Group _ListSettings.Add(new PluginParameter <bool>(ePluginParameterID.TEAMCODING_ENABLE, false) { Description = "Вкл. TeamCoding", DescriptionExt = "TeamCoding позволяет команде работать на одном сервере. Добавляет возможность делать CheckOut, CheckIn для объектов", Group = ePluginParameterGroupType.TeamCoding, OrderPosition = 10, OnParameterChanged = (x) => { var menu = NinjectCore.Get <IMenu>(); menu.RefreshMenu(); } }); _ListSettings.Add(new PluginParameter <string>(ePluginParameterID.TEAMCODING_LOGIN, string.Empty) { Description = "Логин", DescriptionExt = "Ваше имя под которым объекты БД будут браться в пользование", Group = ePluginParameterGroupType.TeamCoding, ParentParameterID = ePluginParameterID.TEAMCODING_ENABLE, OrderPosition = 20 }); _ListSettings.Add(new PluginParameter <bool>(ePluginParameterID.TEAMCODING_RESTRICT_COMPILE_WITHOUT_CHECKOUT, false) { Description = "Запретить компиляцию без CheckOut", DescriptionExt = "Если объект в настоящий момет никем не занят, можно разрешить его компилировать без CheckOut. " + "Эта настройка общая, изменения распространится на всех участников TEAMCODING. " + "Пожалуйста договоритесь с командой о политиках работы на общей среде прежде чем менять настрйоку", Group = ePluginParameterGroupType.TeamCoding, ParentParameterID = ePluginParameterID.TEAMCODING_ENABLE, OrderPosition = 25, OnParameterChanged = (x) => { ITeamCodingProvider provider = NinjectCore.Get <ITeamCodingProvider>(); provider.RestrickCompileWithoutCheckOut = x; } }); _ListSettings.Add(new PluginParameterList(ePluginParameterID.TEAMCODING_PROVIDER, 0, typeof(eTeamCodingProviderType)) { Description = "Провайдер для TeamCoding-а", DescriptionExt = "Вариант обмена информацией между несколькими пользователями PL/SQL Developer. Для того что-бы команды была в одной \"сети\", " + "У всех должны быть одинаковые настройки.\n" + "Общий файл на диске - файл размешенный в сетевой папке к которому есть доступ у каждого участника. " + "При операции CheckOut в этот файл добавится информация, что пользователь <Логин> взял в пользование такой объект БД. " + "Другие участники при обращении к этому объекту БД, будут видеть предупреждение, что объект в настоящий момент занят.", Group = ePluginParameterGroupType.TeamCoding, ParentParameterID = ePluginParameterID.TEAMCODING_ENABLE, OrderPosition = 30, OnParameterChanged = (x) => NinjectCore.SetTeamCodingProvider((eTeamCodingProviderType)x) }); _ListSettings.Add(new PluginParameter <string>(ePluginParameterID.TEAMCODING_FILEPROVIDER_PATH, string.Empty) { Description = "Путь для общего файла", ParamterUIType = ePluginParameterUIType.Path, Group = ePluginParameterGroupType.TeamCoding, ParentParameterID = ePluginParameterID.TEAMCODING_PROVIDER, ParentParameterStringValue = "0", OrderPosition = 40 }); _ListSettings.Add(new PluginParameter <string>(ePluginParameterID.TEAMCODING_SERVERNAME_REGEX, string.Empty) { Description = "Название рабочего сервера", DescriptionExt = "Регулярное выражение для имени сервера, который должен быть подключен к TeamCoding", Group = ePluginParameterGroupType.TeamCoding, ParentParameterID = ePluginParameterID.TEAMCODING_ENABLE, OrderPosition = 50 }); #endregion }
public void ShowSettings() { RunCommand(NinjectCore.Get <CommandShowSettings>()); }
public void ShowGitBlame() { RunCommand(NinjectCore.Get <CommandShowGitBlame>()); }
public void ShowDicti() { RunCommand(NinjectCore.Get <CommandShowDicti>()); }
public WindowSettings() { InitializeComponent(); DataContext = NinjectCore.Get <SettingsViewModel>(); }
public void LoadTextFromRepository(TextOperationsParametrs param = null) { RunCommand(NinjectCore.Get <CommandLoadTextFromRepository>(), param); }
public void ShowTeamCoding() { RunCommand(NinjectCore.Get <CommandShowTeamCoding>()); }
public void ShowFtoggle() { RunCommand(NinjectCore.Get <CommandShowFtoggle>()); }
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); }
public void SaveTextToRepository(TextOperationsParametrs param = null) { RunCommand(NinjectCore.Get <CommandSaveTextToRepository>(), param); }