Exemplo n.º 1
0
        /// <summary>
        /// Сгенерировать текст нового объекта
        /// </summary>
        /// <param name="splitterObjectType"></param>
        /// <param name="param"></param>
        public void RunSplit(eSplitterObjectType splitterObjectType, eSplitParam param)
        {
            string FinalObjectText = string.Empty;

            // Получаем текст объекта
            switch (splitterObjectType)
            {
            case eSplitterObjectType.OldSpec: FinalObjectText = RunSplitOldSpec(); break;

            case eSplitterObjectType.OldBody: FinalObjectText = RunSplitOldBody(); break;

            case eSplitterObjectType.NewSpec: FinalObjectText = RunSplitNewSpec(param.HasFlag(eSplitParam.GenerateHeader)); break;

            case eSplitterObjectType.NewBody: FinalObjectText = RunSplitNewBody(param.HasFlag(eSplitParam.GenerateHeader)); break;

            default:
                break;
            }

            // Заменяем двойные пробелы - одинарными
            FinalObjectText = Regex.Replace(FinalObjectText, "\r\n\\s*\r\n\\s*\r\n", "\r\n\r\n");

            // Копируем текст в буфер
            if (param.HasFlag(eSplitParam.CopyToClipBoard))
            {
                Clipboard.SetText(FinalObjectText);
            }

            // Открываем текст в новом окне
            if (param.HasFlag(eSplitParam.OpenNewWindow))
            {
                TextWindow tw = new TextWindow(FinalObjectText);
                tw.Show();
            }

            // Обновляем репозиторий
            if (param.HasFlag(eSplitParam.DirectlyUpdateRep))
            {
                RepositoryObject repositoryObject;
                if (splitterObjectType.IsNew())
                {
                    repositoryObject = new RepositoryObject(Config.Instanse().NewPackageName, Config.Instanse().NewPackageOwner, splitterObjectType.IsSpec() ? eRepositoryObjectType.Package_Spec : eRepositoryObjectType.Package_Body);
                }
                else
                {
                    repositoryObject = splitterObjectType.IsSpec() ? _package.repositoryPackage.GetObjectSpec() : _package.repositoryPackage.GetObjectBody();

                    /* Мы должны одновременно обновить в репозитории и спеку и тело
                     * Последовательно мы это сделать не можем, так как генерация текста зависит от обоих частей
                     * Обновляем соседнюю часть:
                     */
                    var SecondParttext = splitterObjectType.IsSpec() ? RunSplitOldBody() : RunSplitOldSpec();
                    var SecondPartObj  = splitterObjectType.IsSpec() ? _package.repositoryPackage.GetObjectBody() : _package.repositoryPackage.GetObjectSpec();
                    DBRep.Instance().SaveTextToFile(SecondParttext, SecondPartObj);
                }

                DBRep.Instance().SaveTextToFile(FinalObjectText, repositoryObject);
            }
        }
Exemplo n.º 2
0
        public void SaveTextToFile(string text, RepositoryObject repositoryObject)
        {
            var ownerPath = Path.Combine(RepositoryPath, repositoryObject.Owner);

            if (!Directory.Exists(ownerPath))
            {
                Directory.CreateDirectory(ownerPath);
            }
            File.WriteAllText(repositoryObject.RepFullPath, text);
        }
Exemplo n.º 3
0
        public static void ReadFileLines()
        {
            RepositoryObject obj = new RepositoryObject("text13k", "source", eRepositoryObjectType.Text);
            DBRep            rep = DBRep.Instance();

            rep.RepositoryPath = AppDomain.CurrentDomain.BaseDirectory;
            string s = DBRep.Instance().GetTextOfFile(obj, 10, 18);

            Console.WriteLine(s);

            Assert.Pass();
        }
Exemplo n.º 4
0
            public override bool Equals(object obj)
            {
                RepositoryObject other = obj as RepositoryObject;

                if (other == null)
                {
                    return(false);
                }

                return(key.Equals(other.key) &&
                       hash.Equals(other.hash));
            }
Exemplo n.º 5
0
 public string GetTextOfFile(RepositoryObject file, int LineBeg, int LineEnd, int?LastPos = null)
 {
     return(GetTextOfFile(file.RepFullPath, LineBeg, LineEnd, LastPos));
 }