private static bool TryGetItemWithOverriddenAnalysisScope( WorkItem item, ImmutableArray <IIncrementalAnalyzer> allAnalyzers, OptionSet options, BackgroundAnalysisScope analysisScope, IAsynchronousOperationListener listener, [NotNullWhen(returnValue: true)] out WorkItem?newWorkItem ) { var analyzersToExecute = item.GetApplicableAnalyzers(allAnalyzers); var analyzersWithOverriddenAnalysisScope = analyzersToExecute .Where( a => a.GetOverriddenBackgroundAnalysisScope(options, analysisScope) != analysisScope ) .ToImmutableHashSet(); if (!analyzersWithOverriddenAnalysisScope.IsEmpty) { newWorkItem = item.With( analyzersWithOverriddenAnalysisScope, listener.BeginAsyncOperation("WorkItem") ); return(true); } newWorkItem = null; return(false); }
public Task <WorkItem?> GetAsync(string projectCode, string id) { WorkItem?result = null; _data.TryGetValue(GetKey(projectCode, id), out result); return(Task.FromResult <WorkItem?>(result)); }
public WorkItem?ProcessNextHighestPriority() { WorkItem?workItem = _workItems.Where(work => !work.IsCompleted) .OrderByDescending(work => work.Priority) .FirstOrDefault(); return(workItem switch { not null when _workItems.Remove(workItem) => workItem.MarkAsComplete(), _ => default });
public async Task <string> Update(string companyId, UpdateTaskVm vm) { var company = await _companyRepository.GetFirstOrDefault(companyId) ?? throw new Exception($"No Company found against id:'{companyId}'"); var project = company.GetProject(vm.ProjectId) ?? throw new Exception($"No Project found against id:'{vm.ProjectId}'"); WorkItem?workItem = null; if (vm.ParentId is not null) { workItem = project.GetWorkItem(vm.ParentId); } var task = project.GetTask(vm.Id); task.Update(vm.Name, vm.Description, vm.Tags, vm.Discussion, vm.Priority, vm.Status, vm.Activity, vm.EstimatedHours, vm.RemainingHours, vm.CompletedHours, workItem, ""); await _companyRepository.SaveChanges(); return(task.Id); }
public WorkItemUpdatedResult(bool success, WorkItem?changedWorkItem, IEnumerable <ErrorMessage> errors) { Success = success; UpdatedWorkItem = changedWorkItem; Errors = errors; }
public int CompareTo(WorkItem?other) => DueTime.CompareTo(other !.DueTime);
public int CompareTo(WorkItem?other) => Comparer <DateTimeOffset> .Default.Compare(DueTime, other !.DueTime);
public void Update(string name, string description, string tags, string discussion, byte priority, Status status, Activity activity, byte estimatedHours, byte remainingHours, byte completedHours, WorkItem?parent, string history) { Name = name; Description = description; Tags = tags; Discussion = discussion; Priority = priority; Activity = activity; EstimatedHours = estimatedHours; RemainingHours = remainingHours; CompletedHours = completedHours; Status = status; UpdateHistory = history; if (parent is not null) { ParentId = parent.Id; } }
public WorkItemCreatedResult(bool success, WorkItem?createdWorkItem, IEnumerable <ErrorMessage> errors) { Success = success; CreatedWorkItem = createdWorkItem; Errors = errors; }