private Task UpdateProjects(UpdateProjectsOptions options = UpdateProjectsOptions.None) { _projectManager.UpdateProjects(options); _languageServer.SendNotification("papyrus/projectsUpdated"); return(Task.FromResult <object>(null)); }
public async Task <bool> UpdateProject(int id, UpdateProjectsOptions options) { var updproject = await context_.Set <Project>() .SingleOrDefaultAsync(p => p.id == id); if (updproject == null) { return(false); } if (updproject.Description != null) { updproject.Description = options.Description; } if (updproject.budget > 0) { updproject.budget = options.Budget; } if (updproject.Tittle != null) { updproject.Tittle = options.ProjectTitle; } if (updproject.Photos != null) { updproject.Photos = options.Photo; } if (updproject.Videos != null) { updproject.Videos = options.Video; } if (updproject.Percentage == 0) { updproject.IsAvaliable = false; } else { updproject.IsAvaliable = true; } context_.Update(updproject); try { await context_.SaveChangesAsync(); } catch (Exception ex) { return(false); } return(true); }
// RefreshSources is for when files are added or removed. // ReloadProjects is for when a project or flags file has changed. public void UpdateProjects(UpdateProjectsOptions options = UpdateProjectsOptions.None) { lock (_lock) { _logger.LogTrace("Updating projects for workspaces"); if ((options & UpdateProjectsOptions.ReloadProjects) != 0) { _projectHosts.SynchronizeWithFactory(new HashSet <string>(), (key) => null); } var projects = _programOptionsProvider.GetProgramOptions().WaitForResult(); _projectHosts.SynchronizeWithFactory( new HashSet <string>(projects.Keys), (key) => { try { var projectHost = _serviceProvider.CreateInstance <ProjectHost>(projects[key]); projectHost.ResolveSources(); return(projectHost); } catch (Exception e) { _logger.LogWarning(e, "Failed to load project: {0}", key); } return(null); }, updateOrReplaceExisting: (key, host) => { if ((options & UpdateProjectsOptions.ResolveExistingProjectSources) != 0) { host.ResolveSources(); } return(host); }); } }