Given that I have a parameter TEntity
which will be an class, how do i get the value of one of its fields.
public class ProductStrategy<TContract> : IContractCreatorStrategy<TContract>
{
public IContract<TContract> CreateContract<TEntity>(TEntity dbEntity)
{
var productEntity = Convert.ChangeType(dbEntity, typeof(TEntity));
var contractType = typeof (TContract);
var entityType = dbEntity.GetType();
var contract = Activator.CreateInstance(contractType);
var contractFields = contractType.GetProperties().ToList();
var entityFields = entityType.GetProperties().ToList();
foreach (var contractField in contractFields)
{
foreach (var entityField in entityFields)
{
if (entityField.Name.Contains(contractField.Name))
{
//get the value of the entityfield and set the contract field value to the it.
}
}
}
return new ProductContract<TContract>();
return productContract;
}
}
var fieldValue = entityField.GetValue(dbEntity, null);
contractField.SetValue(contract, fieldValue);