public static T SetConstantValues <T>(T integrationObject, EntityMetadata metadata) { if (metadata.Targetschema == null) { return(integrationObject); } foreach (var constValue in metadata.Targetschema.ConstValues) { var key = constValue.Key; var splitted = key.Split('/'); object objectToUse = integrationObject; for (var i = 0; i < splitted.Count(); i++) { var propertyName = splitted[i]; if (i != splitted.Count() - 1) { objectToUse = ReflectionUtil.InstantiateAndSetIfNull(objectToUse, propertyName); } else { WsUtil.SetValueIfNull(objectToUse, propertyName, ConversionUtil.ConvertFromMetadataType(constValue.Type, constValue.Value)); // ReflectionUtil.SetProperty(objectToUse, propertyName, constValue.Value); } } } return(integrationObject); }
public virtual void DoCreate(MaximoOperationExecutionContext maximoTemplateData) { var resultData = maximoTemplateData.InvokeProxy(); var idProperty = maximoTemplateData.Metadata.Schema.IdAttribute.Name; var resultOb = (Array)resultData; var firstOb = resultOb.GetValue(0); var id = (string)WsUtil.GetRealValue(firstOb, idProperty); maximoTemplateData.ResultObject = new MaximoResult(id, resultData); }
public static BaseMaximoCrudConnector GetBaseConnector() { var provider = WsUtil.WsProvider(); if (WsProvider.MEA.Equals(provider)) { return(new MeaCrudConnector()); } if (WsProvider.MIF.Equals(provider)) { return(new MifCrudConnector()); } if (WsProvider.ISM.Equals(provider)) { return(new IsmCrudConnector()); } throw new InvalidOperationException("Please, configure WsProvider key to either mea or mif"); }
private static IMaximoConnector LookupCustomConnector(EntityMetadata metadata, String operation) { var provider = WsUtil.WsProvider(); var prefix = provider.ToString().ToLower(); var connectorParams = metadata.ConnectorParameters.Parameters; String customConnectorTypeName = null; connectorParams.TryGetValue(operation.ToLower() + "_" + prefix + Customconnector, out customConnectorTypeName); if (customConnectorTypeName == null) { connectorParams.TryGetValue(operation.ToLower() + Customconnector, out customConnectorTypeName); } if (customConnectorTypeName == null) { connectorParams.TryGetValue(prefix + Customconnector, out customConnectorTypeName); } if (customConnectorTypeName == null) { connectorParams.TryGetValue("customconnector", out customConnectorTypeName); } return(DoGetConnector(operation, customConnectorTypeName)); }
public static void CloneArray(IEnumerable <CrudOperationData> collectionAssociation, object integrationObject, string propertyName, Action <object, CrudOperationData> itemHandlerDelegate = null) { var crudOperationDatas = collectionAssociation as IList <CrudOperationData> ?? collectionAssociation.ToList(); if (!crudOperationDatas.Any()) { return; } var arr = ReflectionUtil.InstantiateArrayWithBlankElements(integrationObject, propertyName, crudOperationDatas.Count); for (var i = 0; i < arr.Length; i++) { CrudOperationData crudOperationData = crudOperationDatas[i]; var cloneFromEntity = WsUtil.CloneFromEntity(arr.GetValue(i), crudOperationData); if (itemHandlerDelegate != null) { itemHandlerDelegate(cloneFromEntity, crudOperationData); } // WsUtil.SetValue(cloneFromEntity, "worklogid", -1); arr.SetValue(cloneFromEntity, i); } }