internal static Task <ControlledApp> AddNewApp(ControlledProject prj)
        {
            CApp = new ControlledApp()
            {
                Parent = prj
            };
            //Project = ObjectCopier.CloneJson(prj);
            TaskCompletionSource <ControlledApp> tsc = new TaskCompletionSource <ControlledApp>();
            AppInfoWindow window = new AppInfoWindow()
            {
                Owner = App.Current.MainWindow
            };

            window.Closing += delegate
            {
                if (window.DialogResult == true)
                {
                    tsc.SetResult(CApp);
                }
                else
                {
                    tsc.SetResult(null);
                }
            };
            window.ShowDialog();
            return(tsc.Task);
        }
        public static void EditApp(object appToEdit)
        {
            TempApp = (ControlledApp)appToEdit;
            ManageAppWindow window = new ManageAppWindow();

            window.Owner = App.Current.MainWindow;
            if (window.ShowDialog() == true)
            {
                StorageService.Save();
            }
            else
            {
                StorageService.Get();
            }
            TempApp = new ControlledApp();
        }
        public static void AddApp()
        {
            ManageAppWindow window = new ManageAppWindow();

            window.Owner = App.Current.MainWindow;
            if (window.ShowDialog() == true)
            {
                StorageService.Apps.Add(ControlledApp.AddApp(TempApp.Name, TempApp.WorkingReleasePath, TempApp.ReleasePath, TempApp.ReestrPath, StorageService.Apps.Count));
                StorageService.Save();
            }
            else
            {
                StorageService.Get();
            }
            TempApp = new ControlledApp();
        }
Пример #4
0
        /// <summary>
        /// Создать заявку на анализ защищенности приложения
        /// </summary>
        /// <param name="app">Приложение</param>
        public static void CreateRequest(ControlledApp app)
        {
            try
            {
                var wordApp  = Common.GetApplication();
                var document = Common.OpenDoc(wordApp, Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Res", "Sample request.docx"));
                document.Paragraphs[1].Range.Text = string.Format("Дата: {0}\r\n", DateTime.Now.ToString("dd.MM.yyyy"));
                //Меняем название программы в шапке
                var rest          = 60 - app.Name.Length;
                var appNameString = "";
                for (int i = 0; i < (int)(rest / 2); i++)
                {
                    appNameString += "_";
                }
                appNameString += app.Name;
                for (int i = 0; i < (int)(rest / 2); i++)
                {
                    appNameString += "_";
                }
                document.Paragraphs[10].Range.Text             = string.Format("{0} в составе\r\n", appNameString);
                document.Paragraphs[10].Range.Font.Bold        = 0;
                document.Paragraphs[10].Range.Font.Underline   = Word.WdUnderline.wdUnderlineSingle;
                document.Paragraphs[10].Format.Alignment       = Word.WdParagraphAlignment.wdAlignParagraphCenter;
                document.Paragraphs[10].Format.LeftIndent      = 0;
                document.Paragraphs[10].Format.FirstLineIndent = 0;
                object unit;
                object count;
                object extend;
                //перемещаем курсор в начало документа
                unit   = Word.WdUnits.wdStory;
                extend = Word.WdMovementType.wdMove;
                wordApp.Selection.HomeKey(ref unit, ref extend);
                //перемещаем курсор в начало 10 параграфа
                unit   = Word.WdUnits.wdParagraph;
                count  = 9;
                extend = Word.WdMovementType.wdMove;
                wordApp.Selection.MoveDown(ref unit, ref count, ref extend);
                //перемещаем курсор до слова "в составе"
                unit   = Word.WdUnits.wdCharacter;
                count  = 60;
                extend = Word.WdMovementType.wdMove;
                wordApp.Selection.MoveRight(ref unit, ref count, ref extend);
                //выделяем нужные слова
                unit   = Word.WdUnits.wdWord;
                count  = 2;
                extend = Word.WdMovementType.wdExtend;
                wordApp.Selection.MoveRight(ref unit, ref count, ref extend);
                //меняем стиль выделения
                wordApp.Selection.Font.Bold      = 2;
                wordApp.Selection.Font.Underline = Word.WdUnderline.wdUnderlineNone;

                //Меняем название МПСА в шапке
                string saName = "Система автоматики";
                rest = 70 - saName.Length;
                var saString = "";
                for (int i = 0; i < (int)(rest / 2); i++)
                {
                    saString += "_";
                }
                saString += saName;
                for (int i = 0; i < (int)(rest / 2); i++)
                {
                    saString += "_";
                }
                document.Paragraphs[12].Range.Text             = string.Format("{0}\r\n", saString);
                document.Paragraphs[12].Range.Font.Bold        = 0;
                document.Paragraphs[12].Range.Font.Underline   = Word.WdUnderline.wdUnderlineSingle;
                document.Paragraphs[12].Format.Alignment       = Word.WdParagraphAlignment.wdAlignParagraphCenter;
                document.Paragraphs[12].Format.LeftIndent      = 0;
                document.Paragraphs[12].Format.FirstLineIndent = 0;

                //Меняем Имя приложения в таблице
                document.Paragraphs[19].Range.Text = string.Format("{0}", app.Name);

                //Меняем версию ппо
                document.Paragraphs[23].Range.Text = string.Format("{0}", app.MainFileReleaseVersion);

                //меняем разработчика
                document.Paragraphs[27].Range.Text = string.Format("{0}", "АО \"НПО \"Спецэлектромеханика\"");

                //меняем контрольную сумму
                document.Paragraphs[31].Range.Text = string.Format("{0}", app.MainFileReleaseHash);

                //меняем дату выпуска ППО
                document.Paragraphs[35].Range.Text = string.Format("{0}", app.MainFileReleaseDate.Remove(app.MainFileReleaseDate.IndexOf(" ")));

                //меняем описание ППО
                document.Paragraphs[39].Range.Text = string.Format("{0}", app.Description);

                if (!Directory.Exists(app.DocumentDirectory))
                {
                    Directory.CreateDirectory(app.DocumentDirectory);
                }
                Common.SaveDocument(document, Path.Combine(app.DocumentDirectory, "Заявка.docx"));

                Common.CloseApp(wordApp);
            }
            catch (Exception ex)
            {
                MainClass.OnErrorInLibrary(string.Format("Ошибка создания заявки для приложения {0}: {1}", app.Name, ex.Message));
            }
        }
Пример #5
0
        /// <summary>
        /// Создать описание принятых решений приложения
        /// </summary>
        /// <param name="app">Приложение</param>
        public static void CreateFormular(ControlledApp app)
        {
            try
            {
                Word.Application wordApp = Common.GetApplication();
                var document             = Common.OpenDoc(wordApp, Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Res", "Sample formular.docx"));

                #region  едактирование документа
                MoveToStart(wordApp);

                //Заголовок программы
                document.Paragraphs[1].Range.Text       = string.Format("{0}\r\n", app.Name);
                document.Paragraphs[1].Range.Font.Bold  = 2;
                document.Paragraphs[1].Format.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
                //1.1 Тип ППО
                WriteLineInFormular(wordApp, document, 4, app.Parent.Task.ToString());
                //1.2 Категория ППО
                WriteLineInFormular(wordApp, document, 5, app.Parent.Category.ToString());
                //1.3.2 Назначение каждого из звеньев
                WriteLineInFormular(wordApp, document, 8, app.Description);
                //1.3.3 Исполняемые среды каждого из звеньев
                WriteLineInFormular(wordApp, document, 9, app.Platform);
                //1.4.2 Назначение каждого из приложений
                WriteLineInFormular(wordApp, document, 13, app.Description);
                //2.1 Совместимые ОС с указанием версий
                WriteLineInFormular(wordApp, document, 16, app.CompatibleOSs);
                //2.2 Совместимые SCADA с указанием версий
                WriteLineInFormular(wordApp, document, 17, app.CompatibleScadas);
                //2.3 Совместимые СЗИ с указанием версий
                WriteLineInFormular(wordApp, document, 18, app.CompatibleSZI);
                //2.4 Другие необходимые типы ПО
                WriteLineInFormular(wordApp, document, 19, app.OtherSoft);
                //3.1 Тип идентификации и аутентификации
                WriteLineInFormular(wordApp, document, 21, app.IdentificationType);
                //3.2 Тип авторизации
                WriteLineInFormular(wordApp, document, 22, app.AuthorizationType);
                //3.3 Предполагаемые категории пользователей
                WriteLineInFormular(wordApp, document, 23, app.UserCategories);
                //4.1 Состав разделяемых и локально хранимых данных
                WriteLineInFormular(wordApp, document, 26, app.LocalData);
                //4.2 Используемая СУБД
                WriteLineInFormular(wordApp, document, 27, app.SUBD);
                //4.4 Используемые механизмы с средства хранения локальных данных
                WriteLineInFormular(wordApp, document, 29, app.DataStoringMechanism);
                //5.2 Компоненты и платформы, используемые для функционирования
                WriteLineInFormular(wordApp, document, 32, app.FunctionalComponents);
                //5.3 Компоненты и платформы, используемые для сборки
                WriteLineInFormular(wordApp, document, 33, app.BuildingComponents);
                //5.4 Средства предоставления отчетности
                WriteLineInFormular(wordApp, document, 34, app.Report);
                //6.2 Тип установщика
                WriteLineInFormular(wordApp, document, 36, app.Installer);
                #endregion
                if (!Directory.Exists(app.DocumentDirectory))
                {
                    Directory.CreateDirectory(app.DocumentDirectory);
                }
                Common.SaveDocument(document, Path.Combine(app.DocumentDirectory, "Описание принятых решений.docx"));
                Common.CloseApp(wordApp);
            }
            catch (Exception ex)
            {
                MainClass.OnErrorInLibrary(string.Format("Ошибка создания описания принятых решений для приложения {0}: {1}", app.Name, ex.Message));
            }
        }