public void Add(ISubmodelElement submodelElement) { base.Add(new OperationVariable() { Value = submodelElement }); }
public static ISubmodelElement CreateSubmodelElement(this PropertyInfo property, object target) { if (DataType.IsSimpleType(property.PropertyType)) { DataType dataType = DataType.GetDataTypeFromSystemType(property.PropertyType); Property smProp = new Property(dataType) { IdShort = property.Name, Value = property.GetValue(target) }; return(smProp); } else { SubmodelElementCollection smCollection = new SubmodelElementCollection() { IdShort = property.Name }; object value = property.GetValue(target); Type valueType = value.GetType(); foreach (var subProperty in valueType.GetProperties(BindingFlags.Public | BindingFlags.Instance)) { ISubmodelElement smElement = CreateSubmodelElement(subProperty, value); smCollection.Value.Add(smElement); } return(smCollection); } }
public IResult <ISubmodelElement> CreateSubmodelElement(string submodelId, ISubmodelElement submodelElement) { var request = base.CreateJsonContentRequest(GetUri(SUBMODELS, submodelId, SUBMODEL, SUBMODEL_ELEMENTS), HttpMethod.Put, submodelElement); var response = base.SendRequest(request, REQUEST_TIMEOUT); return(base.EvaluateResponse <ISubmodelElement>(response, response.Entity)); }
public async Task <IResult <ISubmodelElement> > CreateSubmodelElementAsync(ISubmodelElement submodelElement) { var request = base.CreateJsonContentRequest(GetUri(SUBMODELELEMENTS), HttpMethod.Post, submodelElement); var response = await SendRequestAsync(request); return(await EvaluateResponseAsync <ISubmodelElement>(response, response.Entity)); }
public IResult <ISubmodelElement> CreateSubmodelElement(ISubmodelElement submodelElement) { if (Submodel == null) { return(new Result <ISubmodelElement>(false, new NotFoundMessage("Submodel"))); } return(Submodel.SubmodelElements.Create(submodelElement)); }
public IActionResult PutSubmodelElement([FromBody] ISubmodelElement submodelElement) { if (submodelElement == null) { return(ResultHandling.NullResult(nameof(submodelElement))); } var result = CreateSubmodelElement(submodelElement); return(result.CreateActionResult(CrudOperation.Create, "submodel/submodelElements/" + submodelElement.IdShort)); }
public IActionResult RoutedPutSubmodelElement([FromBody] ISubmodelElement submodelElement) { if (submodelElement == null) { return(ResultHandling.NullResult(nameof(submodelElement))); } var controller = HttpContext.RequestServices.GetService <SubmodelServices>(); return(controller.PutSubmodelElement(submodelElement)); }
public IResult UpdateSubmodelElement(string submodelElementId, ISubmodelElement submodelElement) { if (Submodel == null) { return(new Result(false, new NotFoundMessage("Submodel"))); } if (Submodel.SubmodelElements == null) { return(new Result(false, new NotFoundMessage(submodelElementId))); } return(Submodel.SubmodelElements.Update(submodelElementId, submodelElement)); }
public static ISubmodelElementCollection CreateSubmodelElementCollection <T>(this IEnumerable <T> enumerable, string idShort) { SubmodelElementCollection smCollection = new SubmodelElementCollection() { IdShort = idShort }; Type type = typeof(T); foreach (var item in enumerable) { foreach (var property in type.GetProperties()) { ISubmodelElement smElement = CreateSubmodelElement(property, item); smCollection.Value.Add(smElement); } } return(smCollection); }
private static JArray CustomizeSubmodelElement(ISubmodelElement element, string[] columns) { JArray jArray = new JArray(); Type elementType = element.GetType(); List <PropertyInfo> propertyInfos = elementType.GetProperties(BindingFlags.Public | BindingFlags.Instance).ToList(); JObject jObj = new JObject(); if (element.ModelType == ModelType.SubmodelElementCollection) { var valueContainer = element as SubmodelElementCollection; foreach (var subElement in valueContainer.Value) { JArray subJArray = CustomizeSubmodelElement(subElement, columns); jArray.Merge(subJArray, new JsonMergeSettings() { MergeArrayHandling = MergeArrayHandling.Union }); } } else { foreach (var column in columns) { var info = propertyInfos.Find(p => p.Name == column.UppercaseFirst()); if (info != null) { var value = info.GetValue(element); if (value != null) { jObj.Add(column, JToken.FromObject(value)); } } } } if (jObj.HasValues) { jArray.Add(jObj); } return(jArray); }
public static ISubmodel CreateSubmodelFromObject(this object target) { if (target == null) { return(null); } Type type = target.GetType(); Submodel submodel = new Submodel() { IdShort = type.Name, Identification = new Identifier(type.FullName, KeyType.Custom) }; foreach (var property in type.GetProperties(BindingFlags.Public | BindingFlags.Instance)) { ISubmodelElement smElement = property.CreateSubmodelElement(target); submodel.SubmodelElements.Add(smElement); } return(submodel); }
public IResult UpdateSubmodelElement(string submodelElementId, ISubmodelElement submodelElement) { return(submodelServiceProvider.UpdateSubmodelElement(submodelElementId, submodelElement)); }
public IResult <ISubmodelElement> CreateSubmodelElement(ISubmodelElement submodelElement) { return(submodelServiceProvider.CreateSubmodelElement(submodelElement)); }
public IResult UpdateSubmodelElement(string submodelElementId, ISubmodelElement submodelElement) { return(submodelClient.UpdateSubmodelElement(submodelElementId, submodelElement)); }
public static EnvironmentSubmodelElement_V1_0 ToEnvironmentSubmodelElement_V1_0(this ISubmodelElement element) { if (element == null) { return(null); } ModelType modelType = element.ModelType; if (modelType == null) { return(null); } EnvironmentSubmodelElement_V1_0 environmentSubmodelElement = new EnvironmentSubmodelElement_V1_0(); SubmodelElementType_V1_0 submodelElementType = new SubmodelElementType_V1_0() { Category = element.Category, Description = element.Description, IdShort = element.IdShort, Kind = element.Kind, Parent = element.Parent?.First?.Value, Qualifier = null, SemanticId = element.SemanticId?.ToEnvironmentReference_V1_0(), }; if (modelType == ModelType.Property && element is IProperty castedProperty) { environmentSubmodelElement.submodelElement = new Property_V1_0(submodelElementType) { Value = castedProperty.Value?.ToString(), ValueId = castedProperty.ValueId?.ToEnvironmentReference_V1_0(), ValueType = castedProperty.ValueType?.ToString() } } ; else if (modelType == ModelType.Operation && element is IOperation castedOperation) { environmentSubmodelElement.submodelElement = new Operation_V1_0(submodelElementType); List <OperationVariable_V1_0> inputs = new List <OperationVariable_V1_0>(); List <OperationVariable_V1_0> outputs = new List <OperationVariable_V1_0>(); if (castedOperation.InputVariables?.Count > 0) { foreach (var inputVar in castedOperation.InputVariables) { inputs.Add(new OperationVariable_V1_0() { Value = inputVar.Value.ToEnvironmentSubmodelElement_V1_0() }); } } if (castedOperation.OutputVariables?.Count > 0) { foreach (var outputVar in castedOperation.OutputVariables) { outputs.Add(new OperationVariable_V1_0() { Value = outputVar.Value.ToEnvironmentSubmodelElement_V1_0() }); } } (environmentSubmodelElement.submodelElement as Operation_V1_0).In = inputs; (environmentSubmodelElement.submodelElement as Operation_V1_0).Out = outputs; } else if (modelType == ModelType.Event && element is IEvent castedEvent) { environmentSubmodelElement.submodelElement = new Event_V1_0(submodelElementType) { } } ; else if (modelType == ModelType.Blob && element is IBlob castedBlob) { environmentSubmodelElement.submodelElement = new Blob_V1_0(submodelElementType) { Value = Convert.ToBase64String(castedBlob.Value), MimeType = castedBlob.MimeType } } ; else if (modelType == ModelType.File && element is IFile castedFile) { environmentSubmodelElement.submodelElement = new File_V1_0(submodelElementType) { MimeType = castedFile.MimeType, Value = castedFile.Value } } ; else if (modelType == ModelType.ReferenceElement && element is IReferenceElement castedReferenceElement) { environmentSubmodelElement.submodelElement = new ReferenceElement_V1_0(submodelElementType) { Value = castedReferenceElement.Value?.ToEnvironmentReference_V1_0() } } ; else if (modelType == ModelType.RelationshipElement && element is IRelationshipElement castedRelationshipElement) { environmentSubmodelElement.submodelElement = new RelationshipElement_V1_0(submodelElementType) { First = castedRelationshipElement.First?.ToEnvironmentReference_V1_0(), Second = castedRelationshipElement.Second?.ToEnvironmentReference_V1_0() } } ; else if (modelType == ModelType.SubmodelElementCollection && element is ISubmodelElementCollection castedSubmodelElementCollection) { environmentSubmodelElement.submodelElement = new SubmodelElementCollection_V1_0(submodelElementType); List <EnvironmentSubmodelElement_V1_0> environmentSubmodelElements = new List <EnvironmentSubmodelElement_V1_0>(); if (castedSubmodelElementCollection.Value?.Count > 0) { foreach (var smElement in castedSubmodelElementCollection.Value) { environmentSubmodelElements.Add(smElement.ToEnvironmentSubmodelElement_V1_0()); } } (environmentSubmodelElement.submodelElement as SubmodelElementCollection_V1_0).Value = environmentSubmodelElements; } else { return(null); } return(environmentSubmodelElement); }
public static EnvironmentSubmodelElement_V2_0 ToEnvironmentSubmodelElement_V2_0(this ISubmodelElement element) { if (element == null) { return(null); } ModelType modelType = element.ModelType; if (modelType == null) { return(null); } EnvironmentSubmodelElement_V2_0 environmentSubmodelElement = new EnvironmentSubmodelElement_V2_0(); SubmodelElementType_V2_0 submodelElementType = new SubmodelElementType_V2_0() { Category = element.Category, Description = element.Description, IdShort = element.IdShort, Kind = element.Kind, Parent = element.Parent?.First?.Value, Qualifier = null, SemanticId = element.SemanticId?.ToEnvironmentReference_V2_0(), }; if (modelType == ModelType.Property && element is IProperty castedProperty) { environmentSubmodelElement.submodelElement = new Property_V2_0(submodelElementType) { Value = castedProperty.Value?.ToString(), ValueId = castedProperty.ValueId?.ToEnvironmentReference_V2_0(), ValueType = castedProperty.ValueType?.ToString() } } ; else if (modelType == ModelType.MultiLanguageProperty && element is IMultiLanguageProperty castedMultiLanguageProperty) { environmentSubmodelElement.submodelElement = new MultiLanguageProperty_V2_0(submodelElementType) { Value = castedMultiLanguageProperty.Value, ValueId = castedMultiLanguageProperty.ValueId?.ToEnvironmentReference_V2_0() }; } else if (modelType == ModelType.Range && element is IRange castedRange) { environmentSubmodelElement.submodelElement = new Range_V2_0(submodelElementType) { Min = castedRange.Min.ToString(), Max = castedRange.Max.ToString(), ValueType = castedRange.ValueType?.DataObjectType?.Name }; } else if (modelType == ModelType.Operation && element is IOperation castedOperation) { environmentSubmodelElement.submodelElement = new Operation_V2_0(submodelElementType); List <OperationVariable_V2_0> inputs = new List <OperationVariable_V2_0>(); List <OperationVariable_V2_0> outputs = new List <OperationVariable_V2_0>(); List <OperationVariable_V2_0> inoutputs = new List <OperationVariable_V2_0>(); if (castedOperation.InputVariables?.Count > 0) { foreach (var inputVar in castedOperation.InputVariables) { inputs.Add(new OperationVariable_V2_0() { Value = inputVar.Value.ToEnvironmentSubmodelElement_V2_0() }); } } if (castedOperation.OutputVariables?.Count > 0) { foreach (var outputVar in castedOperation.OutputVariables) { outputs.Add(new OperationVariable_V2_0() { Value = outputVar.Value.ToEnvironmentSubmodelElement_V2_0() }); } } if (castedOperation.InOutputVariables?.Count > 0) { foreach (var inoutputVar in castedOperation.InOutputVariables) { inoutputs.Add(new OperationVariable_V2_0() { Value = inoutputVar.Value.ToEnvironmentSubmodelElement_V2_0() }); } } (environmentSubmodelElement.submodelElement as Operation_V2_0).InputVariables = inputs; (environmentSubmodelElement.submodelElement as Operation_V2_0).OutputVariables = outputs; (environmentSubmodelElement.submodelElement as Operation_V2_0).InOutputVariables = inoutputs; } else if (modelType == ModelType.Event && element is IEvent castedEvent) { environmentSubmodelElement.submodelElement = new Event_V2_0(submodelElementType) { } } ; else if (modelType == ModelType.BasicEvent && element is IBasicEvent castedBasicEvent) { environmentSubmodelElement.submodelElement = new BasicEvent_V2_0(submodelElementType) { Observed = castedBasicEvent.Observed.ToEnvironmentReference_V2_0() }; } else if (modelType == ModelType.Entity && element is IEntity castedEntity) { environmentSubmodelElement.submodelElement = new Entity_V2_0(submodelElementType) { EntityType = (EnvironmentEntityType)Enum.Parse(typeof(EnvironmentEntityType), castedEntity.EntityType.ToString()), AssetReference = castedEntity.Asset.ToEnvironmentReference_V2_0() }; List <EnvironmentSubmodelElement_V2_0> statements = new List <EnvironmentSubmodelElement_V2_0>(); if (castedEntity.Statements?.Count > 0) { foreach (var smElement in castedEntity.Statements) { statements.Add(smElement.ToEnvironmentSubmodelElement_V2_0()); } } (environmentSubmodelElement.submodelElement as Entity_V2_0).Statements = statements; } else if (modelType == ModelType.Blob && element is IBlob castedBlob) { environmentSubmodelElement.submodelElement = new Blob_V2_0(submodelElementType) { Value = Convert.ToBase64String(castedBlob.Value), MimeType = castedBlob.MimeType } } ; else if (modelType == ModelType.File && element is IFile castedFile) { environmentSubmodelElement.submodelElement = new File_V2_0(submodelElementType) { MimeType = castedFile.MimeType, Value = castedFile.Value } } ; else if (modelType == ModelType.ReferenceElement && element is IReferenceElement castedReferenceElement) { environmentSubmodelElement.submodelElement = new ReferenceElement_V2_0(submodelElementType) { Value = castedReferenceElement.Value?.ToEnvironmentReference_V2_0() } } ; else if (modelType == ModelType.RelationshipElement && element is IRelationshipElement castedRelationshipElement) { environmentSubmodelElement.submodelElement = new RelationshipElement_V2_0(submodelElementType) { First = castedRelationshipElement.First?.ToEnvironmentReference_V2_0(), Second = castedRelationshipElement.Second?.ToEnvironmentReference_V2_0() } } ; else if (modelType == ModelType.AnnotatedRelationshipElement && element is IAnnotatedRelationshipElement castedAnnotatedRelationshipElement) { environmentSubmodelElement.submodelElement = new AnnotatedRelationshipElement_V2_0(submodelElementType) { First = castedAnnotatedRelationshipElement.First?.ToEnvironmentReference_V2_0(), Second = castedAnnotatedRelationshipElement.Second?.ToEnvironmentReference_V2_0(), Annotation = castedAnnotatedRelationshipElement.Annotation?.ToEnvironmentReference_V2_0() }; } else if (modelType == ModelType.SubmodelElementCollection && element is ISubmodelElementCollection castedSubmodelElementCollection) { environmentSubmodelElement.submodelElement = new SubmodelElementCollection_V2_0(submodelElementType); List <EnvironmentSubmodelElement_V2_0> environmentSubmodelElements = new List <EnvironmentSubmodelElement_V2_0>(); if (castedSubmodelElementCollection.Value?.Count > 0) { foreach (var smElement in castedSubmodelElementCollection.Value) { environmentSubmodelElements.Add(smElement.ToEnvironmentSubmodelElement_V2_0()); } } (environmentSubmodelElement.submodelElement as SubmodelElementCollection_V2_0).Value = environmentSubmodelElements; } else { return(null); } return(environmentSubmodelElement); }
public async Task <IResult> UpdateSubmodelElementAsync(string submodelElementId, ISubmodelElement submodelElement) { var request = base.CreateJsonContentRequest(GetUri(SUBMODELELEMENTS, submodelElementId), HttpMethod.Put, submodelElement); var response = await SendRequestAsync(request); return(await base.EvaluateResponseAsync(response, response.Entity)); }
public IResult <ISubmodelElement> CreateSubmodelElement(ISubmodelElement submodelElement) { return(submodelClient.CreateSubmodelElement(submodelElement)); }