/// <summary>
        /// Runs this instance.
        /// </summary>
        public void Run()
        {
            TraceService.WriteHeader("PluginsController::Run");

            //// we open the nuget package manager console so we don't have
            //// a wait condition later!
            this.nugetService.OpenNugetWindow();

            FrameworkType frameworkType = this.VisualStudioService.GetFrameworkType();

            if (frameworkType.IsMvvmCrossSolutionType())
            {
                PluginsViewModel viewModel = this.ShowDialog <PluginsViewModel>(new PluginsView());

                if (viewModel.Continue)
                {
                    IEnumerable <Plugin> plugins = viewModel.GetRequiredPlugins();

                    if (plugins.Any())
                    {
                        this.Process(plugins);
                    }
                }
            }
            else
            {
                this.ShowNotMvvmCrossOrXamarinFormsSolutionMessage();
            }
        }
Ejemplo n.º 2
0
        public Plugins()
        {
            vm          = SP.GetService <ViewModelsService>().Plugins;
            DataContext = vm;

            InitializeComponent();
        }
Ejemplo n.º 3
0
 private void ApplyChanges()
 {
     DictionaryViewModel.ApplyChanges();
     OtherViewModel.ApplyChanges();
     PointingAndSelectingViewModel.ApplyChanges();
     SoundsViewModel.ApplyChanges();
     VisualsViewModel.ApplyChanges();
     PluginsViewModel.ApplyChanges();
     WordsViewModel.ApplyChanges();
 }
Ejemplo n.º 4
0
        public ActionResult Manage(PluginsViewModel viewModel)
        {
            //var pluginsViewModel = new PluginsViewModel();
            var pluginConfigurationModels = _pluginConfigurationGetter.Get("ns2", "ns2").OrderBy(x => x.Name.EndsWith(".json")).ThenBy(x => x.Name);
            var selectListItems           = pluginConfigurationModels.Select(x => new SelectListItem {
                Text = x.Name, Value = x.Name
            });

            viewModel.PluginNames = selectListItems;
            return(View(viewModel));
        }
Ejemplo n.º 5
0
        public JsonResult EditConfig(PluginsViewModel viewModel)
        {
            var message    = string.Empty;
            var isError    = false;
            var stacktrace = string.Empty;

            try
            {
                JsonConvert.DeserializeObject(viewModel.PluginConfigJson);
            }
            catch (Exception ex)
            {
                isError    = true;
                message    = "Config is not valid JSON. Correct JSON or Undo. Save operation aborted.";
                stacktrace = ex.StackTrace;
            }
            if (!isError)
            {
                _pluginConfigurationSetter.Set("ns2", "ns2", viewModel.SelectedPluginName, viewModel.PluginConfigJson);
                if (viewModel.SelectedPluginName.EndsWith(".json"))
                {
                    var contents         = Encoding.UTF8.GetBytes(viewModel.PluginConfigJson);
                    var host             = ConfigurationManager.AppSettings["FtpHost"];
                    var port             = Convert.ToInt32(ConfigurationManager.AppSettings["FtpPort"]);
                    var username         = ConfigurationManager.AppSettings["TgUsername"];
                    var password         = ConfigurationManager.AppSettings["TgPassword"];
                    var path             = ConfigurationManager.AppSettings["ConfigDirFtpPath"];
                    var sftpFileUploader = new SftpFileUploader();
                    sftpFileUploader.Upload(contents, host, port, username, password, $"{path}/{viewModel.SelectedPluginName}");
                    //ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;
                    //FtpUrlTemplates.ForEach(x=>
                    //{
                    //    var contents = Encoding.UTF8.GetBytes(viewModel.PluginConfigJson);
                    //    var request = (FtpWebRequest)WebRequest.Create(string.Format(x, viewModel.SelectedPluginName));
                    //    request.Method = WebRequestMethods.Ftp.UploadFile;
                    //    request.EnableSsl = true;
                    //    request.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["WebAdminUsername"], ConfigurationManager.AppSettings["WebAdminPassword"]);
                    //    request.ContentLength = contents.Length;
                    //    using (var requestStream = request.GetRequestStream())
                    //    {
                    //        requestStream.Write(contents, 0, contents.Length);
                    //    }
                    //    using (var response = (FtpWebResponse) request.GetResponse())
                    //    {
                    //        //Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription);
                    //    }
                    //});
                }
                message = string.Format("{0} plugin config saved.", viewModel.SelectedPluginName);
            }
            return(Json(new { isError = isError, message = message, stacktrace = stacktrace }));
        }
Ejemplo n.º 6
0
        public PartialViewResult LoadConfig(string selectedPluginName)
        {
            var pluginsViewModel          = new PluginsViewModel();
            var pluginConfigurationModels = _pluginConfigurationGetter.Get("ns2", "ns2");
            var selectListItems           = pluginConfigurationModels.Select(x => new SelectListItem {
                Text = x.Name, Value = x.Name
            });

            pluginsViewModel.PluginNames = selectListItems;
            var selectedPluginConfigurationModel = pluginConfigurationModels.Single(x => x.Name == selectedPluginName);

            pluginsViewModel.SelectedPluginName = selectedPluginConfigurationModel.Name;
            pluginsViewModel.PluginConfigJson   = selectedPluginConfigurationModel.ConfigJson;
            return(PartialView("_EditPluginConfig", pluginsViewModel));
        }
Ejemplo n.º 7
0
        public ManagementViewModel(
            IAudioService audioService,
            IDictionaryService dictionaryService)
        {
            //Instantiate child VMs
            DictionaryViewModel           = new DictionaryViewModel(dictionaryService);
            OtherViewModel                = new OtherViewModel();
            PointingAndSelectingViewModel = new PointingAndSelectingViewModel();
            SoundsViewModel               = new SoundsViewModel(audioService);
            VisualsViewModel              = new VisualsViewModel();
            PluginsViewModel              = new PluginsViewModel();
            WordsViewModel                = new WordsViewModel(dictionaryService);

            //Instantiate interaction requests and commands
            ConfirmationRequest = new InteractionRequest <Confirmation>();
            OkCommand           = new DelegateCommand <Window>(Ok);     //Can always click Ok
            CancelCommand       = new DelegateCommand <Window>(Cancel); //Can always click Cancel
        }
 public RootViewModel(IEnumerable <IPlugin> plugins, PluginsViewModel pluginsViewModel)
 {
 }