private ICollection GetObjectFromConfig(CfgObjectType type, int dbid) { ICollection returnedObjectCollection = null; try { CfgFilterBasedQuery query = new CfgFilterBasedQuery(type); query.Filter["dbid"] = Convert.ToInt32(dbid); dynamic obj = confServiceContract.RetrieveObject(query); returnedObjectCollection = GenesysCollection(obj); } catch (Exception e) { TpsLogManager <ConfigServer> .Error(e.Message); } return(returnedObjectCollection); }
public ICollection GetObjectProperties(string objectName, string objectType, bool subscribeForChanges = false) { CfgObjectType type = (CfgObjectType)Enum.Parse(typeof(CfgObjectType), objectType); CfgFilterBasedQuery query = new CfgFilterBasedQuery(type); query.Filter["name"] = objectName; var obj = confServiceContract.RetrieveObject(query); if (obj != null) { if (!_registeredObjects.Contains(objectName)) { confServiceContract.Subscribe(obj); _registeredObjects.Add(objectName); TpsLogManager <ConfigServer> .Debug("Registered for changes against: " + objectName); } } return(GenesysCollection(obj)); }
public String GetSpecificObjectValue(string genesysObjectName, string genesysObjectType, string propertyToRetrieve, bool subscribeForChanges = false, int dbid = 0) { try { CfgObjectType type = (CfgObjectType)Enum.Parse(typeof(CfgObjectType), genesysObjectType); CfgFilterBasedQuery query = new CfgFilterBasedQuery(type); if (dbid != 0) //Then we need to find an object from its dbid rather than its name { query.Filter["dbid"] = dbid; } else { query.Filter["name"] = genesysObjectName; } dynamic dynamicObject = confServiceContract.RetrieveObject(query); if (dynamicObject != null) { if (subscribeForChanges) { if (!_registeredObjects.Contains(genesysObjectName)) { confServiceContract.Subscribe(dynamicObject); _registeredObjects.Add(genesysObjectType); TpsLogManager <ConfigServer> .Debug("Registered for changes against: " + genesysObjectType); } } Type typeOfDynamic = dynamicObject.GetType(); //To be used for Calling Lists or other objects to retrieve actual properties of the object if (typeOfDynamic.GetProperties().Any(p => p.Name.Equals(propertyToRetrieve))) { var propertyInfo = dynamicObject.GetType().GetProperty(propertyToRetrieve); var value = propertyInfo.GetValue(dynamicObject, null); return(value.ToString()); } //To get a value from an objects options if (typeOfDynamic.GetProperties().Any(p => p.Name.Equals("Options"))) { foreach (var option in dynamicObject.Options) { KeyValueCollection splitValues = (KeyValueCollection)option.Value; foreach (DictionaryEntry eachValue in splitValues) { if (eachValue.Key.ToString() == propertyToRetrieve) { return(eachValue.Value.ToString()); } } } } // To get a value from an objects User Properties if (typeOfDynamic.GetProperties().Any(p => p.Name.Equals("UserProperties"))) { foreach (var option in dynamicObject.UserProperties) { KeyValueCollection splitValues = (KeyValueCollection)option.Value; foreach (DictionaryEntry eachValue in splitValues) { if (eachValue.Key.ToString() == propertyToRetrieve) { return(eachValue.Value.ToString()); } } } } } else { TpsLogManager <ConfigServer> .Error("Configuration item could not be retrieved: " + genesysObjectName); } } catch (Exception e) { TpsLogManager <ConfigServer> .Error(e.Message); } return(""); }