예제 #1
0
        private ServiceDataItem CreateServiceDataItem(ServiceInfo service)
        {
            var item = new ServiceDataItem(service);

            RefreshServiceCollectionsFromMetadataCache(item, service);
            return(item);
        }
예제 #2
0
        public async Task <bool> RemoveServiceDataItemAsync(ServiceDataItem serviceItem)
        {
            _rootItem.Elements.Remove(serviceItem);
            var serviceInfo = new ServiceInfo()
            {
                Name = serviceItem.Title
            };

            App.AppData.DeleteService(serviceInfo);
            bool ok = await App.AppData.SaveServicesAsync();

            return(ok);
        }
예제 #3
0
        public async Task <bool> UpdateServiceDataItemAsync(ServiceDataItem serviceItem, ServiceInfo serviceInfo)
        {
            var originalTitle = serviceItem.Title;

            serviceItem.Title       = serviceInfo.Name;
            serviceItem.Subtitle    = serviceInfo.Url;
            serviceItem.Description = serviceInfo.Description;
            bool ok = await RefreshMetadataCacheAsync(serviceInfo);

            if (ok)
            {
                RefreshServiceCollectionsFromMetadataCache(serviceItem, serviceInfo);
                App.AppData.UpdateService(originalTitle, serviceInfo);
                ok = await App.AppData.SaveServicesAsync();
            }
            return(ok);
        }
예제 #4
0
 private void RefreshServiceCollectionsFromMetadataCache(ServiceDataItem item, ServiceInfo service)
 {
     item.Elements.Clear();
     if (!string.IsNullOrEmpty(service.MetadataCache))
     {
         var element = XElement.Parse(service.MetadataCache);
         if (element.Name == "Error")
         {
             var errorItem = CreateErrorDataItem(service, element);
             item.Elements.Add(errorItem);
         }
         else
         {
             var schema = ODataClient.ParseSchemaString(service.MetadataCache);
             foreach (var table in schema.Tables)
             {
                 var collectionItem = CreateCollectionDataItem(service, table);
                 item.Elements.Add(collectionItem);
             }
         }
     }
 }
예제 #5
0
 private void editButton_Click(object sender, RoutedEventArgs e)
 {
     this.bottomAppBar.IsOpen = false;
     _editedItem = this.itemListView.SelectedItem as ServiceDataItem;
     this.serviceName.Text = _editedItem.Title;
     this.serviceUrl.Text = _editedItem.Subtitle;
     this.serviceDescription.Text = _editedItem.Description;
     this.editPopup.IsOpen = true;
     RefreshSaveButtonState();
 }
예제 #6
0
        private void addButton_Click(object sender, RoutedEventArgs e)
        {
            this.bottomAppBar.IsOpen = false;
            _editedItem = null;

            this.serviceName.Text = string.Empty;
            this.serviceUrl.Text = string.Empty;
            this.serviceDescription.Text = string.Empty;
            this.editPopup.IsOpen = true;
            RefreshSaveButtonState();
        }
예제 #7
0
 private void RefreshServiceCollectionsFromMetadataCache(ServiceDataItem item, ServiceInfo service)
 {
     item.Elements.Clear();
     if (!string.IsNullOrEmpty(service.MetadataCache))
     {
         var element = XElement.Parse(service.MetadataCache);
         if (element.Name == "Error")
         {
             var errorItem = CreateErrorDataItem(service, element);
             item.Elements.Add(errorItem);
         }
         else
         {
             var schema = ODataClient.ParseSchemaString(service.MetadataCache);
             foreach (var table in schema.Tables)
             {
                 var collectionItem = CreateCollectionDataItem(service, table);
                 item.Elements.Add(collectionItem);
             }
         }
     }
 }
예제 #8
0
 private ServiceDataItem CreateServiceDataItem(ServiceInfo service)
 {
     var item = new ServiceDataItem(service);
     RefreshServiceCollectionsFromMetadataCache(item, service);
     return item;
 }
예제 #9
0
 public async Task<bool> RemoveServiceDataItemAsync(ServiceDataItem serviceItem)
 {
     _rootItem.Elements.Remove(serviceItem);
     var serviceInfo = new ServiceInfo() { Name = serviceItem.Title };
     App.AppData.DeleteService(serviceInfo);
     bool ok = await App.AppData.SaveServicesAsync();
     return ok;
 }
예제 #10
0
 public async Task<bool> UpdateServiceDataItemAsync(ServiceDataItem serviceItem, ServiceInfo serviceInfo)
 {
     var originalTitle = serviceItem.Title;
     serviceItem.Title = serviceInfo.Name;
     serviceItem.Subtitle = serviceInfo.Url;
     serviceItem.Description = serviceInfo.Description;
     bool ok = await RefreshMetadataCacheAsync(serviceInfo);
     if (ok)
     {
         RefreshServiceCollectionsFromMetadataCache(serviceItem, serviceInfo);
         App.AppData.UpdateService(originalTitle, serviceInfo);
         ok = await App.AppData.SaveServicesAsync();
     }
     return ok;
 }