private void SaveSelectionMaskCommandExecute() { var mask = new SelectionMask(); int i = 0, savedCount = 0; foreach (var trendViewModel in ContextMenuTrendsContainer.Trends) { if (trendViewModel.IsOnPlot) { mask.Items.Add(new SelectionItem { Number = i, Name = trendViewModel.Name, }); savedCount++; } i++; } if (savedCount == 0) { return; } SaveSelectionMask(ContextMenuTrendsContainer.Name, mask); RaisePropertyChanged(() => SelectionMasksStorage); RaisePropertyChanged(() => SelectionMasksStorage.SelectionMasks); }
private void SaveSelectionMask(string containerName, SelectionMask mask) { if (!SelectionMasksStorage.SelectionMasks.ContainsKey(containerName)) { SelectionMasksStorage.SelectionMasks[containerName] = new SelectionMasksCollection(); } if (!SelectionMasksStorage.SelectionMasks[containerName].Contains(mask)) { SelectionMasksStorage.SelectionMasks[containerName].Items.Add(mask); SelectionMasksStorage.Save(_applicationSettings.SelectionMasksFullFilePath); } }
/// <summary> Move geometry by mask to level. </summary> /// /// <param name="mask"> The mask. </param> /// <param name="selection"> The selection. </param> /// <param name="level"> The level. </param> public static void MoveGeometryByMaskToLevel(GeometryMask mask, SelectionMask selection, int level) { const int SearchAllLevels = -1; var geometries = SearchManager.GetGeometry(mask, selection, SearchAllLevels).ToList(); if (!geometries.Any()) { return; } foreach (var entity in geometries) { entity.Level = level; entity.Commit(); } }