private void UpdateFromIndex(IndexDefinition indexDefinition) { UpdatePriority(indexDefinition.Name); index = indexDefinition; if (index.Maps.Count == 0) { index.Maps.Add(""); } Maps.Set(index.Maps.Select(x => new MapItem { Text = x })); Maps[0].PropertyChanged += (sender, args) => { MapQuery = Maps[0].Text; }; MapQuery = Maps[0].Text; ShowReduce = Reduce != null; ShowTransformResults = TransformResults != null; CreateOrEditField(index.Indexes, (f, i) => f.Indexing = i); CreateOrEditField(index.Stores, (f, i) => f.Storage = i); CreateOrEditField(index.TermVectors, (f, i) => f.TermVector = i); CreateOrEditField(index.SortOptions, (f, i) => f.Sort = i); CreateOrEditField(index.Analyzers, (f, i) => f.Analyzer = i); CreateOrEditField(index.Suggestions, (f, i) => { f.SuggestionAccuracy = i.Accuracy; f.SuggestionDistance = i.Distance; }); foreach (var pair in index.SpatialIndexes) { var field = SpatialFields.FirstOrDefault(f => f.Name == pair.Key); if (field == null) { SpatialFields.Add(new SpatialFieldProperties(pair)); } else { field.UpdateFromSpatialOptions(pair.Value); } } RestoreDefaults(index); UpdateErrors(); hasUnsavedChanges = false; OnEverythingChanged(); }
private void UpdateFields() { index.Indexes.Clear(); index.Stores.Clear(); index.SortOptions.Clear(); index.Analyzers.Clear(); index.Suggestions.Clear(); index.TermVectors.Clear(); index.SpatialIndexes.Clear(); foreach (var item in Fields.Where(item => item.Name != null)) { index.Indexes[item.Name] = item.Indexing; index.Stores[item.Name] = item.Storage; index.SortOptions[item.Name] = item.Sort; index.Analyzers[item.Name] = item.Analyzer; index.TermVectors[item.Name] = item.TermVector; index.Suggestions[item.Name] = new SuggestionOptions { Accuracy = item.SuggestionAccuracy, Distance = item.SuggestionDistance }; } foreach (var item in SpatialFields.Where(item => item.Name != null)) { index.SpatialIndexes[item.Name] = new SpatialOptions { Type = item.Type, Strategy = item.Strategy, MaxTreeLevel = item.MaxTreeLevel, MinX = item.MinX, MaxX = item.MaxX, MinY = item.MinY, MaxY = item.MaxY, Units = item.Units }; } index.RemoveDefaultValues(); }