Nested - Copy
Nested - Copy
using System.Collections.Generic;
using System.Collections;
using System.Data.Common;
using System.Linq;
namespace Infraestructure.Manager
{
public class Nested
{
private static Dictionary<String, Type> _entitiesList = new
Dictionary<String, Type>();
if (!_entitiesList.ContainsKey(entityType.Name))
_entitiesList.Add(entityType.Name, entityType);
}
nestedEntity.NestedFields.AddRange(line.Fields.Where(x =>
x.Name.Length == level + 1).ToList());
nestedEntities.Add(nestedEntity);
}
return nestedEntities;
}
public List<object> BuildEntities(NestedEntities entities)
{
List<object> returnEntities = new List<object>();
currentProp.SetValue(entity, field.Value);
}
if
(childProperty.PropertyType.GetInterfaces().Contains(typeof(IEnumerable)))
{
var genericArgumentGuid =
childProperty.PropertyType.GetGenericArguments().First().GUID;
if (genericArgumentGuid != child.Value.EntityType.GUID)
continue;
object instance =
Activator.CreateInstance(childProperty.PropertyType);
childProperty.SetValue(entity, list);
}
else
{
childProperty.SetValue(entity, BuildEntities(new
NestedEntities().Add(child.Value)).FirstOrDefault());
}
}
returnEntities.Add(entity);
}
return returnEntities;
}
}
fields.Add(currentField);
}
/// <summary>
/// Start from 1
/// </summary>
/// <param name="level"></param>
/// <returns></returns>
public List<NestedField> FieldsByLevel(int level)
{
return _fields
.Where(x => x.Name.Length <= level)
.ToList();
}
return this;
}
}