/// <summary> /// Applies all relvant values from the strongly typed csv object to the current csv record. /// </summary> /// <param name="entity">Pointer to the strongly typed csv object instance</param> /// <returns>Number of values applied</returns> public int SetValues <TEntity>(TEntity entity) { int c = 0; foreach (var header in Headers) { if (CsvClassMapperResolverFactory.GetResolver().GetMapper <TEntity>().ContainsValue(header)) { var value = CsvClassMapperResolverFactory.GetResolver().GetMapper <TEntity>().GetValue(entity, header); SetValue(CsvClassMapperResolverFactory.GetResolver().GetMapper <TEntity>().GetValueType(header), header, value); c++; } } return(c); }
/// <summary> /// Applies all relevant values from the csv custom object to the current csv record. /// </summary> /// <param name="record">Pointer to the csv custom object instance</param> /// <returns>Number of values applied</returns> public int SetValues <TEntity>(TEntity entity) { if (entity == null) { throw new ArgumentNullException("entity"); } int c = 0; foreach (var header in Headers) { if (CsvClassMapperResolverFactory.GetResolver().GetMapper <TEntity>().ContainsValue(header)) { var value = CsvClassMapperResolverFactory.GetResolver().GetMapper <TEntity>().GetValue(entity, header); SetValue(CsvClassMapperResolverFactory.GetResolver().GetMapper <TEntity>().GetValueType(header), header, value); c++; } } return(c); }
/// <summary> /// Tries to assign all values from the csv dictionary to a custom object. /// </summary> /// <param name="entity">Pointer to the custom object instance</param> /// <returns>Number of assigned values</returns> public int GetValues <TEntity>(TEntity entity) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } int c = 0; foreach (var item in _keyValuePairs) { if (CsvClassMapperResolverFactory.GetResolver().GetMapper <TEntity>().ContainsValue(item.Key)) { if (TryGetValue(CsvClassMapperResolverFactory.GetResolver().GetMapper <TEntity>().GetValueType(item.Key), item.Key, out var value)) { CsvClassMapperResolverFactory.GetResolver().GetMapper <TEntity>().SetValue(entity, item.Key, value); c++; } } } return(c); }
/// <summary> /// Applies all relevant values from an object to the csv dictionary via reflection. /// </summary> /// <param name="entity">Pointer to the object instance</param> /// <returns>Number of values applied</returns> public int SetValues <TEntity>(TEntity entity) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } int c = 0; typeof(TEntity).VisitMembers((key, memberInfo, isAlternativeName) => { if (!isAlternativeName) { if (CsvClassMapperResolverFactory.GetResolver().GetMapper <TEntity>().ContainsValue(key)) { var value = CsvClassMapperResolverFactory.GetResolver().GetMapper <TEntity>().GetValue(entity, key); SetValue(CsvClassMapperResolverFactory.GetResolver().GetMapper <TEntity>().GetValueType(key), key, value); c++; } } }); return(c); }