private IProjectCodeProvider GetDummyProjectCodeProvider() { // TODO: In the future we may want to have a different project code provider // for each unknown project in the solution instead of having only one // representing all of them. var provider = OrleansProjectCodeProvider.GetProjectGrain(grainFactory, "DUMMY"); this.Assemblies.Add("DUMMY"); return(provider); }
public async Task ForceDeactivationOfProjects() { var tasks = new List <Task>(); foreach (var assemblyName in this.Assemblies) { var provider = OrleansProjectCodeProvider.GetProjectGrain(grainFactory, assemblyName); var task = provider.ForceDeactivationAsync(); //await task; tasks.Add(task); } await Task.WhenAll(tasks); }
protected override async Task CreateProjectCodeProviderFromSourceAsync(string source, AssemblyName assemblyName) { var projectGrain = OrleansProjectCodeProvider.GetProjectGrain(grainFactory, assemblyName); var projectGrainReference = projectGrain; if (projectGrain is ProjectCodeProviderGrainCallerWrapper) { var projectGrainWrapper = projectGrain as ProjectCodeProviderGrainCallerWrapper; projectGrainReference = projectGrainWrapper.AsReference(); } await solutionGrain.StartObservingAsync(projectGrainReference); await projectGrain.SetProjectSourceAsync(source); this.Assemblies.Add(assemblyName); }
public override Task <IProjectCodeProvider> GetProjectCodeProviderAsync(AssemblyName assemblyName) { IProjectCodeProvider provider = null; var isExistingProject = this.Assemblies.Contains(assemblyName); if (isExistingProject) { provider = OrleansProjectCodeProvider.GetProjectGrain(grainFactory, assemblyName); } else { provider = this.GetDummyProjectCodeProvider(); //this.ProjectProviders.Add(assemblyName); } return(Task.FromResult(provider)); }