예제 #1
0
        private async void Execute(QueuedNpmCommandInfo info)
        {
            IsExecutingCommand = true;
            INpmCommander cmdr = null;

            try {
                lock (_lock) {
                    cmdr = _npmController.CreateNpmCommander();
                    cmdr.OutputLogged     += commander_OutputLogged;
                    cmdr.ErrorLogged      += commander_ErrorLogged;
                    cmdr.ExceptionLogged  += commander_ExceptionLogged;
                    cmdr.CommandCompleted += commander_CommandCompleted;
                    _commander             = cmdr;
                }

                if (info.IsFreeformArgumentCommand)
                {
                    await cmdr.ExecuteNpmCommandAsync(info.Arguments);
                }
                else if (info.IsGlobalInstall)
                {
                    await cmdr.InstallGlobalPackageByVersionAsync(
                        info.Name,
                        info.Version);
                }
                else
                {
                    await cmdr.InstallPackageByVersionAsync(
                        info.Name,
                        info.Version,
                        info.DependencyType,
                        true);
                }
            } finally {
                lock (_lock) {
                    _commander = null;
                    if (null != cmdr)
                    {
                        cmdr.OutputLogged     -= commander_OutputLogged;
                        cmdr.ErrorLogged      -= commander_ErrorLogged;
                        cmdr.ExceptionLogged  -= commander_ExceptionLogged;
                        cmdr.CommandCompleted -= commander_CommandCompleted;
                    }
                }
            }
        }
예제 #2
0
        private async void Execute(QueuedNpmCommandInfo info) {
            IsExecutingCommand = true;
            INpmCommander cmdr = null;
            try {
                lock (_lock) {
                    cmdr = _npmController.CreateNpmCommander();
                    cmdr.OutputLogged += commander_OutputLogged;
                    cmdr.ErrorLogged += commander_ErrorLogged;
                    cmdr.ExceptionLogged += commander_ExceptionLogged;
                    cmdr.CommandCompleted += commander_CommandCompleted;
                    _commander = cmdr;
                }

                if (info.IsFreeformArgumentCommand) {
                    await cmdr.ExecuteNpmCommandAsync(info.Arguments);
                } else if (info.IsGlobalInstall) {
                    await cmdr.InstallGlobalPackageByVersionAsync(
                            info.Name,
                            info.Version);
                } else {
                    await cmdr.InstallPackageByVersionAsync(
                                info.Name,
                                info.Version,
                                info.DependencyType,
                                true);
                }
            } finally {
                lock (_lock) {
                    _commander = null;
                    if (null != cmdr) {
                        cmdr.OutputLogged -= commander_OutputLogged;
                        cmdr.ErrorLogged -= commander_ErrorLogged;
                        cmdr.ExceptionLogged -= commander_ExceptionLogged;
                        cmdr.CommandCompleted -= commander_CommandCompleted;
                    }
                }
            }
        }