public async Task Edit() { DialogWindow w = new DialogWindow(); w.Title = "Edit target"; w.SaveButtonIsDefault = true; var m = JsonConvert.DeserializeObject <SecurityDescriptorTarget>(JsonConvert.SerializeObject(this.SelectedItem.Model)); var vm = this.factory.CreateViewModel(m); w.DataContext = vm; await this.GetWindow().ShowChildWindowAsync(w); if (w.Result == MessageDialogResult.Affirmative) { this.Model.Remove(this.SelectedItem.Model); int existingPosition = this.ViewModels.IndexOf(this.SelectedItem); this.ViewModels.Remove(this.SelectedItem); this.Model.Add(m); this.ViewModels.Insert(Math.Min(existingPosition, this.ViewModels.Count), vm); this.SelectedItem = vm; } }
public async Task <SecurityDescriptorTargetViewModel> CreateViewModelAsync(SecurityDescriptorTarget model, SecurityDescriptorTargetViewModelDisplaySettings settings) { var item = new SecurityDescriptorTargetViewModel(model, settings, channelSelectionViewModelFactory, fileSelectionViewModelFactory, appPathProvider, logger, dialogCoordinator, validator.Invoke(), directory, domainTrustProvider, discoveryServices, localSam, objectSelectionProvider, scriptTemplateProvider, licenseManager, shellExecuteProvider); await item.Initialization; return(item); }
public async Task EditItem(SecurityDescriptorTargetViewModel selectedItem, Window owner) { try { if (selectedItem == null) { return; } ExternalDialogWindow w = new ExternalDialogWindow { Title = "Edit rule", SaveButtonIsDefault = true, Height = childWindowHeight, Width = childWindowWidth, Owner = owner }; var m = JsonConvert.DeserializeObject <SecurityDescriptorTarget>(JsonConvert.SerializeObject(selectedItem.Model)); var vm = await this.factory.CreateViewModelAsync(m, this.ChildDisplaySettings); vm.IsEditing = true; w.DataContext = vm; if (w.ShowDialog() == true) { this.Model.Remove(selectedItem.Model); int existingPosition = this.ViewModels.IndexOf(selectedItem); this.ViewModels.Remove(selectedItem); this.Model.Add(m); m.LastModifiedBy = WindowsIdentity.GetCurrent().User.ToString(); m.LastModified = DateTime.UtcNow; this.ViewModels.Insert(Math.Min(Math.Max(existingPosition, 0), this.ViewModels.Count), vm); this.SelectedItem = vm; } } catch (Exception ex) { this.logger.LogError(EventIDs.UIGenericError, ex, "Error editing item"); await this.dialogCoordinator.ShowMessageAsync(this, "Error", $"Could not edit the selected item. {ex.Message}"); } }
private bool IsFiltered(object item) { var trimmedText = this.SearchText?.TrimStart('?'); if (string.IsNullOrWhiteSpace(trimmedText)) { return(true); } SecurityDescriptorTargetViewModel vm = (SecurityDescriptorTargetViewModel)item; if (this.matchedComputerViewModels != null) { return(this.matchedComputerViewModels.Contains(vm.Id)); } else { return((vm.DisplayName != null && vm.DisplayName.Contains(trimmedText, StringComparison.OrdinalIgnoreCase)) || (vm.Description != null && vm.Description.Contains(trimmedText, StringComparison.OrdinalIgnoreCase))); } }
public async Task Delete() { if (this.SelectedItem == null) { return; } MetroDialogSettings s = new MetroDialogSettings { AnimateShow = false, AnimateHide = false }; if (await this.DialogCoordinator.ShowMessageAsync(this, "Confirm", "Are you sure you want to delete this target?", MessageDialogStyle.AffirmativeAndNegative, s) == MessageDialogResult.Affirmative) { var deleting = this.SelectedItem; this.Model.Remove(deleting.Model); this.ViewModels.Remove(deleting); this.SelectedItem = this.ViewModels.FirstOrDefault(); } }
public MatchedSecurityDescriptorTargetViewModel(SecurityDescriptorTargetViewModel model) { this.Model = model; }