示例#1
0
        internal void PopulateAvailableProjects(string projectsJSON)
        {
            var projects = JsonConvert.DeserializeObject <List <Project> >(projectsJSON) ?? new List <Project>();

            AvailableProjects = projects.Select(p => p.Identifier).ToList();
            AvailableProjects.Sort();
        }
示例#2
0
        /// <summary>
        /// Create a ProfilingTargetView with default values.
        /// </summary>
        public ProfilingTargetView(IServiceProvider serviceProvider) {
            var solution = serviceProvider.GetService(typeof(SVsSolution)) as IVsSolution;
            
            var availableProjects = new List<ProjectTargetView>();
            foreach (var project in solution.EnumerateLoadedProjects()) {
                availableProjects.Add(new ProjectTargetView((IVsHierarchy)project));
            }
            _availableProjects = new ReadOnlyCollection<ProjectTargetView>(availableProjects);

            _project = null;
            _standalone = new StandaloneTargetView(serviceProvider);
            _isProjectSelected = true;

            _isValid = false;

            PropertyChanged += new PropertyChangedEventHandler(ProfilingTargetView_PropertyChanged);
            _standalone.PropertyChanged += new PropertyChangedEventHandler(Standalone_PropertyChanged);

            var startupProject = PythonProfilingPackage.GetStartupProjectGuid(serviceProvider);
            Project = AvailableProjects.FirstOrDefault(p => p.Guid == startupProject) ??
                AvailableProjects.FirstOrDefault();
            if (Project != null) {
                IsStandaloneSelected = false;
                IsProjectSelected = true;
            } else {
                IsProjectSelected = false;
                IsStandaloneSelected = true;
            }
            _startText = "_Start";
        }
示例#3
0
 private async void RefreshProjects()
 {
     AvailableProjects.Clear();
     foreach (Project project in (await _jiraClient.Projects.GetProjectsAsync()).OrderBy(x => x.Key))
     {
         AvailableProjects.Add(new JiraProjectViewModel(project));
     }
 }
示例#4
0
        /// <summary>
        /// </summary>
        public TaskSearchDesignViewModel()
        {
            AvailableIssues.Add(new JiraIssueDesignViewModel("Bug", "PROJECT42-4", "Das ist ein falscher fehler"));
            AvailableIssues.Add(new JiraIssueDesignViewModel("Feature", "PROJECT-42", "Das ist ein neuer falscher Fehler"));
            AvailableIssues.Add(new JiraIssueDesignViewModel("Aufgabe", "PROJECT-424", "Und hier soll noch jemand ein viel längeren falschen Fehler einbauen, damit wir auch in Zukunft was z utun haben ;-)"));
            SelectedIssue = AvailableIssues[1];

            AvailableProjects.Add(new JiraProjectDesignViewModel());
            AvailableProjects.Add(new JiraProjectDesignViewModel());
            SelectedProject = AvailableProjects.First();
        }
示例#5
0
 public void ChangeProject(string newProjectName)
 {
     if (newProjectName.Compare(ProjectName))
     {
         return;
     }
     if (!AvailableProjects.Contains(newProjectName))
     {
         throw new ProjectNotAvailable(newProjectName);
     }
     send(new ChangeProjectRequest(newProjectName), true);
 }
示例#6
0
        /// <summary>
        /// Create a ProfilingTargetView with default values.
        /// </summary>
        public ProfilingTargetView(IServiceProvider serviceProvider)
        {
            var solution = serviceProvider.GetService(typeof(SVsSolution)) as IVsSolution;

            var availableProjects = new List <ProjectTargetView>();

            foreach (var project in solution.EnumerateLoadedProjects())
            {
                availableProjects.Add(new ProjectTargetView((IVsHierarchy)project));
            }
            _availableProjects = new ReadOnlyCollection <ProjectTargetView>(availableProjects);

            _project           = null;
            _standalone        = new StandaloneTargetView(serviceProvider);
            _isProjectSelected = true;

            _isValid = false;

            _useVTune = false;
#if EXTERNAL_PROFILER_DRIVER
            _isVTuneAvailable          = PythonProfilingPackage.CheckForExternalProfiler();
            _isExternalProfilerEnabled = true;
#else
            _isVTuneAvailable          = false;
            _isExternalProfilerEnabled = false;
#endif

            PropertyChanged             += new PropertyChangedEventHandler(ProfilingTargetView_PropertyChanged);
            _standalone.PropertyChanged += new PropertyChangedEventHandler(Standalone_PropertyChanged);

            var startupProject = PythonProfilingPackage.GetStartupProjectGuid(serviceProvider);
            Project = AvailableProjects.FirstOrDefault(p => p.Guid == startupProject) ??
                      AvailableProjects.FirstOrDefault();
            if (Project != null)
            {
                IsStandaloneSelected = false;
                IsProjectSelected    = true;
            }
            else
            {
                IsProjectSelected    = false;
                IsStandaloneSelected = true;
            }
            _startText = Strings.LaunchProfiling_Start;
        }
示例#7
0
        /// <summary>
        /// Create a ProfilingTargetView with default values.
        /// </summary>
        public ProfilingTargetView()
        {
            var solution = NodejsProfilingPackage.Instance.Solution;

            var availableProjects = new List <ProjectTargetView>();

            foreach (var project in solution.EnumerateLoadedProjects(onlyNodeProjects: true))
            {
                availableProjects.Add(new ProjectTargetView((IVsHierarchy)project));
            }
            _availableProjects = new ReadOnlyCollection <ProjectTargetView>(availableProjects);

            _project           = null;
            _standalone        = new StandaloneTargetView();
            _isProjectSelected = true;

            _isValid = false;

            PropertyChanged             += new PropertyChangedEventHandler(ProfilingTargetView_PropertyChanged);
            _standalone.PropertyChanged += new PropertyChangedEventHandler(Standalone_PropertyChanged);

            var startupProject = NodejsProfilingPackage.Instance.GetStartupProjectGuid();

            Project = AvailableProjects.FirstOrDefault(p => p.Guid == startupProject) ??
                      AvailableProjects.FirstOrDefault();
            if (Project != null)
            {
                IsStandaloneSelected = false;
                IsProjectSelected    = true;
            }
            else
            {
                IsProjectSelected    = false;
                IsStandaloneSelected = true;
            }
            _startText = Resources.ProfilingStart;
        }
示例#8
0
        public SynchronizePageObjectsModel(
            Project project,
            IReadOnlyList <string> availableComponentTypeNames,
            DTE dte,
            IVsSolution2 solutionService)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            if (project == null)
            {
                throw new ArgumentNullException(nameof(project));
            }
            else if (availableComponentTypeNames == null)
            {
                throw new ArgumentNullException(nameof(availableComponentTypeNames));
            }
            else if (dte == null)
            {
                throw new ArgumentNullException(nameof(dte));
            }
            else if (solutionService == null)
            {
                throw new ArgumentNullException(nameof(solutionService));
            }

            fileMap = new List <MappedFileModel>();
            AvailableComponentTypeNames = availableComponentTypeNames;
            var defaultProjectName = $"{project.Name}.PageObjects";

            DefaultNamespace    = defaultProjectName;
            OriginalProjectName = project.Name;

            // Get the solution folder.
            var solutionDir = new FileInfo(dte.Solution.FullName)
                              .Directory
                              .FullName;

            availableProjects = new List <AvailableProjectModel>
            {
                new AvailableProjectModel
                {
                    IsNew               = true,
                    DisplayName         = "New",
                    Name                = defaultProjectName,
                    PathToProjectFolder = Path.Combine(
                        solutionDir,
                        defaultProjectName),
                    FullPath = Path.Combine(
                        solutionDir,
                        defaultProjectName,
                        defaultProjectName + ".csproj"),
                    UniqueName = String.Empty
                }
            };

            var newProject = AvailableProjects[0];
            var projects   = solutionService.GetProjects();

            foreach (var p in projects)
            {
                if (String.IsNullOrEmpty(p?.FullName))
                {
                    continue;
                }

                AddAvailableProject(new AvailableProjectModel
                {
                    DisplayName         = p.Name,
                    FullPath            = p.FileName,
                    IsNew               = false,
                    Name                = p.Name,
                    PathToProjectFolder = new FileInfo(p.FullName).Directory.FullName,
                    UniqueName          = p.UniqueName,
                });
            }

            // Check if a default project already exists.
            SelectedProjectIndex = AvailableProjects
                                   .Select((m, i) => new { Model = m, Index = i })
                                   .FirstOrDefault(m => m.Model.DisplayName == defaultProjectName)
                                   ?.Index
                                   ?? 0;

            // Now locate all razor files in the selected project.
            foreach (var item in project.GetAllProjectItems())
            {
                // Ignore if not a razor file.
                var extension   = Path.GetExtension(item.Name);
                var isRazorFile = extension.Equals(
                    ".cshtml",
                    StringComparison.Ordinal);

                if (!isRazorFile)
                {
                    continue;
                }

                var mappedFile = new MappedFileModel(project,
                                                     item,
                                                     availableComponentTypeNames,
                                                     SelectedProject.PathToProjectFolder);

                AddMappedFile(mappedFile);
            }
        }