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 CreateListing(ControlledProject project)
 {
     try
     {
         var fData = ScanFolder(project.WorkingDirectory);
         if (fData != null)
         {
             if (!Directory.Exists(project.DocumentDirectory))
             {
                 Directory.CreateDirectory(project.DocumentDirectory);
             }
             File.WriteAllLines(Path.Combine(project.DocumentDirectory, "Листинг.txt"), fData.ToArray());
         }
     }
     catch (Exception ex)
     {
         MainClass.OnErrorInLibrary(string.Format("Ошибка создания листинга проекта {0}: {1}", project.Name, ex.Message));
     }
 }
        internal static Task <ControlledProject> AddNewProject()
        {
            Project = new ControlledProject();
            TaskCompletionSource <ControlledProject> tsc = new TaskCompletionSource <ControlledProject>();
            ProjectInfoWindow window = new ProjectInfoWindow()
            {
                Owner = App.Current.MainWindow
            };

            window.Closing += delegate
            {
                if (window.DialogResult == true)
                {
                    tsc.SetResult(Project);
                }
                else
                {
                    tsc.SetResult(null);
                }
            };
            window.ShowDialog();
            return(tsc.Task);
        }
        internal static Task <ControlledProject> UpdateProjectInfo(ControlledProject prj)
        {
            Project = prj.Clone() as ControlledProject;
            //Project = ObjectCopier.CloneJson(prj);
            TaskCompletionSource <ControlledProject> tsc = new TaskCompletionSource <ControlledProject>();
            ProjectInfoWindow window = new ProjectInfoWindow()
            {
                Owner = App.Current.MainWindow
            };

            window.Closing += delegate
            {
                if (window.DialogResult == true)
                {
                    tsc.SetResult(Project);
                }
                else
                {
                    tsc.SetResult(prj);
                }
            };
            window.ShowDialog();
            return(tsc.Task);
        }