public static void CreateFileElement(ProjectItem item, string path, string name) { item.FileHandler = new FileHandler() { Name = name, Path = path }; if (!item.IsFolder) { AFileModel model = Util.FileModelFactory(item.Type); if (model != null) { string filePath = Path.Combine(path, name + model.FileExtension); Toml.WriteFile(model, filePath); item.FileHandler.FileModel = model; ProjectFiles.Handlers.Add(item.FileHandler.FileModel.GUID, item.FileHandler); } } else { string folderPath = Path.Combine(path, name); _ = Directory.CreateDirectory(folderPath); } }
private static async void OnRegisterFileHandler(ProjectItem item, string path) { FileHandler fileHandler = new FileHandler() { Name = item.DisplayName, Path = path }; item.FileHandler = fileHandler; if (item.IsFolder) { return; } AFileModel model = Util.FileModelFactory(item.Type); if (model == null) { return; } string itemPath = Path.Combine(fileHandler.Path, fileHandler.Name + model.FileExtension); if (!File.Exists(itemPath)) { return; } fileHandler.FileModel = await ReadFileAndLoadModelAsync(itemPath, item.Type); if (string.IsNullOrEmpty(fileHandler.FileModel.GUID)) { fileHandler.FileModel.GUID = Guid.NewGuid().ToString(); } if (ProjectFiles.Handlers.ContainsKey(fileHandler.FileModel.GUID)) { return; } ProjectFiles.Handlers.Add(fileHandler.FileModel.GUID, fileHandler); SignalManager.Get <ProjectItemLoadedSignal>().Dispatch(fileHandler.FileModel.GUID); ProjectFiles.ObjectsLoading--; if (ProjectFiles.ObjectsLoading <= 0) { SignalManager.Get <HideLoadingDialogSignal>().Dispatch(); } }