void Merge(object o) { try { var candidates = FilteredChangesets.Where(cs => cs.IsSelected).Select(cs => cs.TfsChangeset); if (!candidates.Any()) { var mbvm = new MessageBoxViewModel("Perform merge", "No changesets are currently selected.", MessageBoxViewModel.MessageBoxButtons.OK); Repository.Instance.ViewManager.ShowModal(mbvm); } else { var mergeViewModel = new PrepareMergeViewModel(TfsItemCache, candidates); var result = ViewSelectionViewModel.GetMergeSourceTargetBranches(); mergeViewModel.MergeSource = result != null ? result.SourceBranch : null; mergeViewModel.MergeTarget = result != null ? result.TargetBranch : null; mergeViewModel.PathFilter = result != null ? result.PathFilter : null; mergeViewModel.SetDefaults(); if (Repository.Instance.Settings.FetchSettings <bool>(Constants.Settings.PerformNonModalMergeKey)) { vMergePackage.OpenMergeView(mergeViewModel); } else { Repository.Instance.ViewManager.ShowModal(mergeViewModel, "Modal"); } } } catch (Exception ex) { SimpleLogger.Log(ex, true); } }
void PerformApplyFilter() { SimpleLogger.Log(SimpleLogLevel.Info, "Start perform apply changeset filters"); _applyFilterTimer.Stop(); _applyFilterTimer.IsEnabled = false; var defaultProfile = Repository.Instance.ProfileProvider.GetDefaultProfile(); if (defaultProfile == null) { return; } try { DetachFromProfileProvider(); defaultProfile.ChangesetIncludeCommentFilter = IncludeCommentFilterActive ? IncludeCommentFilter : null; defaultProfile.ChangesetExcludeCommentFilter = ExcludeCommentFilterActive ? ExcludeCommentFilter : null; defaultProfile.DateFromFilter = DateFromFilterActive ? DateFromFilter : null; defaultProfile.DateToFilter = DateToFilterActive ? DateToFilter : null; } finally { AttachToProfileProvider(); } Regex reInc = null, reExc = null; if (IncludeCommentFilterActive) { try { reInc = new Regex(IncludeCommentFilter); } catch (Exception) { reInc = null; } } if (ExcludeCommentFilterActive) { try { reExc = new Regex(ExcludeCommentFilter); } catch (Exception) { reExc = null; } } var newFilteredChangesets = new ObservableCollection <TfsChangesetWrapper>(); foreach (var cs in Changesets) { if (reInc != null) { if (!reInc.IsMatch(cs.TfsChangeset.Description)) { continue; } } if (reExc != null) { if (reExc.IsMatch(cs.TfsChangeset.Description)) { continue; } } if (DateFromFilterActive) { if (cs.TfsChangeset.Changeset.CreationDate < DateFromFilter) { continue; } } if (DateToFilterActive) { if (cs.TfsChangeset.Changeset.CreationDate > DateToFilter) { continue; } } newFilteredChangesets.Add(cs); } FilteredChangesets = newFilteredChangesets; ChangesetList.SetContent(FilteredChangesets); foreach (var item in TfsItemCache.ChangesetCache) { item.IsVisible = FilteredChangesets.Contains(item); } }
private void ResetChangesets() { Changesets.Clear(); FilteredChangesets.Clear(); }