Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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");
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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);
            }
        }