コード例 #1
0
        private async Task CleanupAsync(TargetFtpConfig targetFtp, LastRunConfig lastRun, List <FileInfo> files)
        {
            if (lastRun == null)
            {
                return;
            }

            using (var helper = IFtpFactory.CleanupHelper(targetFtp))
            {
                IOutputConsole.ClearLine();
                IOutputConsole.Write("cleanup...");

                helper.DidCleanup += (sender, remoteFile) =>
                {
                    IOutputConsole.ClearLine();
                    IOutputConsole.Write($"cleanup [{remoteFile}]");
                };

                helper.Error += (sender, remoteFile) =>
                {
                    IOutputConsole.ClearLine();
                    IOutputConsole.Write($"error [{remoteFile}]");
                };

                await helper.DeleteNotContainedFiles(lastRun, files);
            }
        }
コード例 #2
0
 private void LogEnvironmentVariableOverride(string flightName, string variableName, string variableValue)
 {
     NuGetUIThreadHelper.JoinableTaskFactory.RunAsync(async() =>
     {
         IOutputConsole console = await _outputConsoleProvider.Value.CreatePackageManagerConsoleAsync();
         await console.WriteLineAsync(string.Format(CultureInfo.CurrentUICulture, Resources.ExperimentVariableOverrideLogText, flightName, variableName, variableValue));
     }).PostOnFailure(nameof(NuGetExperimentationService), nameof(LogEnvironmentVariableOverride));
 }
コード例 #3
0
        public async Task StartAsync(
            RestoreOperationSource operationSource,
            Lazy <ErrorListTableDataSource> errorListDataSource,
            JoinableTaskFactory jtf,
            CancellationTokenSource cts)
        {
            Assumes.Present(errorListDataSource);
            Assumes.Present(jtf);
            Assumes.Present(cts);

            _operationSource     = operationSource;
            _errorListDataSource = errorListDataSource;

            _jtc         = jtf.Context.CreateCollection();
            _taskFactory = jtf.Context.CreateFactory(_jtc);

            _externalCts = cts;
            _externalCts.Token.Register(() => _cancelled = true);

#if VS14
            _progressFactory = t => WaitDialogProgress.StartAsync(_serviceProvider, _taskFactory, t);
#else
            _progressFactory = t => StatusBarProgress.StartAsync(_serviceProvider, _taskFactory, t);
#endif

            await _taskFactory.RunAsync(async() =>
            {
                await _taskFactory.SwitchToMainThreadAsync();

                OutputVerbosity = GetMSBuildOutputVerbositySetting();

                switch (_operationSource)
                {
                case RestoreOperationSource.Implicit:     // background auto-restore
                    _outputConsole = _outputConsoleProvider.CreatePackageManagerConsole();
                    break;

                case RestoreOperationSource.OnBuild:
                    _outputConsole = _outputConsoleProvider.CreateBuildOutputConsole();
                    _outputConsole.Activate();
                    break;

                case RestoreOperationSource.Explicit:
                    _outputConsole = _outputConsoleProvider.CreatePackageManagerConsole();
                    _outputConsole.Activate();
                    _outputConsole.Clear();
                    break;
                }
            });

            if (_errorListDataSource.IsValueCreated)
            {
                // Clear old entries
                _errorListDataSource.Value.ClearNuGetEntries();
            }
        }
コード例 #4
0
        private static void PrintUserInfo(IOutputConsole OutputProvider)
        {
            string USER_KEY  = RegHelper.ROOT_KEY + @"\UserInfo";
            string firstName = (string)RegHelper.GetRegValue(USER_KEY, "firstname", 0);
            string lastName  = (string)RegHelper.GetRegValue(USER_KEY, "lastname", 0);
            string company   = (string)RegHelper.GetRegValue(USER_KEY, "company", 0);
            string email     = (string)RegHelper.GetRegValue(USER_KEY, "email", 0);

            OutputProvider.WriteLine("This product is registered to \nUser\t:\t" + firstName + " " + lastName + "\nEmail\t:\t" + email + "\nCompany\t:\t" + company);
        }
コード例 #5
0
ファイル: ToolsUtil.cs プロジェクト: shozibabbas/NCache
        public static void PrintLogo(IOutputConsole outputProvider, bool printLogo, string TOOLNAME)


        {
            if (printLogo)
            {
                string logo = @"Alachisoft (R) NCache Utility " + TOOLNAME + ". Version NCache Open Source 4.9" + @"
Copyright (C) Alachisoft 2018. All rights reserved.";

                outputProvider.WriteLine(logo + "\n");
            }
        }
コード例 #6
0
ファイル: ToolsUtil.cs プロジェクト: nonomal/NCache
        public static void PrintLogo(IOutputConsole outputProvider, bool printLogo, string TOOLNAME)


        {
            if (printLogo)
            {
                string logo = @"Alachisoft (R) NCache Utility " + TOOLNAME + ". Version NCache Open Source 5.0 SP5" +
                              @"
Copyright (C) Alachisoft 2021. All rights reserved.";

                outputProvider.WriteLine(logo);
                outputProvider.WriteLine(Environment.NewLine);
            }
        }
コード例 #7
0
        public async Task StartAsync(
            RestoreOperationSource operationSource,
            Lazy <INuGetErrorList> errorList,
            JoinableTaskFactory jtf,
            CancellationTokenSource cts)
        {
            Assumes.Present(errorList);
            Assumes.Present(jtf);
            Assumes.Present(cts);

            _operationSource = operationSource;
            _errorList       = errorList;

            _jtc         = jtf.Context.CreateCollection();
            _taskFactory = jtf.Context.CreateFactory(_jtc);

            _externalCts = cts;
            _externalCts.Token.Register(() => _cancelled = true);

            _progressFactory = t => StatusBarProgress.StartAsync(_asyncServiceProvider, _taskFactory, t);

            await _taskFactory.RunAsync(async() =>
            {
                OutputVerbosity = await GetMSBuildOutputVerbositySettingAsync();

                switch (_operationSource)
                {
                case RestoreOperationSource.Implicit:     // background auto-restore
                    _outputConsole = await _outputConsoleProvider.Value.CreatePackageManagerConsoleAsync();
                    break;

                case RestoreOperationSource.OnBuild:
                    _outputConsole = await _outputConsoleProvider.Value.CreateBuildOutputConsoleAsync();
                    await _outputConsole.ActivateAsync();
                    break;

                case RestoreOperationSource.Explicit:
                    _outputConsole = await _outputConsoleProvider.Value.CreatePackageManagerConsoleAsync();
                    await _outputConsole.ActivateAsync();
                    await _outputConsole.ClearAsync();
                    break;
                }
            });

            if (_errorList.IsValueCreated)
            {
                // Clear old entries
                _errorList.Value.ClearNuGetEntries();
            }
        }
コード例 #8
0
 public TestStressManager(string cacheId, int totalLoopCount, int testCaseIterations, int testCaseIterationDelay, int getsPerIteration, int updatesPerIteration, int dataSize, int expiration, int threadCount, int reportingInterval, bool noLogo, IOutputConsole outputProvider, PowerShellAdapter adapter)
 {
     _cacheId                = cacheId;
     _totalLoopCount         = totalLoopCount;
     _testCaseIterations     = testCaseIterations;
     _testCaseIterationDelay = testCaseIterationDelay;
     _getsPerIteration       = getsPerIteration;
     _updatesPerIteration    = updatesPerIteration;
     _dataSize               = dataSize;
     _expiration             = expiration;
     _threadCount            = threadCount;
     _reportingInterval      = reportingInterval;
     _outputProvider         = outputProvider;
     _adapter                = adapter;
 }
コード例 #9
0
        public async Task ResetState(TargetCommand command)
        {
            foreach (var ftp in command.Target.Ftp)
            {
                var targetFtp = CreateTargetFtp(command, ftp);

                using (var ftpClient = IFtpFactory.Client(targetFtp))
                {
                    await ftpClient.DeleteAsync(_LastRunFileName);

                    IOutputConsole.ClearLine();
                    IOutputConsole.WriteLine($"Reset state [{targetFtp.Name}] OK.");
                    IOutputConsole.WriteLine("");
                }
            }
        }
コード例 #10
0
ファイル: TestStressManager.cs プロジェクト: nonomal/NCache
 /// <summary>
 /// Constructor
 /// </summary>
 public StressThreadTask(ICache cache, int totalLoopCount, int testCaseIterations, int testCaseIterationDelay, int getsPerIteration, int updatesPerIteration, int dataSize, int expiration, int threadCount, int reportingInterval, int threadIndex, IOutputConsole outputProvider, PowerShellAdapter adapter)
 {
     _cache                  = cache;
     _totalLoopCount         = totalLoopCount;
     _testCaseIterations     = testCaseIterations;
     _testCaseIterationDelay = testCaseIterationDelay;
     _getsPerIteration       = getsPerIteration;
     _updatesPerIteration    = updatesPerIteration;
     _dataSize               = dataSize;
     _expiration             = expiration;
     _threadCount            = threadCount;
     _reportingInterval      = reportingInterval;
     _threadIndex            = threadIndex;
     _pid = System.Diagnostics.Process.GetCurrentProcess().Id;
     CreateThread();
     _outputProvider = outputProvider;
     _adapter        = adapter;
 }
コード例 #11
0
        public async Task ApplyCurrentStateAsync(TargetCommand command)
        {
            var files = GetFiles(command.Target);

            foreach (var ftp in command.Target.Ftp)
            {
                var targetFtp = CreateTargetFtp(command, ftp);

                using (var ftpClient = IFtpFactory.Client(targetFtp))
                {
                    await UploadLastRunAsync(ftpClient, files);

                    IOutputConsole.ClearLine();
                    IOutputConsole.WriteLine($"Apply current state [{targetFtp.Name}] OK.");
                    IOutputConsole.WriteLine("");
                }
            }
        }
コード例 #12
0
        public override async Task Process(OkCommand command)
        {
            IOutputConsole.Write($"Waiting for [{command.Url}]...");

            var start = DateTime.Now;

            while (true)
            {
                var status = await ICurlHelper.Curl(command.Url);

                if (status == HttpStatusCode.OK)
                {
                    var ts = DateTime.Now - start;

                    IOutputConsole.WriteLine($" {(int)ts.TotalSeconds} sec. OK");
                    IOutputConsole.WriteLine("");
                    return;
                }
            }
        }
コード例 #13
0
        private async Task <List <FileInfo> > UploadFilesAsync(TargetFtpConfig targetFtp, List <FileInfo> files)
        {
            var result = new List <FileInfo>();

            var worker = new FtpWorker(targetFtp);

            Container.Shared.Inject(worker);
            worker.Enqueue(files.ToArray());

            var root = IRootHelper.GetRoot();

            worker.FileWillUpload += (sender, a) =>
            {
                lock (this)
                {
                    IOutputConsole.ClearLine();
                    IOutputConsole.Write($"uploading {a.FilesLeft} {root.GetRealtive(a.File)}");
                }
            };

            worker.FileDidUpload += (sender, a) =>
            {
                lock (result)
                {
                    result.Add(a.File);
                }
            };

            worker.FileError += (sender, a) =>
            {
                lock (this)
                {
                    IOutputConsole.ClearLine();
                    IOutputConsole.WriteLine($"error: {root.GetRealtive(a.File)}, [{a.Message}]");
                }
            };

            await worker.UploadAsync();

            return(result);
        }
コード例 #14
0
        internal OutputConsoleLogger(
            IVisualStudioShell visualStudioShell,
            IOutputConsoleProvider consoleProvider,
            Lazy <INuGetErrorList> errorList)
        {
            Verify.ArgumentIsNotNull(visualStudioShell, nameof(visualStudioShell));
            Verify.ArgumentIsNotNull(consoleProvider, nameof(consoleProvider));
            Verify.ArgumentIsNotNull(errorList, nameof(errorList));

            _visualStudioShell = visualStudioShell;
            _errorList         = errorList;
            _verbosityLevel    = new AsyncLazyInt(() => GetMSBuildVerbosityLevelAsync(), NuGetUIThreadHelper.JoinableTaskFactory);

            Run(async() =>
            {
                await NuGetUIThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
                await _visualStudioShell.SubscribeToBuildBeginAsync(() => _errorList.Value.ClearNuGetEntries());
                await _visualStudioShell.SubscribeToAfterClosingAsync(() => _errorList.Value.ClearNuGetEntries());
                _outputConsole = await consoleProvider.CreatePackageManagerConsoleAsync();
            });
        }
コード例 #15
0
ファイル: ToolsUtil.cs プロジェクト: shozibabbas/NCache
 public static void ConveyCommandToAllRunningCacheHost(ConfiguredCacheInfo[] cacheHostprocesses, string Action, string server, IOutputConsole OutputProvider)
 {
     foreach (ConfiguredCacheInfo cacheHost in cacheHostprocesses)
     {
         NCacheRPCService nCache = new NCacheRPCService("");
         nCache.Port       = cacheHost.ManagementPort;
         nCache.ServerName = server;
         if (nCache.Port > 0)
         {
             ICacheServer hostService = nCache.GetCacheServer(new TimeSpan(0, 0, 0, 30));
             if (Action.ToLower().Equals("start"))
             {
                 OutputProvider.WriteLine("Starting monitoring on server {0}:{1}.", nCache.ServerName, nCache.Port);
                 hostService.StartMonitoringActivity();
             }
             else if (Action.ToLower().Equals("stop"))
             {
                 OutputProvider.WriteLine("Stop monitoring on server {0}:{1}.", nCache.ServerName, nCache.Port);
                 hostService.StopMonitoringActivity();
             }
             hostService.PublishActivity();
         }
     }
 }
コード例 #16
0
ファイル: ToolsUtil.cs プロジェクト: shozibabbas/NCache
 public static void PrintMessage(IOutputConsole outputProvider, string msg)
 {
     outputProvider.WriteErrorLine(msg);
 }
コード例 #17
0
ファイル: ConsoleIO.cs プロジェクト: lulzzz/Lyzard
 public static void SetOutputConsole(IOutputConsole output)
 {
     Output = output;
     OuputCache();
 }
コード例 #18
0
        public override async Task Process(TargetCommand command)
        {
            foreach (var ftp in command.Target.Ftp)
            {
                var targetFtp = CreateTargetFtp(command, ftp);

                using (var ftpClient = IFtpFactory.Client(targetFtp))
                {
                    var lastRun = await ReadLastRunAsync(ftpClient);

                    var modifiedSince = lastRun?.Dt;

                    var localFiles    = GetFiles(command.Target);
                    var filesToUpload = localFiles;

                    if (modifiedSince.HasValue)
                    {
                        filesToUpload =
                            localFiles
                            .Where(x => AppliesToModified(x, modifiedSince))
                            .ToList();
                    }

                    if (lastRun != null)
                    {
                        var remoteFilesHash =
                            lastRun
                            .Files
                            .ToHashSet();

                        var root = IRootHelper.GetRoot();

                        foreach (var file in localFiles)
                        {
                            var remotePath = root.GetRealtive(file);
                            if (remoteFilesHash.Contains(remotePath))
                            {
                                continue;
                            }

                            if (!filesToUpload.Any(x => x.FullName == file.FullName))
                            {
                                filesToUpload.Add(file);
                            }
                        }
                    }

                    IOutputConsole.WriteLine($"Target [{command.Value}/{targetFtp.Name}]");

                    if (!filesToUpload.HasContent())
                    {
                        PrintNoFiles();
                    }
                    else
                    {
                        IOutputConsole.WriteLine($"found {filesToUpload.Count} files");
                        await UploadFilesAsync(targetFtp, filesToUpload);
                    }

                    if (!command.Target.CleanupDisable)
                    {
                        await CleanupAsync(targetFtp, lastRun, localFiles);
                    }

                    await UploadLastRunAsync(ftpClient, localFiles);

                    PrintFinished();

                    if (command.Target.OK.HasContent())
                    {
                        await IOkProcessor.Process(new OkCommand { Url = command.Target.OK });
                    }
                }
            }
        }
コード例 #19
0
 private async Task UploadLastRunAsync(IFtpClient ftpClient, List <FileInfo> files)
 {
     IOutputConsole.ClearLine();
     IOutputConsole.Write("uploading .LastRun");
     await WriteLastRunAsync(ftpClient, files);
 }
コード例 #20
0
 private void PrintNoFiles()
 {
     IOutputConsole.WriteLine("no files to upload");
     IOutputConsole.WriteLine("");
 }
コード例 #21
0
 private void PrintFinished()
 {
     IOutputConsole.ClearLine();
     IOutputConsole.WriteLine("finished");
     IOutputConsole.WriteLine("");
 }