Esempio n. 1
0
 public PatternsViewModel(SettingsViewModel vmSettings, bool needCopy)
 {
     this.vmSettings = !needCopy ? vmSettings : vmSettings.ShallowCopy();
     this.WhenAnyValue(x => x.TextFilter, x => x.ScopeFilter).Subscribe(_ => ApplyFilters());
     this.WhenAnyValue(x => x.PatternItems).Subscribe(_ => this.RaisePropertyChanged(nameof(StatusText)));
     this.WhenAnyValue(x => x.SelectedPatternItem, (MPattern v) => v != null).ToPropertyEx(this, x => x.HasSelectedPatternItem);
     ReloadCommand = ReactiveCommand.CreateFromTask(async() =>
     {
         IsBusy          = true;
         PatternItemsAll = new ObservableCollection <MPattern>(await patternDS.GetDataByLang(vmSettings.SelectedLang.ID));
         ApplyFilters();
         IsBusy = false;
     });
     Reload();
 }
Esempio n. 2
0
        public static async Task AutoMergePatterns()
        {
            var storept = new PatternDataStore();
            var lst     = await storept.GetDataByLang(2);

            var dic = lst.GroupBy(o => o.PATTERN).Where(g => g.Count() > 1).ToDictionary(g => g.Key, g => g.OrderBy(o => o.ID).ToList());

            foreach (var kv in dic)
            {
                var sourceItems = kv.Value;
                var mergedItem  = new MPattern
                {
                    IDS_MERGE = string.Join(",", sourceItems.Select(o => o.ID.ToString())),
                    PATTERN   = kv.Key,
                    NOTE      = sourceItems.Select(o => o.NOTE).SplitUsingCommaAndMerge(),
                    TAGS      = sourceItems.Select(o => o.TAGS).SplitUsingCommaAndMerge()
                };
                await storept.MergePatterns(mergedItem);
            }
        }