コード例 #1
0
        private async static void OpenAddExistingFileWindow(WorkspaceItemViewModel workspaceItem)
        {
            if (!workspaceItem.IsDirectory)
            {
                throw new ArgumentException("Only directories support the new file command");
            }

            IWorkspaceItem item = workspaceItem.Data;

            using (var dialog = new CommonOpenFileDialog(Language.Current.Get("Dialog.Existing.Title"))
            {
                Multiselect = true,
                IsFolderPicker = false
            })
            {
                if (dialog.ShowDialog(Application.Current.MainWindow) == CommonFileDialogResult.Ok)
                {
                    foreach (var name in dialog.FileNames)
                    {
                        var newChild = await item.CopyExistingItem(name);

                        workspaceItem.AddChild(newChild);
                    }
                }
            }
        }
コード例 #2
0
        public MarkdownEditorViewModel(WorkspaceItemViewModel item) : base(item)
        {
            var theme = Theme.Get("Markdown");

            folding       = new MarkdownFoldingStrategy();
            colorizer     = new MarkdownHighlightingColorizer(theme);
            blockRenderer = new BlockBackgroundRenderer(theme);
            issueRenderer = new IssueBackgroundRenderer(theme);
        }
コード例 #3
0
        //[HttpPost("ProcessScript")]
        public ViewResult AddScript(string Name)
        {
            WorkspaceItemViewModel model = new WorkspaceItemViewModel
            {
                filesViewModel = new FilesViewModel(),
                WorkspaceName  = Name
            };

            return(View("AddScript", model));
        }
コード例 #4
0
        public BibEditorViewModel(WorkspaceItemViewModel item) : base(item)
        {
            folding = new BibFoldingStrategy();
            entries = new List <BibEntry>();
            var bibTheme = Theme.Get("Bib");

            colorizer     = new BibHighlightColorizer(bibTheme);
            issueRenderer = new IssueBackgroundRenderer(bibTheme)
            {
                Issues = issues = new List <Issue>()
            };
        }
コード例 #5
0
        public IActionResult GetWorkspaceItem(string Id, string Name, string Type)
        {
            WorkspaceItemViewModel model = new WorkspaceItemViewModel();

            if (Type == "RGBMatrix")
            {
                model.RgbMatrix = repository.GetWorkspaceRgbMatrix(Id, Name);
            }
            else
            {
                model.Script = repository.GetWorkspaceScript(Id, Name);
                return(View("EditScript", model));
            }


            return(View("WorkspaceItem", model));
        }
コード例 #6
0
        private async static void OpenCreateNewFileWindow(WorkspaceItemViewModel workspaceItem, bool isDirectory = false)
        {
            if (!workspaceItem.IsDirectory)
            {
                throw new ArgumentException("Only directories support the new file command");
            }

            var            workspace = workspaceItem.Workspace;
            IWorkspaceItem newItem;

            if (isDirectory)
            {
                newItem = await workspaceItem.Data.CreateNewDirectory(Language.Current.Get("File.New.Folder"));
            }
            else
            {
                var window    = new NewFileWindow();
                var viewModel = new NewFileViewModel();
                await viewModel.LoadAsync();

                window.DataContext = viewModel;
                window.Owner       = Application.Current.MainWindow;

                if (window.ShowDialog().Value)
                {
                    var sel = viewModel.Selected;
                    newItem = await workspaceItem.Data.CreateNewFile(viewModel.Name, "." + sel.Extension, sel.Content);
                }
                else
                {
                    return;
                }
            }
            var vm = new WorkspaceItemViewModel(workspace, workspaceItem, newItem);

            if (isDirectory)
            {
                vm.IsNameChanging = true;
            }
            workspaceItem.AddChild(vm);
            if (!isDirectory)
            {
                workspaceItem.Workspace.SelectedItem = vm;
            }
        }
コード例 #7
0
        public IActionResult Post(List <IFormFile> files, string Name)
        {
            long size = files.Sum(f => f.Length);


            List <string>          fileNames = new List <string>();
            FilesViewModel         model     = new FilesViewModel();
            WorkspaceItemViewModel itemModel = new WorkspaceItemViewModel();

            foreach (var formFile in files)
            {
                fileNames.Add(Path.GetFileNameWithoutExtension(formFile.FileName));
            }
            foreach (var item in fileNames)
            {
                model.Files.Add(new FileDetails
                {
                    Name = item
                });
            }
            if (fileNames.Count != 8)
            {
                return(Content("Please select 8 files"));
            }
            itemModel.filesViewModel = model;
            //Generate new script here?
            itemModel.Script = repository.GenerateNewScript(fileNames, Name);
            foreach (var item in itemModel.Script.Commands)
            {
                Console.WriteLine(item);
            }
            itemModel.WorkspaceName = Name;

            return(View("AddScript", itemModel));

            //to fix: add tag helpers in AddScript.cshtml to bind the new model (asp-for)
        }
コード例 #8
0
 protected virtual void CreateNewFeatureBranch()
 {
     this.IsSelected = true;
     WorkspaceItemViewModel.StartNewFeatureBranch();
 }
コード例 #9
0
 public CreateNewFileCommand(WorkspaceItemViewModel workspaceItem)
     : base(workspaceItem ?? throw new ArgumentNullException(nameof(workspaceItem)))
 {
 }
コード例 #10
0
 public DefaultEditorViewModel(WorkspaceItemViewModel item) : base(item)
 {
 }
コード例 #11
0
 public AddExistingFileCommand(WorkspaceItemViewModel workspaceItem)
     : base(workspaceItem ?? throw new ArgumentNullException(nameof(workspaceItem)))
 {
 }
コード例 #12
0
 public IActionResult AddScriptInFile(WorkspaceItemViewModel model, string Name)
 {
     repository.AddScript(Name, model.Script);
     TempData["scriptAdded"] = $"Added {model.Script.Name} with {model.Script.RgbMatrices.Count} new RGB Matrices";
     return(RedirectToAction("GetWorkspaceScripts", "Workspace", new { name = Name }));
 }