Пример #1
0
        private static void RemoveDuplicates(List <SavedSearchConfig> searches, SavedSearchConfig newConfig)
        {
            foreach (var search in searches.ToList())
            {
                bool SameTags() => search.Tags.OrderBy(tag => tag)
                .SequenceEqual(newConfig.Tags);

                if (search.Alias == newConfig.Alias || SameTags())
                {
                    searches.Remove(search);
                }
            }
        }
Пример #2
0
 public SavedSearchModel(
     [NotNull] SavedSearchConfig config,
     [NotNull] Action <SavedSearchModel> selectCallback,
     [NotNull] Action <SavedSearchModel> deleteCallback)
 {
     if (selectCallback is null)
     {
         throw new ArgumentNullException(nameof(selectCallback));
     }
     Config        = config ?? throw new ArgumentNullException(nameof(config));
     SelectCommand = new DelegateCommand(() => selectCallback(this));
     DeleteCommand = new DelegateCommand(() => deleteCallback(this));
 }
Пример #3
0
        public async void Receive(SaveSearchMessage message)
        {
            var newConfig = new SavedSearchConfig
            {
                Alias = message.Alias,
                Tags  = message.SearchTags.OrderBy(tag => tag).ToList()
            };

            var searches = SavedSearchConfigs;

            RemoveDuplicates(searches, newConfig);

            searches = searches.Append(newConfig).OrderBy(s => s.Alias).ToList();
            await SaveAndRefreshAsync(searches);
        }