コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        /// <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);
        }