Ejemplo n.º 1
0
        private void ClearDownloadCache_Click(object sender, EventArgs args)
        {
            var result = MachineCache.Default.Clear();

            if (result)
            {
                UIServices.Show("The NuGet download cache has been cleared successfully.", MessageLevel.Information);
            }
            else
            {
                UIServices.Show("The NuGet download cache does not exist.", MessageLevel.Information);
            }
        }
Ejemplo n.º 2
0
        private void ViewDownloadCache_Click(object sender, EventArgs args)
        {
            var cacheSource = MachineCache.Default.Source;

            if (Directory.Exists(cacheSource))
            {
                Process.Start(cacheSource);
            }
            else
            {
                UIServices.Show("The NuGet download cache does not exist.", MessageLevel.Information);
            }
        }
Ejemplo n.º 3
0
        private bool OpenLocalPackageCore(string packagePath)
        {
            IPackage package = null;

            var tempFile = Path.GetTempFileName();

            try
            {
                File.Copy(packagePath, tempFile, overwrite: true);

                var extension = Path.GetExtension(packagePath);
                if (extension.Equals(Constants.PackageExtension, StringComparison.OrdinalIgnoreCase))
                {
                    package = new ZipPackage(tempFile);
                }
                else if (extension.Equals(Constants.ManifestExtension, StringComparison.OrdinalIgnoreCase))
                {
                    using (var str = ManifestUtility.ReadManifest(tempFile))
                    {
                        var builder = new PackageBuilder(str, Path.GetDirectoryName(packagePath));
                        package = builder.Build();
                    }
                }

                if (package != null)
                {
                    LoadPackage(package, packagePath, PackageType.LocalPackage);
                    _tempFile = tempFile;
                    return(true);
                }
            }
            catch (Exception ex)
            {
                package = null;
                UIServices.Show(ex.Message, MessageLevel.Error);
                return(false);
            }
            finally
            {
                if (package == null && File.Exists(tempFile))
                {
                    try
                    {
                        File.Delete(tempFile);
                    }
                    catch { /* ignore */ }
                }
            }

            return(false);
        }
        private async void OnPackageDownloadRequested(object sender, EventArgs e)
        {
            DiagnosticsClient.TrackEvent("PackageChooserService_OnPackageDownloadRequested");

            var vm          = (PackageChooserViewModel)sender;
            var repository  = vm.ActiveRepository;
            var packageInfo = vm.SelectedPackage;

            if (packageInfo != null && repository != null)
            {
                var          packageName = packageInfo.Id + "." + packageInfo.Version + NuGetPe.Constants.PackageExtension;
                var          title       = "Save " + packageName;
                const string filter      = "NuGet package file (*.nupkg)|*.nupkg|NuGet Symbols package file (*.snupkg)|*.snupkg|All files (*.*)|*.*";

                var accepted = UIServices.OpenSaveFileDialog(
                    title,
                    packageName,
                    null,
                    filter,
                    overwritePrompt: true,
                    selectedFilePath: out var selectedFilePath,
                    selectedFilterIndex: out var selectedIndex);

                if (accepted)
                {
                    if (selectedIndex == 1 &&
                        !selectedFilePath.EndsWith(NuGetPe.Constants.PackageExtension, StringComparison.OrdinalIgnoreCase))
                    {
                        selectedFilePath += NuGetPe.Constants.PackageExtension;
                    }
                    else if (selectedIndex == 2 &&
                             !selectedFilePath.EndsWith(NuGetPe.Constants.SymbolPackageExtension, StringComparison.OrdinalIgnoreCase))
                    {
                        selectedFilePath += NuGetPe.Constants.SymbolPackageExtension;
                    }

                    try
                    {
                        await PackageDownloader.Download(selectedFilePath, repository, packageInfo.Identity);
                    }
                    catch (Exception ex)
                    {
                        UIServices.Show(ex.Message, MessageLevel.Error);
                    }
                }
            }
        }
Ejemplo n.º 5
0
        private async void LoadPackage(IPackage package, string packagePath, string packageSource, PackageType packageType)
        {
            DisposeViewModel();

            if (package != null)
            {
                if (!HasLoadedContent <PackageViewer>())
                {
                    var packageViewer = new PackageViewer(SettingsManager, UIServices, PackageChooser);
                    var binding       = new Binding
                    {
                        Converter     = new NullToVisibilityConverter(),
                        FallbackValue = Visibility.Collapsed
                    };
                    packageViewer.SetBinding(VisibilityProperty, binding);

                    MainContentContainer.Children.Add(packageViewer);

#if !HAS_UNO
                    // HACK HACK: set the Export of IPackageMetadataEditor here
                    EditorService = packageViewer.PackageMetadataEditor;
#endif
                }

                try
                {
                    var packageViewModel = await PackageViewModelFactory.CreateViewModel(package, packagePath, packageSource);

                    packageViewModel.PropertyChanged += OnPackageViewModelPropertyChanged;

                    DataContext = packageViewModel;
                    if (!string.IsNullOrEmpty(packageSource))
                    {
                        _mruManager.NotifyFileAdded(package, packageSource, packageType);
                    }
                }
                catch (Exception e)
                {
                    if (!(e is ArgumentException))
                    {
                        DiagnosticsClient.TrackException(e);
                    }
                    Console.WriteLine(e);
                    UIServices.Show($"Error loading package\n{e.Message}", MessageLevel.Error);
                }
            }
        }
Ejemplo n.º 6
0
        internal async Task OpenLocalPackage(string packagePath)
        {
            if (!File.Exists(packagePath))
            {
                UIServices.Show("File not found at " + packagePath, MessageLevel.Error);
                return;
            }

            object oldContent = PackageSourceItem.Content;

            PackageSourceItem.SetCurrentValue(ContentProperty, "Loading " + packagePath + "...");

            bool succeeded = await Dispatcher.InvokeAsync(
                () => OpenLocalPackageCore(packagePath), DispatcherPriority.Loaded);

            if (!succeeded)
            {
                // restore old content
                PackageSourceItem.SetCurrentValue(ContentProperty, oldContent);
            }
        }
        private async void LoadPackage(IPackage package, string packagePath, PackageType packageType)
        {
            DisposeViewModel();

            if (package != null)
            {
                if (!HasLoadedContent <PackageViewer>())
                {
                    var packageViewer = new PackageViewer(UIServices, PackageChooser);
                    var binding       = new Binding
                    {
                        Converter     = new NullToVisibilityConverter(),
                        FallbackValue = Visibility.Collapsed
                    };
                    packageViewer.SetBinding(VisibilityProperty, binding);

                    MainContentContainer.Children.Add(packageViewer);

                    // HACK HACK: set the Export of IPackageMetadataEditor here
                    EditorService = packageViewer.PackageMetadataEditor;
                }

                try
                {
                    PackageViewModel packageViewModel = await PackageViewModelFactory.CreateViewModel(package, packagePath);

                    packageViewModel.PropertyChanged += OnPackageViewModelPropertyChanged;

                    DataContext = packageViewModel;
                    if (!String.IsNullOrEmpty(packagePath))
                    {
                        _mruManager.NotifyFileAdded(package, packagePath, packageType);
                    }
                }
                catch (Exception e)
                {
                    UIServices.Show($"Error loading package\n{e.Message}", MessageLevel.Error);
                }
            }
        }
Ejemplo n.º 8
0
        internal async Task OpenLocalPackage(string packagePath)
        {
            DiagnosticsClient.TrackEvent("MainWindow_OpenLocalPackage");

            if (!File.Exists(packagePath))
            {
                UIServices.Show("File not found at " + packagePath, MessageLevel.Error);
                return;
            }

            //var oldContent = PackageSourceItem.Content;
            //PackageSourceItem.SetCurrentValue(ContentProperty, "Loading " + packagePath + "...");

            await Dispatcher.RunAsync(
                CoreDispatcherPriority.Normal,
                () => OpenLocalPackageCore(packagePath));

            //if (!succeeded)
            //{
            //    // restore old content
            //    PackageSourceItem.SetCurrentValue(ContentProperty, oldContent);
            //}
        }
Ejemplo n.º 9
0
 private void OnError(Exception error)
 {
     UIServices.Show((error.InnerException ?? error).Message, MessageLevel.Error);
 }