Ejemplo n.º 1
0
        private Task UpdateProjects(UpdateProjectsOptions options = UpdateProjectsOptions.None)
        {
            _projectManager.UpdateProjects(options);
            _languageServer.SendNotification("papyrus/projectsUpdated");

            return(Task.FromResult <object>(null));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        // 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);
                });
            }
        }