コード例 #1
0
        public static List <DataObjectViewModel> BuildItems(
            List <JObject> searchResults,
            bool includeMetadata,
            string dataType,
            IDataApiClient dataApiClient,
            IClipboard clipboard,
            ICollectionSwitcher collectionSwitcher,
            Action <DataObjectViewModel> deleteCallback)
        {
            var dataObjects          = new List <DataObjectViewModel>();
            var jsonViewModelFactory = new JsonViewModelFactory(clipboard, collectionSwitcher);

            foreach (var jObject in searchResults)
            {
                var    id   = jObject.ContainsKey("_id") ? jObject["_id"].Value <string>() : null;
                JToken data = jObject;
                if (!includeMetadata && jObject.ContainsKey("Data"))
                {
                    data = jObject["Data"];
                }
                if (!(jsonViewModelFactory.Create(data) is JObjectViewModel jObjectViewModel))
                {
                    continue;
                }
                var dataObject = new DataObjectViewModel(jObjectViewModel, dataType, id, dataApiClient, deleteCallback);
                dataObjects.Add(dataObject);
            }
            return(dataObjects);
        }
コード例 #2
0
 public DataObjectLoader(
     IDataApiClient dataApiClient,
     IClipboard clipboard,
     ICollectionSwitcher collectionSwitcher)
 {
     this.dataApiClient   = dataApiClient;
     jsonViewModelFactory = new JsonViewModelFactory(clipboard, collectionSwitcher);
 }
コード例 #3
0
 public CollectionExplorationViewModel(
     IDataApiClient dataApiClient,
     CollectionInformation collectionInformation,
     DataVisualizer dataVisualizer,
     IClipboard clipboard,
     ICollectionSwitcher collectionSwitcher)
 {
     CollectionInformation   = collectionInformation;
     DataObjectListViewModel = new DataObjectListViewModel(collectionInformation, dataApiClient, dataVisualizer, clipboard, collectionSwitcher);
     QueryEditorViewModel    = new QueryEditorViewModel(dataApiClient, collectionInformation.CollectionName);
     QueryEditorViewModel.JsonSearchFinished += QueryEditorViewModel_JsonSearchFinished;
 }
コード例 #4
0
 public CollectionsMainViewModel(
     IDataApiClient dataApiClient,
     DataVisualizer dataVisualizer,
     IReadonlyObjectDatabase <UserProfile> userDatabase,
     IClipboard clipboard)
 {
     this.dataApiClient      = dataApiClient;
     this.dataVisualizer     = dataVisualizer;
     this.clipboard          = clipboard;
     collectionSwitcher      = new CollectionSwitcher(SwitchToCollection, Constants.DefaultQuery);
     CollectionListViewModel = new CollectionListViewModel(dataApiClient, userDatabase);
     CollectionListViewModel.PropertyChanged += CollectionListViewModel_PropertyChanged;
 }
コード例 #5
0
        public DataObjectListViewModel(
            CollectionInformation collectionInformation,
            IDataApiClient dataApiClient,
            DataVisualizer dataVisualizer,
            IClipboard clipboard,
            ICollectionSwitcher collectionSwitcher)
        {
            this.dataApiClient = dataApiClient;

            this.dataVisualizer     = dataVisualizer;
            this.clipboard          = clipboard;
            this.collectionSwitcher = collectionSwitcher;
            CollectionInformation   = collectionInformation;
            CanVisualize            = dataVisualizer.CanVisualize(CollectionInformation.CollectionName);
            ExportCommand           = new RelayCommand(Export, CanExport);
            VisualizeCommand        = new RelayCommand(Visualize, () => CanVisualize);
        }
コード例 #6
0
        public JPropertyViewModel(
            JProperty jProperty,
            JsonViewModelFactory jsonViewModelFactory,
            IClipboard clipboard,
            ICollectionSwitcher collectionSwitcher)
        {
            JToken                  = jProperty;
            this.clipboard          = clipboard;
            this.collectionSwitcher = collectionSwitcher;
            Name = jProperty.Name;
            var referenceMatch = Regex.Match(Name, "^(?<ReferenceCollection>.+)(Id|ID)$");

            IsReference          = referenceMatch.Success;
            ReferencedCollection = DetermineReferencedCollection(referenceMatch);
            if (jProperty.Value.HasValues)
            {
                Value = string.Empty;
                if (jProperty.Value.Type == JTokenType.Array)
                {
                    Children = jProperty.Value.Children()
                               .Select(jsonViewModelFactory.Create)
                               .Where(vm => vm != null)
                               .ToList();
                }
                else if (jProperty.Value.Type == JTokenType.Object)
                {
                    Children = ((JObject)jProperty.Value)
                               .Children()
                               .Select(jsonViewModelFactory.Create)
                               .ToList();
                }
            }
            else
            {
                Value    = jProperty.Value.ToString();
                Children = new List <IJsonViewModel>();
            }
            CopyNameCommand      = new RelayCommand(CopyNameToClipboard);
            CopyValueCommand     = new RelayCommand(CopyValueToClipboard);
            OpenReferenceCommand = new RelayCommand(OpenReference, () => IsReference);
        }
コード例 #7
0
 public JsonViewModelFactory(IClipboard clipboard, ICollectionSwitcher collectionSwitcher)
 {
     this.clipboard          = clipboard;
     this.collectionSwitcher = collectionSwitcher;
 }