Esempio n. 1
0
 public SolutionFolderViewModel(SolutionModel solution, SolutionFolderModel folderParent, SolutionFolderModel folder)
 {
     _solution     = solution;
     _folderParent = folderParent;
     _folder       = folder;
     InitProperties();
 }
        /// <summary>
        ///		Carga los datos de la definición de la web
        /// </summary>
        private SolutionFolderModel LoadFolder(SolutionModel solution, MLNode nodeML)
        {
            SolutionFolderModel folder = new SolutionFolderModel(solution);

            // Carga los datos del nodo
            foreach (MLNode childML in nodeML.Nodes)
            {
                switch (childML.Name)
                {
                case TagName:
                    folder.Name = childML.Value;
                    break;

                case TagDescription:
                    folder.Description = childML.Value;
                    break;

                case TagFolder:
                    folder.Folders.Add(LoadFolder(solution, childML));
                    break;

                case TagFile:
                    folder.Projects.Add(LoadProject(solution, childML.Value));
                    break;
                }
            }
            // Devuelve la carpeta cargada
            return(folder);
        }
Esempio n. 3
0
 /// <summary>
 ///		Graba los datos
 /// </summary>
 protected override void Save()
 {
     if (ValidateData())
     {
         // Crea / modifica el directorio
         if (_folder == null)
         {
             // Crea la carpeta y le asigna el nombre
             _folder      = new SolutionFolderModel(_solution);
             _folder.Name = Name;
             // Añade la carpeta a la solución o a la carpeta padre
             if (_folderParent == null)
             {
                 _solution.Folders.Add(_folder);
             }
             else
             {
                 _folderParent.Folders.Add(_folder);
             }
         }
         else
         {
             _folder.Name = Name;
         }
         // Cierra el formulario
         RaiseEventClose(true);
     }
 }
Esempio n. 4
0
        /// <summary>
        ///		Crea un proyecto
        /// </summary>
        public ProjectModel Create(SolutionModel solution, SolutionFolderModel folder, string path)
        {
            ProjectModel project = new ProjectModel(solution);

            // Asigna el directorio y nombre de archivo
            if (!path.EndsWith(ProjectModel.FileName))
            {
                // Crea el directorio
                LibCommonHelper.Files.HelperFiles.MakePath(path);
                // Asigna el nobmre de archivo
                project.File.FullFileName = System.IO.Path.Combine(path, "WebDefinition.wdx");
            }
            else
            {
                project.File.FullFileName = path;
            }
            // Añade el proyecto a la solución
            if (folder != null)
            {
                folder.Projects.Add(project);
            }
            else
            {
                solution.Projects.Add(project);
            }
            // Graba la solución
            new SolutionBussiness().Save(solution);
            // Devuelve el proyecto
            return(project);
        }
        private void SyncProjectsAndFolders(
            SlnFile slnFile,
            SolutionItemComplexNode slnParent,
            SolutionFolderModel modelParent,
            IEnumerable <SolutionFolderModel> modelFolders,
            List <Node> projectConfigurationPlatforms,
            IReadOnlyCollection <string> solutionConfigurationPlatforms)
        {
            foreach (var projectModel in Projects.Where(x => x.ParentFolder?.Id == modelParent?.Id))
            {
                var path = $"{projectModel.ToOutputTargetConfig().RelativeLocation}\\{projectModel.Name}.{projectModel.FileExtension}".Replace("/", "\\");

                if (!slnFile.GetOrCreateProjectNode(
                        typeId: VisualStudioSolution.ProjectTypeIds.CsProject,
                        name: projectModel.Name,
                        path: path,
                        id: projectModel.Id,
                        parentId: slnParent?.Id,
                        project: out var slnProject))
                {
                    projectConfigurationPlatforms.AddRange(solutionConfigurationPlatforms
                                                           .SelectMany(
                                                               _ => SolutionConfigurationPlatformTypes,
                                                               (platform, platformType) => new KeyValueNode($"{slnProject.Id}.{platform}.{platformType}", platform)));
                    continue;
                }

                slnProject.Values[0] = projectModel.Name;
                slnProject.Values[1] = path;
                slnFile.SetParent(slnProject, slnParent);
            }

            foreach (var folderModel in modelFolders)
            {
                if (slnFile.GetOrCreateProjectNode(
                        typeId: VisualStudioSolution.ProjectTypeIds.SolutionFolder,
                        name: folderModel.Name,
                        path: folderModel.Name,
                        id: folderModel.Id,
                        parentId: slnParent?.Id,
                        project: out var slnFolder))
                {
                    slnFolder.Values[0] = folderModel.Name;
                    slnFolder.Values[1] = folderModel.Name;
                    slnFile.SetParent(slnFolder, slnParent);
                }

                SyncProjectsAndFolders(
                    slnFile: slnFile,
                    slnParent: slnFolder,
                    modelParent: folderModel,
                    modelFolders: folderModel.Folders,
                    projectConfigurationPlatforms: projectConfigurationPlatforms,
                    solutionConfigurationPlatforms: solutionConfigurationPlatforms);
            }
        }
Esempio n. 6
0
 public ProjectNewView(SolutionModel solution, SolutionFolderModel folder)
 {
     // Inicializa los componentes
     InitializeComponent();
     // Inicializa el ViewModel
     ViewModel        = new ProjectNewViewModel(solution, folder);
     DataContext      = ViewModel;
     ViewModel.Close += (sender, result) =>
     {
         DialogResult = result.IsAccepted;
         Close();
     };
 }
        public SolutionFolderView(SolutionModel solution, SolutionFolderModel folderParent, SolutionFolderModel folder)
        {
            SolutionFolderViewModel viewModel = new SolutionFolderViewModel(solution, folderParent, folder);

            // Inicializa los componentes
            InitializeComponent();
            // Inicializa el ViewModel
            DataContext      = viewModel;
            viewModel.Close += (sender, result) =>
            {
                DialogResult = result.IsAccepted;
                Close();
            };
        }
        /// <summary>
        ///		Carga los datos de una carpeta de proyecto
        /// </summary>
        private SolutionFolderModel LoadFolder(SolutionModel solution, ProjectDefinitionModelCollection definitions, MLNode nodeML)
        {
            SolutionFolderModel folder = new SolutionFolderModel(solution);

            // Asigna las propiedades
            folder.Name = nodeML.Nodes[TagName].Value;
            // Carga los proyectos
            foreach (MLNode childML in nodeML.Nodes)
            {
                if (childML.Name == TagProject)
                {
                    folder.Projects.Add(LoadProject(solution, definitions, childML));
                }
            }
            // Devuelve la carpeta
            return(folder);
        }
 public ProjectNewViewModel(SolutionModel solution, SolutionFolderModel folder)
 {
     _solution = solution;
     _folder   = folder;
     InitProperties();
 }
Esempio n. 10
0
 public SolutionFolderNodeViewModel(SolutionFolderModel folder) : base(folder.GlobalId, folder.Name, null, true)
 {
     Folder = folder;
     IsBold = true;
 }
 public SolutionFolderNodeViewModel(BaseNodeViewModel parent, SolutionFolderModel folder) : base(folder.GlobalId, folder.Name, parent, true)
 {
     Folder = folder;
     IsBold = true;
 }
Esempio n. 12
0
 /// <summary>
 ///		Abre la ventana para crear / modificar una carpeta de solución
 /// </summary>
 public SystemControllerEnums.ResultType OpenUpdateFolderSolutionView(SolutionModel solution,
                                                                      SolutionFolderModel solutionFolderParent, SolutionFolderModel solutionFolder)
 {
     return(DocWriterPlugin.MainInstance.HostPluginsController.HostViewsController.ShowDialog(new SolutionFolderView(solution, solutionFolderParent, solutionFolder)));
 }
Esempio n. 13
0
 /// <summary>
 ///		Abre la ventana para crear un nuevo proyecto
 /// </summary>
 public SystemControllerEnums.ResultType OpenFormNewProject(SolutionModel solution, SolutionFolderModel folder)
 {
     return(DocWriterPlugin.MainInstance.HostPluginsController.HostViewsController.ShowDialog(null, new ProjectNewView(solution, folder)));
 }