Esempio n. 1
0
        public static ProjectSnapshot Create(string projectDirectory,
                                             string configuration,
                                             DesignTimeWorkspace workspaceContext,
                                             IReadOnlyList <string> previousSearchPaths,
                                             bool clearWorkspaceContextCache)
        {
            var projectContextsCollection = workspaceContext.GetProjectContextCollection(projectDirectory, clearWorkspaceContextCache);

            if (!projectContextsCollection.ProjectContexts.Any())
            {
                throw new InvalidOperationException($"Unable to find project.json in '{projectDirectory}'");
            }
            GlobalSettings globalSettings;
            var            currentSearchPaths = projectContextsCollection.Project.ResolveSearchPaths(out globalSettings);

            var snapshot = new ProjectSnapshot();

            snapshot.Project            = projectContextsCollection.Project;
            snapshot.ProjectDiagnostics = new List <DiagnosticMessage>(projectContextsCollection.ProjectDiagnostics);
            snapshot.ProjectSearchPaths = currentSearchPaths.ToList();
            snapshot.GlobalJsonPath     = globalSettings?.FilePath;

            foreach (var projectContext in projectContextsCollection.FrameworkOnlyContexts)
            {
                snapshot.ProjectContexts[projectContext.TargetFramework] =
                    ProjectContextSnapshot.Create(projectContext, configuration, previousSearchPaths);
            }

            return(snapshot);
        }
Esempio n. 2
0
        public ConnectionContext(Socket acceptedSocket,
                                 string hostName,
                                 ProtocolManager protocolManager,
                                 DesignTimeWorkspace workspaceContext,
                                 IDictionary <int, ProjectManager> projects)
        {
            _hostName = hostName;
            _projects = projects;

            _queue            = new ProcessingQueue(new NetworkStream(acceptedSocket));
            _queue.OnReceive += message =>
            {
                if (protocolManager.IsProtocolNegotiation(message))
                {
                    message.Sender = this;
                    protocolManager.Negotiate(message);
                }
                else
                {
                    message.Sender = this;
                    ProjectManager projectManager;
                    if (!_projects.TryGetValue(message.ContextId, out projectManager))
                    {
                        projectManager = new ProjectManager(message.ContextId,
                                                            workspaceContext,
                                                            protocolManager);

                        _projects[message.ContextId] = projectManager;
                    }

                    projectManager.OnReceive(message);
                }
            };
        }
Esempio n. 3
0
        public static ProjectSnapshot Create(string projectDirectory,
                                             string configuration,
                                             DesignTimeWorkspace workspaceContext,
                                             IReadOnlyList<string> previousSearchPaths,
                                             bool clearWorkspaceContextCache)
        {
            var projectContextsCollection = workspaceContext.GetProjectContextCollection(projectDirectory, clearWorkspaceContextCache);
            if (!projectContextsCollection.ProjectContexts.Any())
            {
                throw new InvalidOperationException($"Unable to find project.json in '{projectDirectory}'");
            }
            GlobalSettings globalSettings;
            var currentSearchPaths = projectContextsCollection.Project.ResolveSearchPaths(out globalSettings);

            var snapshot = new ProjectSnapshot();
            snapshot.Project = projectContextsCollection.Project;
            snapshot.ProjectDiagnostics = new List<DiagnosticMessage>(projectContextsCollection.ProjectDiagnostics);
            snapshot.ProjectSearchPaths = currentSearchPaths.ToList();
            snapshot.GlobalJsonPath = globalSettings?.FilePath;

            foreach (var projectContext in projectContextsCollection.FrameworkOnlyContexts)
            {
                snapshot.ProjectContexts[projectContext.TargetFramework] =
                    ProjectContextSnapshot.Create(projectContext, configuration, previousSearchPaths);
            }

            return snapshot;
        }
Esempio n. 4
0
        public ConnectionContext(Socket acceptedSocket,
            string hostName,
            ProtocolManager protocolManager,
            DesignTimeWorkspace workspaceContext,
            IDictionary<int, ProjectManager> projects)
        {
            _hostName = hostName;
            _projects = projects;

            _queue = new ProcessingQueue(new NetworkStream(acceptedSocket));
            _queue.OnReceive += message =>
            {
                if (protocolManager.IsProtocolNegotiation(message))
                {
                    message.Sender = this;
                    protocolManager.Negotiate(message);
                }
                else
                {
                    message.Sender = this;
                    ProjectManager projectManager;
                    if (!_projects.TryGetValue(message.ContextId, out projectManager))
                    {
                        projectManager = new ProjectManager(message.ContextId,
                                                           workspaceContext,
                                                           protocolManager);

                        _projects[message.ContextId] = projectManager;
                    }

                    projectManager.OnReceive(message);
                }
            };
        }
Esempio n. 5
0
 public ProjectModelServerCommand(int port, string hostName)
 {
     _port = port;
     _hostName = hostName;
     _protocolManager = new ProtocolManager(maxVersion: 4);
     _workspaceContext = new DesignTimeWorkspace(ProjectReaderSettings.ReadFromEnvironment());
     _projects = new Dictionary<int, ProjectManager>();
 }
Esempio n. 6
0
 public ProjectModelServerCommand(int port, string hostName)
 {
     _port             = port;
     _hostName         = hostName;
     _protocolManager  = new ProtocolManager(maxVersion: 4);
     _workspaceContext = new DesignTimeWorkspace(ProjectReaderSettings.ReadFromEnvironment());
     _projects         = new Dictionary <int, ProjectManager>();
 }
Esempio n. 7
0
        public ProjectManager(
            int contextId,
            DesignTimeWorkspace workspaceContext,
            ProtocolManager protocolManager)
        {
            Id = contextId;
            _workspaceContext = workspaceContext;
            _protocolManager  = protocolManager;

            _messengers = new List <Messenger <ProjectContextSnapshot> >
            {
                new ReferencesMessenger(Transmit),
                new DependenciesMessenger(Transmit),
                new DependencyDiagnosticsMessenger(Transmit),
                new CompilerOptionsMessenger(Transmit),
                new SourcesMessenger(Transmit)
            };

            _projectDiagnosticsMessenger = new ProjectDiagnosticsMessenger(Transmit);
            _globalErrorMessenger        = new GlobalErrorMessenger(Transmit);
            _projectInforamtionMessenger = new ProjectInformationMessenger(Transmit);
        }