Пример #1
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="inputStream">CSV ファイルの Stream</param>
        public CsvImportService(Stream inputStream)
        {
            this.db      = new WebApplication_Kaido03Context();
            this.sexList = this.db.Sexes.ToList();

            IEnumerable <string[]> csvLines = ReadCsv(inputStream);
            // TODO 2回目の LINQ 取得がうまくいかないので for する。
            //var header = csvLines.FirstOrDefault();
            //var lineList = csvLines.Skip(0).ToList();
            int i = 0;

            foreach (var csvLine in csvLines)
            {
                // 1回目のみヘッダーチェック
                i++;
                if (i == 1)
                {
                    ValidateHeader(csvLine);
                    continue;
                }

                // 2回目以降はチェックおよびオブジェクト生成
                ValidateLineAndMakeParent(i, csvLine);
            }

            // 2回目以降はチェックおよびオブジェクト生成
            if (i < MIN_CSV_ROW_COUNT)
            {
                ErrorMessageList.Add("読み込むデータがありません。");
            }

            IsValid = (ErrorMessageList.Count == 0);
        }