Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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();
            }
        }