コード例 #1
0
ファイル: ExcelImporter.cs プロジェクト: p1eXu5/WorkSpeed
 /// <summary>
 /// Returns enumerable collection of TOutType.
 /// </summary>
 /// <typeparam name="TIn">Converter origin type</typeparam>
 /// <typeparam name="TOutType">Converter output type</typeparam>
 /// <param name="sheetTable"><see cref="SheetTable"/></param>
 /// <param name="propertyMap">Dictionary&lt; propertyName, header &gt;</param>
 /// <param name="typeConverter">Type typeConverter</param>
 /// <param name="progressFunc"></param>
 /// <returns></returns>
 public static IEnumerable <TOutType> GetEnumerable <TOutType, TIn>(SheetTable sheetTable,
                                                                    Dictionary <string, (string header, int column)> propertyMap,
コード例 #2
0
ファイル: TypeRepository.cs プロジェクト: p1eXu5/WorkSpeed
        /// <summary>
        /// Returns tuple of Type and Dictionary&lt; propertyName, header &gt;
        /// </summary>
        /// <param name="sheetTable"><see cref="SheetTable"/></param>
        /// <returns>Tuple of Type and Dictionary&lt; propertyName, header &gt;</returns>
        public (Type type, Dictionary <string, (string header, int column)> propertyMap) GetTypeWithMap(SheetTable sheetTable)
        {
            var sheetHeaderMap = sheetTable.SheetHeaderMap.ToArray();

            foreach (var type in _typeDictionary.OrderByDescending(t => t.Value.Count).Select(t => t.Key))
            {
                // check for speed
                var propertyNamesMap = _typeDictionary[type];
                if (propertyNamesMap.Count > sheetHeaderMap.Length)
                {
                    continue;
                }

                // successfull token
                if (TryGetPropertyMap(sheetHeaderMap, propertyNamesMap, out var propertyToSheetMap))
                {
                    return(type, propertyToSheetMap);
                }
            }

            return(null, null);
        }