public IResult <ISubmodelDescriptor> CreateSubmodel(string aasId, ISubmodelDescriptor submodel) { var request = base.CreateJsonContentRequest(GetUri(aasId, SubmodelPath), HttpMethod.Post, submodel); var response = base.SendRequest(request, Timeout); return(base.EvaluateResponse <ISubmodelDescriptor>(response, response.Entity)); }
public SubmodelHttpClient(ISubmodelDescriptor submodelDescriptor) : this() { submodelDescriptor = submodelDescriptor ?? throw new ArgumentNullException(nameof(submodelDescriptor)); HttpEndpoint httpEndpoint = submodelDescriptor.Endpoints?.OfType <HttpEndpoint>()?.FirstOrDefault(); if (httpEndpoint == null || string.IsNullOrEmpty(httpEndpoint.Address)) { throw new Exception("There is no http endpoint for instantiating a client"); } else { if (!httpEndpoint.Address.EndsWith(SEPARATOR + SUBMODEL) || !httpEndpoint.Address.EndsWith(SEPARATOR + SUBMODEL + SEPARATOR)) { Endpoint = new Uri(httpEndpoint.Address + SEPARATOR + SUBMODEL); } else { Endpoint = new Uri(httpEndpoint.Address); } } }
public IResult <ISubmodelDescriptor> RetrieveSubmodel(string aasId, string submodelId) { if (string.IsNullOrEmpty(aasId)) { return(new Result <ISubmodelDescriptor>(new ArgumentNullException(nameof(aasId)))); } if (string.IsNullOrEmpty(submodelId)) { return(new Result <ISubmodelDescriptor>(new ArgumentNullException(nameof(submodelId)))); } string aasIdHash = GetHashString(aasId); string aasDirectoryPath = Path.Combine(FolderPath, aasIdHash); if (Directory.Exists(aasDirectoryPath)) { string submodelPath = Path.Combine(aasDirectoryPath, SubmodelFolder, submodelId) + ".json"; if (File.Exists(submodelPath)) { try { string submodelContent = File.ReadAllText(submodelPath); ISubmodelDescriptor descriptor = JsonConvert.DeserializeObject <ISubmodelDescriptor>(submodelContent, JsonSerializerSettings); return(new Result <ISubmodelDescriptor>(true, descriptor)); } catch (Exception e) { return(new Result <ISubmodelDescriptor>(e)); } } else { return(new Result <ISubmodelDescriptor>(false, new NotFoundMessage($"Submodel with {submodelId}"))); } } else { return(new Result <ISubmodelDescriptor>(false, new NotFoundMessage($"Asset Administration Shell with {aasId}"))); } }
public IResult <ISubmodelDescriptor> CreateSubmodel(string aasId, ISubmodelDescriptor submodel) { if (string.IsNullOrEmpty(aasId)) { return(new Result <ISubmodelDescriptor>(new ArgumentNullException(nameof(aasId)))); } if (submodel == null || string.IsNullOrEmpty(submodel.IdShort)) { return(new Result <ISubmodelDescriptor>(new ArgumentNullException("submodel.IdShort"))); } string aasIdHash = GetHashString(aasId); string aasDirectoryPath = Path.Combine(FolderPath, aasIdHash); if (!Directory.Exists(aasDirectoryPath)) { return(new Result <ISubmodelDescriptor>(false, new Message(MessageType.Error, "AssetAdministrationShell does not exist - register AAS first"))); } try { string submodelDirectory = Path.Combine(aasDirectoryPath, SubmodelFolder); string submodelContent = JsonConvert.SerializeObject(submodel, JsonSerializerSettings); if (!Directory.Exists(submodelDirectory)) { Directory.CreateDirectory(submodelDirectory); } string submodelFilePath = Path.Combine(submodelDirectory, submodel.IdShort) + ".json"; File.WriteAllText(submodelFilePath, submodelContent); IResult <ISubmodelDescriptor> readSubmodel = RetrieveSubmodel(aasId, submodel.IdShort); return(readSubmodel); } catch (Exception e) { return(new Result <ISubmodelDescriptor>(e)); } }
public SubmodelServices(ISubmodelServiceProvider submodelServiceProvider) { this.submodelServiceProvider = submodelServiceProvider; ServiceDescriptor = submodelServiceProvider?.ServiceDescriptor; }
public DistributedSubmodelServiceProvider(ISubmodelClientFactory submodelClientFactory, ISubmodelDescriptor serviceDescriptor) { ServiceDescriptor = serviceDescriptor; submodelClient = submodelClientFactory.CreateSubmodelClient(serviceDescriptor); }
public SubmodelServiceProvider(ISubmodel submodel, ISubmodelDescriptor submodelDescriptor) : this() { Submodel = submodel; ServiceDescriptor = submodelDescriptor; }
public IResult <ISubmodelDescriptor> CreateSubmodel(string aasId, ISubmodelDescriptor submodel) { return(aasRegistryImpl.CreateSubmodel(aasId, submodel)); }
public IActionResult RegisterSubmodelAtAssetAdministrationShell(string aasId, [FromBody] ISubmodelDescriptor submodelDescriptor) { if (string.IsNullOrEmpty(aasId)) { return(ResultHandling.NullResult(nameof(aasId))); } if (submodelDescriptor == null) { return(ResultHandling.NullResult(nameof(submodelDescriptor))); } aasId = HttpUtility.UrlDecode(aasId); var result = CreateSubmodel(aasId, submodelDescriptor); return(result.CreateActionResult(CrudOperation.Create, "api/v1/registry/" + aasId + "/submodels/" + submodelDescriptor.IdShort)); }