public void SecondCleanupFixesBrokenFirstCleanup()
        {
            StreamWriter writer = null;
            string       parent;

            try
            {
                using (var tempFiles = new TemporaryFiles(MockBuilder.StatelessServiceContext(),
                                                          NullLogger <TemporaryFiles> .Instance))
                {
                    tempFiles.Initialize();
                    string testPath = tempFiles.GetFilePath("asdfpoiu");
                    writer = File.CreateText(testPath);
                }
            }
            finally
            {
                writer?.Dispose();
            }

            using (var tempFiles = new TemporaryFiles(MockBuilder.StatelessServiceContext(),
                                                      NullLogger <TemporaryFiles> .Instance))
            {
                tempFiles.Initialize();
                string testPath = tempFiles.GetFilePath("asdfpoiu");
                parent = Path.GetDirectoryName(testPath);
            }

            Directory.Exists(parent).Should().BeFalse();
        }
示例#2
0
 public LocalGit(TemporaryFiles tempFiles, IConfiguration configuration, OperationManager operations, ILogger <LocalGit> logger)
 {
     _tempFiles     = tempFiles;
     _configuration = configuration;
     _logger        = logger;
     _operations    = operations;
 }
示例#3
0
        public MainWindow()
        {
            InitializeComponent();

            TemporaryFiles.DeleteAllPreviouslyUsed();
            foreach (var page_number in PageNumberPanel.Children)
            {
                page_number_buttons.Add(page_number as Button);
            }
            initialize_page();

            SearchText.GotFocus  += SearchText_GotFocus;
            SearchText.LostFocus += SearchText_LostFocus;

            ResultList.DataContext = new GalleryDataGridViewModel();
            ResultList.Sorting    += new DataGridSortingEventHandler(new DataGridSorter <GalleryDataGridItemViewModel>(ResultList).SortHandler);
            logic = new AutoCompleteLogic(algorithm, SearchText, AutoComplete, AutoCompleteList);

#if DEBUG
            Logger.Instance.Push("Welcome to DCInside Gallery Explorer!");
            Core.Console.Instance.Start();
#endif
            Closed += MainWindow_Closed;

            Instance       = this;
            timer.Interval = new TimeSpan(0, 0, 2);

            ServicePointManager.DefaultConnectionLimit  = int.MaxValue;
            AppDomain.CurrentDomain.UnhandledException += (s, e) =>
            {
                Logger.Instance.PushError("unhandled: " + (e.ExceptionObject as Exception).ToString());
            };
        }
 public void PreInitializeIsNoop()
 {
     using (var tempFiles = new TemporaryFiles(MockBuilder.StatelessServiceContext(),
                                               NullLogger <TemporaryFiles> .Instance))
     {
         string testPath = tempFiles.GetFilePath("asdfpoiu");
         string parent   = Path.GetDirectoryName(testPath);
         Directory.Exists(parent).Should().BeFalse();
     }
 }
 public void InitializeCreatedRoot()
 {
     using (var tempFiles = new TemporaryFiles(MockBuilder.StatelessServiceContext(),
                                               NullLogger <TemporaryFiles> .Instance))
     {
         tempFiles.Initialize();
         string testPath = tempFiles.GetFilePath("asdfpoiu");
         string parent   = Path.GetDirectoryName(testPath);
         Assert.True(Directory.Exists(parent));
     }
 }
示例#6
0
        public static string GetBinary(string name)
        {
            var fileName = Path.GetTempFileName();

            using (var fileStream = File.OpenWrite(fileName))
                using (var resourceStream = GetBinaryStream(name))
                {
                    resourceStream.CopyTo(fileStream);
                }
            TemporaryFiles.Add(fileName);
            return(fileName);
        }
示例#7
0
        public static string GetBinary(string name)
        {
            var fileName = Path.GetTempFileName();

            using (var fileStream = File.OpenWrite(fileName))
                using (var resourceStream = typeof(Utilities).Assembly.GetManifestResourceStream(ResourcesPrefix + name))
                {
                    resourceStream.CopyTo(fileStream);
                }
            TemporaryFiles.Add(fileName);
            return(fileName);
        }
 private void MainWindow_Closed(object sender, EventArgs e)
 {
     if (Logger.IsValueCreated)
     {
         if (Logger.Instance.ControlEnable)
         {
             Core.Console.Instance.Stop();
         }
     }
     TemporaryFiles.DeleteAllPreviouslyUsed();
     Application.Current.Shutdown();
     Process.GetCurrentProcess().Kill();
 }
 private static void CleanTempFolderForTest()
 {
     using (var tempFiles = new TemporaryFiles(MockBuilder.StatelessServiceContext(),
                                               NullLogger <TemporaryFiles> .Instance))
     {
         tempFiles.Initialize();
         string testPath = tempFiles.GetFilePath("asdfpoiu");
         string parent   = Path.GetDirectoryName(testPath);
         if (Directory.Exists(parent))
         {
             Directory.Delete(parent);
         }
     }
 }
示例#10
0
        /// <summary>
        /// Removes all unmanaged files
        /// </summary>
        public void Dispose()
        {
            foreach (var file in TemporaryFiles)
            {
                if (file.Exists)
                {
                    file.Delete();
                }
            }
            TemporaryDirectory.Delete();

            TemporaryDirectory = null;
            TemporaryFiles.Clear();
        }
示例#11
0
 public DarcRemoteFactory(
     IConfiguration configuration,
     IGitHubTokenProvider gitHubTokenProvider,
     IAzureDevOpsTokenProvider azureDevOpsTokenProvider,
     DarcRemoteMemoryCache memoryCache,
     BuildAssetRegistryContext context,
     TemporaryFiles tempFiles)
 {
     _tempFiles               = tempFiles;
     Configuration            = configuration;
     GitHubTokenProvider      = gitHubTokenProvider;
     AzureDevOpsTokenProvider = azureDevOpsTokenProvider;
     Cache   = memoryCache;
     Context = context;
 }
        public void DisposeCleansUp()
        {
            string parent;

            using (var tempFiles = new TemporaryFiles(MockBuilder.StatelessServiceContext(),
                                                      NullLogger <TemporaryFiles> .Instance))
            {
                tempFiles.Initialize();
                string testPath = tempFiles.GetFilePath("asdfpoiu");
                File.WriteAllText(testPath, "Test content");
                parent = Path.GetDirectoryName(testPath);
            }

            Directory.Exists(parent).Should().BeFalse();
        }
示例#13
0
        private void ThumbnailItem_Loaded(object sender, RoutedEventArgs e)
        {
            if (loaded)
            {
                return;
            }
            loaded = true;

            switch (Article.type)
            {
            case "icon_recomimg":
            case "icon_pic":
                Icon.Kind = MaterialDesignThemes.Wpf.PackIconKind.Image;
                break;

            default:
                Icon.Kind = MaterialDesignThemes.Wpf.PackIconKind.Pen;
                break;
            }

            if (Article.type == "icon_pic" || Article.type == "icon_recomimg")
            {
                Task.Run(() =>
                {
                    var html = NetTools.DownloadString(URL);
                    if (html == null || html == "")
                    {
                        Extends.Post(() =>
                        {
                            Icon.Kind = MaterialDesignThemes.Wpf.PackIconKind.TrashCanOutline;
                        });
                        return;
                    }
                    downloaded_article = DCInsideUtils.ParseBoardView(html);
                    if (downloaded_article.ImagesLink.Count == 0)
                    {
                        return;
                    }
                    temp_file = TemporaryFiles.UseNew();
                    NetTools.DownloadFile(downloaded_article.ImagesLink[0], temp_file);

                    Extends.Post(() => AnimationBehavior.SetSourceUri(Image, new Uri(temp_file)));
                });
            }
        }
示例#14
0
        /// <summary>
        /// Extracts the archive resource to a temporary location.
        /// </summary>
        /// <param name="archiveName"></param>
        /// <returns>Directory in which the files are extracted to</returns>
        public DirectoryInfo ExtractArchive(string archiveName)
        {
            if (TemporaryDirectory == null)
            {
                TemporaryDirectory = CurrentDir.CreateSubdirectory("temp");
            }

            var archiveStream = GetArchiveResourceStream(archiveName);
            var archive       = new FileInfo(Path.Combine(TemporaryDirectory.FullName, archiveName));

            archiveStream.WriteBytesToFile(archive);
            TemporaryFiles.Add(archive);

            archive.Extract(TemporaryDirectory);
            TemporaryFiles.AddRange(TemporaryDirectory.GetFiles());

            return(TemporaryDirectory);
        }
示例#15
0
 public DarcRemoteFactory(
     IConfiguration configuration,
     IGitHubTokenProvider gitHubTokenProvider,
     IAzureDevOpsTokenProvider azureDevOpsTokenProvider,
     DarcRemoteMemoryCache memoryCache,
     BuildAssetRegistryContext context,
     TemporaryFiles tempFiles,
     ILocalGit localGit,
     OperationManager operations)
 {
     _tempFiles                = tempFiles;
     _localGit                 = localGit;
     _operations               = operations;
     _configuration            = configuration;
     _gitHubTokenProvider      = gitHubTokenProvider;
     _azureDevOpsTokenProvider = azureDevOpsTokenProvider;
     _cache   = memoryCache;
     _context = context;
 }
示例#16
0
        //bool opened = false;
        private void UserControl_MouseUp(object sender, MouseButtonEventArgs e)
        {
            if (downloaded_article == null || downloaded_article.ImagesLink.Count == 1)
            {
                return;
            }
            image_index = (image_index + 1) % downloaded_article.ImagesLink.Count;

            Task.Run(() =>
            {
                temp_file = TemporaryFiles.UseNew();
                NetTools.DownloadFile(downloaded_article.ImagesLink[image_index], temp_file);

                Extends.Post(() => AnimationBehavior.SetSourceUri(Image, new Uri(temp_file)));
            });

            //if (!opened)
            //{
            //    //opened = true;
            //    //if (Icon.Kind == PackIconKind.TrashCanOutline)
            //    //{
            //    //    opened = false;
            //    //    return;
            //    //}
            //    //if (downloaded_article == null)
            //    //{
            //    //    var html = NetTools.DownloadString(URL);
            //    //    if (html == null || html == "")
            //    //    {
            //    //        opened = false;
            //    //        return;
            //    //    }
            //    //    downloaded_article = DCInsideUtils.ParseBoardView(html);
            //    //}
            //    ////var bv = new BodyView(downloaded_article);
            //    ////await DialogHost.Show(bv, "RootDialog");
            //    //opened = false;
            //}
            //else
            //    DialogHost.CloseDialogCommand.Execute(null, null);
        }
        public void CleanupResilientToOpenHandles()
        {
            StreamWriter writer = null;

            try
            {
                string parent;
                using (var tempFiles = new TemporaryFiles(MockBuilder.StatelessServiceContext(),
                                                          NullLogger <TemporaryFiles> .Instance))
                {
                    tempFiles.Initialize();
                    string testPath = tempFiles.GetFilePath("asdfpoiu");
                    writer = File.CreateText(testPath);
                    parent = Path.GetDirectoryName(testPath);
                }

                Directory.Exists(parent).Should().BeTrue();
            }
            finally
            {
                writer?.Dispose();
            }
        }