private static ServiceInfoData SelectNodes(XmlNamespaceManager mngr, XPathNavigator nav) { var serviceInfo = new ServiceInfoData(); var submitParams = nav.Select("/edmx:Edmx/edmx:DataServices/edm:Schema/edm:EntityContainer[@Name='Default']/edm:FunctionImport/edm:Parameter", mngr); Console.WriteLine(submitParams); foreach (XPathNavigator param in submitParams) { var name = param.GetAttribute("Name", ""); var type = param.GetAttribute("Type", ""); var nullable = param.GetAttribute("Nullable", ""); serviceInfo.Inputs.Add(new KeyValuePair <string, EdmPrimitiveTypeKind>(name, ParseEdmType(type))); } var resultScore = nav.Select("/edmx:Edmx/edmx:DataServices/edm:Schema/edm:ComplexType[@Name='ScoreResult']/edm:Property", mngr); foreach (XPathNavigator param in resultScore) { var name = param.GetAttribute("Name", ""); var type = param.GetAttribute("Type", ""); var nullable = param.GetAttribute("Nullable", ""); serviceInfo.Outputs.Add(new KeyValuePair <string, EdmPrimitiveTypeKind>(name, ParseEdmType(type))); } return(serviceInfo); }
/// <summary> /// Add a know train in T2G and might initialize the data-package embedded service. /// </summary> /// <param name="trainId">The train identifier.</param> /// <param name="vehicleId">The vehicle identifier.</param> /// <param name="isOnline">Indicates the initiale online status of the train.</param> /// <param name="ipAddress">The ip address of the train.</param> /// <param name="dataPackagePort">The data package port.</param> /// <param name="communicationLink">The communication link.</param> /// <param name="initializeEmbeddedService">Indicates if the embedded data-package service shall be initialized.</param> /// <param name="currentBaseline">The current baseline version.</param> /// <exception cref="NotImplementedException">Support to multiple train need to be implemented if needed.</exception> protected void InitializeTrain(string trainId, int vehicleId, bool isOnline, string ipAddress, ushort dataPackagePort, CommLinkEnum communicationLink, bool initializeEmbeddedService, string currentBaseline) { _identificationServiceStub.UpdateSystem(trainId, vehicleId, isOnline, 0, DEFAULT_MISSION, communicationLink, ipAddress); _vehicleInfoServiceStub.UpdateMessageData(new VersionMessage(trainId, DEFAULT_PIS_VERSION)); BaselineMessage baseline = new BaselineMessage(trainId); baseline.CurrentVersion = currentBaseline; _vehicleInfoServiceStub.UpdateMessageData(baseline); MissionMessage mission = new MissionMessage(trainId, DEFAULT_MISSION, (string.IsNullOrEmpty(DEFAULT_MISSION)) ? "NI" : "MI", DEFAULT_OPERATOR_CODE); _vehicleInfoServiceStub.UpdateMessageData(mission); ServiceInfoData datapackageService = new ServiceInfoData((ushort)eServiceID.eSrvSIF_DataPackageServer, SERVICE_NAME_DATA_PACKAGE, isOnline && initializeEmbeddedService, ipAddress, dataPackagePort, (ushort)vehicleId, DEFAULT_CAR_ID); _vehicleInfoServiceStub.UpdateServiceData(trainId, datapackageService); _dataStoreServiceStub.UpdateDataStore(new ElementsDataStoreData(trainId)); if (initializeEmbeddedService) { if (_trainDataPackageServiceStub != null) { throw new NotImplementedException("Support to multiple train need to be implemented if needed."); } _trainDataPackageServiceStub = new TrainDataPackageServiceStub(trainId); Uri address = new Uri("http://" + ipAddress + ":" + dataPackagePort); _hostTrainDataPackageService = new ServiceHost(_trainDataPackageServiceStub, address); _hostTrainDataPackageService.Open(); } }
private async void OkButtonClick(object sender, RoutedEventArgs e) { try { var oauthEndpoint = UrlToODataUrl(AzureURL.Text); var req = WebRequest.Create(oauthEndpoint); req.ContentType = "application/json"; var response = await req.GetResponseAsync(); var responseStream = response.GetResponseStream(); var reader = new StreamReader(responseStream); var content = await reader.ReadToEndAsync(); var serializer = new JavaScriptSerializer(); var odataInfo = serializer.Deserialize <Dictionary <string, object> >(content); object value; if (odataInfo.TryGetValue("odata.metadata", out value) && (value is string)) { req = WebRequest.Create((string)value); response = await req.GetResponseAsync(); responseStream = response.GetResponseStream(); var doc = new XPathDocument(responseStream); XmlNamespaceManager mngr = new XmlNamespaceManager(new NameTable( )); mngr.AddNamespace("edmx", "http://schemas.microsoft.com/ado/2009/11/edmx"); mngr.AddNamespace("m", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"); mngr.AddNamespace("edm", "http://schemas.microsoft.com/ado/2009/11/edm"); var nav = doc.CreateNavigator(); ServiceInfo = SelectNodes(mngr, nav); DialogResult = true; Close(); } } catch (WebException wex) { MessageBox.Show(String.Format(LocalizedResources.MetadataDownloadFailed, wex.Message), "Python Azure ML", MessageBoxButton.OK, MessageBoxImage.Error); } catch (UriFormatException ufe) { MessageBox.Show(String.Format(LocalizedResources.AzureMLServiceInvalid, ufe.Message), "Python Azure ML", MessageBoxButton.OK, MessageBoxImage.Error); } }
private async void OkButtonClick(object sender, RoutedEventArgs e) { try { var oauthEndpoint = UrlToODataUrl(AzureURL.Text); var req = WebRequest.Create(oauthEndpoint); req.ContentType = "application/json"; var response = await req.GetResponseAsync(); var responseStream = response.GetResponseStream(); var reader = new StreamReader(responseStream); var content = await reader.ReadToEndAsync(); var serializer = new JavaScriptSerializer(); var odataInfo = serializer.Deserialize<Dictionary<string, object>>(content); object value; if (odataInfo.TryGetValue("odata.metadata", out value) && (value is string)) { req = WebRequest.Create((string)value); response = await req.GetResponseAsync(); responseStream = response.GetResponseStream(); var doc = new XPathDocument(responseStream); XmlNamespaceManager mngr = new XmlNamespaceManager(new NameTable( )); mngr.AddNamespace("edmx", "http://schemas.microsoft.com/ado/2009/11/edmx"); mngr.AddNamespace("m", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"); mngr.AddNamespace("edm", "http://schemas.microsoft.com/ado/2009/11/edm"); var nav = doc.CreateNavigator(); ServiceInfo = SelectNodes(mngr, nav); DialogResult = true; Close(); } } catch (WebException wex) { MessageBox.Show(String.Format(LocalizedResources.MetadataDownloadFailed, wex.Message), "Python Azure ML", MessageBoxButton.OK, MessageBoxImage.Error); } catch (UriFormatException ufe) { MessageBox.Show(String.Format(LocalizedResources.AzureMLServiceInvalid, ufe.Message), "Python Azure ML", MessageBoxButton.OK, MessageBoxImage.Error); } }
private static ServiceInfoData SelectNodes(XmlNamespaceManager mngr, XPathNavigator nav) { var serviceInfo = new ServiceInfoData(); var submitParams = nav.Select("/edmx:Edmx/edmx:DataServices/edm:Schema/edm:EntityContainer[@Name='Default']/edm:FunctionImport/edm:Parameter", mngr); Console.WriteLine(submitParams); foreach (XPathNavigator param in submitParams) { var name = param.GetAttribute("Name", ""); var type = param.GetAttribute("Type", ""); var nullable = param.GetAttribute("Nullable", ""); serviceInfo.Inputs.Add(new KeyValuePair<string, EdmPrimitiveTypeKind>(name, ParseEdmType(type))); } var resultScore = nav.Select("/edmx:Edmx/edmx:DataServices/edm:Schema/edm:ComplexType[@Name='ScoreResult']/edm:Property", mngr); foreach (XPathNavigator param in resultScore) { var name = param.GetAttribute("Name", ""); var type = param.GetAttribute("Type", ""); var nullable = param.GetAttribute("Nullable", ""); serviceInfo.Outputs.Add(new KeyValuePair<string, EdmPrimitiveTypeKind>(name, ParseEdmType(type))); } return serviceInfo; }