private void UpdatePipeLines() { Task.Factory.StartNew(() => { var mrList = OpenedMergeRequests.ToList(); var pipelines = _gitLabModel.GetPipelines(); foreach (var pipeline in pipelines) { var mergeRequest = mrList.FirstOrDefault(mr => mr.SourceBranch == pipeline.Ref); if (mergeRequest == null) { continue; } mergeRequest.PipelineStatus = (MergeRequestPipelineStatus)(int)pipeline.Status; mrList.Remove(mergeRequest); if (!mrList.Any()) { break; } } }, TaskCreationOptions.LongRunning); }
private void UpdateMergeRequests() { OpenedMergeRequests.Clear(); var openedMergeRequests = _gitLabModel.GetOpenedMergeRequests(); var currentBranch = _gitModel.GetCurrentBramch(); var favoriteGoupUsers = _gitLabModel.GetUsersFromFavoriteGroup(); foreach (var mergeRequest in openedMergeRequests) { var mergeRequestVm = new MergeRequestViewModel(mergeRequest, _gitModel, _gitLabModel) { IsBranchCheckedOut = mergeRequest.SourceBranch == currentBranch, IsMyGroup = favoriteGoupUsers.Contains(mergeRequest.Assignee?.Name) || favoriteGoupUsers.Contains(mergeRequest.Author?.Name) }; OpenedMergeRequests.Add(mergeRequestVm); } }