Esempio n. 1
0
        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();
        }
Esempio n. 2
0
 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();
 }