public Article(Workspace workspace, WorkspaceRepository repository, string articleName) { m_workspace = workspace; m_repository = repository; Name = articleName; // Запрашиваем текст статьи у БД WorkspaceRepository.FinishedText originalFinishedText = m_repository.GetArticleText(Name); // Создаем оригинальный текст статьи OriginalText = new TextInLanguage(workspace.Language.Code, originalFinishedText.text, originalFinishedText.finished); CurrentArtisticalTranslation = null; UpdateTranslationUnits(); }
// Открывает художественный перевод по заданному языку. Если язык не присутсвует в списке языков для перевода, либо передан null, то // CurrentArtisticalTranslation будет установлен в null, в другом случае в CurrentArtisticalTranslation будет открыт перевод либо пустой вариант перевода (добавление нового перевода) public void OpenArtisticalTranslation(string languageCode) { // Если заданный язык null, либо не является языком для перевода if (languageCode == null || m_workspace.TranslationLanguages.First(lang => lang.Code == languageCode) == null) { CurrentArtisticalTranslation = null; return; } WorkspaceRepository.FinishedText finishedText = m_repository.GetArtisticalTranslaionText(Name, languageCode); // В случае, если перевода для этого языка еще нет, считаем как будто он есть, но с пустым текстом if (finishedText.text == null) { finishedText.text = string.Empty; finishedText.finished = false; } // Создаем текущий текст перевода CurrentArtisticalTranslation = new TextInLanguage(languageCode, finishedText.text, finishedText.finished); }