public virtual IList <IDataObject> Create(string objectType, IList <string> identifiers) { IDataObject dataObject = null; IList <IDataObject> dataObjects = new List <IDataObject>(); try { LoadDataDictionary(objectType); if (identifiers == null || identifiers.Count == 0) { dataObject = new GenericDataObject { ObjectType = objectType, }; SetKeys(dataObject, null); dataObjects.Add(dataObject); } else { dataObjects = Get(objectType, identifiers); foreach (string identifier in identifiers) { var predicate = FormKeyPredicate(identifier); if (predicate != null) { dataObject = dataObjects.AsQueryable().Where(predicate).FirstOrDefault(); } if (dataObject == null) { dataObject = new GenericDataObject { ObjectType = objectType, }; SetKeys(dataObject, identifier); dataObjects.Add(dataObject); } } } return(dataObjects); } catch (Exception ex) { _logger.Error("Error in Create: " + ex); throw new Exception( "Error while creating a list of data objects of type [" + objectType + "].", ex ); } }
private static IDataObject GetNewObject(IDataObject dataObject, DataObject objectType) { IDataObject dataObjectNew = new GenericDataObject() { ObjectType = objectType.objectName }; IDictionary <string, object> dictionary = ((GenericDataObject)dataObjectNew).Dictionary; foreach (DataProperty dp in objectType.dataProperties.Where(x => !x.isVirtual)) { dictionary.Add(dp.propertyName, dataObject.GetPropertyValue(dp.propertyName)); } return(dataObjectNew); }
protected IDataObject ToDataObject(DataRow dataRow, DataObject objectDefinition) { IDataObject dataObject = null; if (dataRow != null) { try { dataObject = new GenericDataObject() { ObjectType = objectDefinition.objectName }; } catch (Exception ex) { _logger.Error(string.Format("Error instantiating data object: {0}", ex)); throw ex; } if (dataObject != null && objectDefinition.dataProperties != null) { foreach (DataProperty objectProperty in objectDefinition.dataProperties) { try { if (objectProperty.columnName != null) { if (dataRow.Table.Columns.Contains(objectProperty.columnName)) { object value = dataRow[objectProperty.columnName]; if (value.GetType() == typeof(System.DBNull)) { value = null; } dataObject.SetPropertyValue(objectProperty.propertyName, value); } else { _logger.Warn(String.Format("Value for column [{0}] not found in data row of table [{1}]", objectProperty.columnName, objectDefinition.tableName)); } } } catch (Exception ex) { _logger.Error(string.Format("Error getting data row value: {0}", ex)); throw ex; } } // evaluate has-content expression if (_settings["HasContentExpression"] != null) { string expression = _settings["HasContentExpression"].ToString(); foreach (DataProperty prop in objectDefinition.dataProperties) { if (expression.Contains(prop.propertyName)) { object value = dataObject.GetPropertyValue(prop.propertyName); if (value != null) { string valueStr = value.ToString(); if (prop.dataType == DataType.Char || prop.dataType == DataType.String) { valueStr = "\"" + valueStr + "\""; } expression = expression.Replace(prop.propertyName, valueStr); } } } if ((bool)Utility.Evaluate(expression)) { ((GenericDataObject)dataObject).HasContent = true; } } } } else { dataObject = new GenericDataObject() { ObjectType = objectDefinition.objectName }; foreach (DataProperty objectProperty in objectDefinition.dataProperties) { dataObject.SetPropertyValue(objectProperty.propertyName, null); } } return(dataObject); }
public static IDataObject ToDataObject(DataObject objectType, DataRow row) { GenericDataObject dataObject = null; if (row != null) { try { dataObject = new GenericDataObject() { ObjectType = objectType.objectName }; } catch (Exception ex) { _logger.Error(string.Format("Error instantiating data object: {0}", ex)); throw ex; } if (dataObject != null && objectType.dataProperties != null) { foreach (DataProperty objectProperty in objectType.dataProperties) { try { if (objectProperty.propertyName != null) { if (row.Table.Columns.Contains(objectProperty.propertyName)) { object value = row[objectProperty.propertyName]; if (value.GetType() == typeof(System.DBNull)) { value = null; } if (objectProperty.dataType.ToString().ToUpper() == "DECIMAL" || objectProperty.dataType.ToString().ToUpper() == "DOUBLE") { dataObject.SetPropertyNumericValue(objectProperty.propertyName, value); } else { dataObject.SetPropertyValue(objectProperty.propertyName, value); } } else { _logger.Warn(String.Format("Value for column [{0}] not found in data row of table [{1}]", objectProperty.columnName, objectType.tableName)); } } } catch (Exception ex) { _logger.Error(string.Format("Error getting data row value: {0}", ex)); throw ex; } } } //Extension Properties____Starts if (dataObject != null && objectType.extensionProperties != null) { foreach (ExtensionProperty extentionProperty in objectType.extensionProperties) { try { if (extentionProperty.propertyName != null) { if (row.Table.Columns.Contains(extentionProperty.propertyName)) { object value = row[extentionProperty.propertyName]; if (value.GetType() == typeof(System.DBNull)) { value = null; } dataObject.SetPropertyValue(extentionProperty.propertyName, value); } else { _logger.Warn(String.Format("Value for column [{0}] not found in data row of table [{1}]", extentionProperty.columnName, objectType.tableName)); } } } catch (Exception ex) { _logger.Error(string.Format("Error getting data row value: {0}", ex)); throw ex; } } } //Extension Properties____Ends } else { dataObject = new GenericDataObject() { ObjectType = objectType.objectName }; foreach (DataProperty objectProperty in objectType.dataProperties) { dataObject.SetPropertyValue(objectProperty.propertyName, null); } } if (row[HAS_CONTENT] != DBNull.Value && Convert.ToBoolean(row[HAS_CONTENT])) { dataObject.HasContent = true; } return(dataObject); }