private void MallowMultiMoveClick(object sender, RoutedEventArgs e) { MallowGroup sourceGroup = MallowSource.CurrentSource.Current; MallowGroup targetGroup = (sender as MenuItem)?.DataContext as MallowGroup; if (MallowList.SelectedItems.Count == 0 || sourceGroup is null || targetGroup is null || sourceGroup == targetGroup) { return; } Mallow[] mallows = new Mallow[MallowList.SelectedItems.Count]; MallowList.SelectedItems.CopyTo(mallows, 0); for (int i = 0; i < mallows.Length; i++) { Mallow mallow = mallows[i]; if (!sourceGroup.Mallows.Contains(mallow)) { continue; } targetGroup.Mallows.Insert(i, mallow); sourceGroup.Mallows.Remove(mallow); } }
private void CreateMallowGroupClick(object sender, RoutedEventArgs e) { MallowGroup group = new MallowGroup { Name = "新分组", ModifiedTime = DateTime.Now }; MallowSource.CurrentSource.Data.Insert(0, group); MallowSource.CurrentSource.Current = group; }
public static void Import(IMallowProvider mallowProvider, Mallow[] mallows) { MallowGroup group = new MallowGroup { Name = $"{mallowProvider.Name}导入" }; MallowSource.CurrentSource.Data.Insert(0, group); MallowSource.CurrentSource.Current = group; for (int i = 0; i < mallows.Length; i++) { MallowSource.CurrentSource.Current.Mallows.Insert(i, mallows[i]); } }
private void MallowMoveClick(object sender, RoutedEventArgs e) { Mallow source = ((sender as MenuItem)?.CommandParameter as FrameworkElement)?.DataContext as Mallow; MallowGroup sourceGroup = MallowSource.CurrentSource.Current; MallowGroup targetGroup = (sender as MenuItem)?.DataContext as MallowGroup; if (source is null || sourceGroup is null || targetGroup is null || sourceGroup == targetGroup || !sourceGroup.Mallows.Contains(source)) { return; } targetGroup.Mallows.Insert(0, source); sourceGroup.Mallows.Remove(source); }
public static async Task PullCore(object obj) { if (!(obj is PullWindow pullWindow)) { return; } MallowPuller puller = pullWindow.Puller; bool isCreateMode = pullWindow.IsCreateMode; MallowGroup selectedMallowGroup = pullWindow.SelectedGroup; string createGroupName = pullWindow.CreateGroupName; if (!isCreateMode && selectedMallowGroup is null) { return; } puller.Progress.IsIndeterminate = true; puller.Progress.Text = $"初始化{puller.Name}服务……"; Mallow[] mallows = await puller.VerifyAndPull(isCreateMode?Array.Empty <Mallow>() : selectedMallowGroup.Mallows.ToArray()); puller.Progress.IsIndeterminate = true; puller.Progress.Text = "保存用户信息……"; Application.Current.Dispatcher.Invoke(() => pullWindow.Close()); if (mallows is null) { return; } if (mallows.Length == 0) { MessageBox.Show( "没有要拉取的项目。", "成功", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK); return; } Dispatcher.CurrentDispatcher.Invoke(() => { MallowGroup resultGroup = isCreateMode ? new MallowGroup { Name = createGroupName } : selectedMallowGroup; if (resultGroup is null) { return; } for (int i = 0; i < mallows.Length; i++) { resultGroup.Mallows.Insert(i, mallows[i]); } MallowSource.CurrentSource.Data.Insert(0, resultGroup); MallowSource.CurrentSource.Current = resultGroup; }); }