コード例 #1
0
        public static ValidationFile ReadExecuteCsvFile(string strFileName)
        {
            ValidationFile validations = new Models.ValidationFile();
            var            ValidList   = new List <List <LocationData> >();

            using (CsvReader reader = new CsvReader(strFileName, Encoding.Default))
            {
                DataTable csvTable         = reader.ReadIntoDataTable();
                var       rangePartitioner = Partitioner.Create(0, csvTable.Rows.Count, 1000);
                Parallel.ForEach(rangePartitioner, (range, loopState) =>
                {
                    var Valid = new List <LocationData>();
                    for (int i = range.Item1; i < range.Item2; i++)
                    {
                        var classObj = new LocationData()
                        {
                            LocationName       = Convert.ToString(csvTable.Rows[i]["LocationName"]),
                            LocCode            = Convert.ToString(csvTable.Rows[i]["LocCode"]),
                            FirstContactName   = Convert.ToString(csvTable.Rows[i]["FirstContactName"]),
                            FirstContactEmail  = Convert.ToString(csvTable.Rows[i]["FirstContactEmail"]),
                            isActive           = string.IsNullOrEmpty(Convert.ToString(csvTable.Rows[i]["isActive"])) ? "N" : (Convert.ToString(csvTable.Rows[i]["isActive"]).ToLower() == "y" || Convert.ToString(csvTable.Rows[i]["isActive"]).ToLower() == "yes") ? "Y" : "N",
                            SecondContactName  = Convert.ToString(csvTable.Rows[i]["SecondContactName"]).Trim(','),
                            SecondContactEmail = Convert.ToString(csvTable.Rows[i]["SecondContactEmail"]).Trim(','),
                            ThirdContactName   = Convert.ToString(csvTable.Rows[i]["ThirdContactName"]).Trim(','),
                            ThirdContactEmail  = Convert.ToString(csvTable.Rows[i]["ThirdContactEmail"]).Trim(',')
                        };
                        Valid.Add(classObj);
                    }
                    ValidList.Add(Valid);
                });
            }
            validations.ChunkvalidData = ValidList;
            return(validations);
        }
コード例 #2
0
        /// <summary>
        /// Tab delemited txt file reader
        /// </summary>
        /// <param name="docPath"></param>
        /// <returns></returns>
        public static ValidationFile ReadExecuteDelimitedFile(string docPath)
        {
            ValidationFile validations = new Models.ValidationFile();
            var            ValidList   = new List <LocationData>();
            bool           isHeader    = true;

            using (var file = new StreamReader(docPath))
            {
                string line;
                while ((line = file.ReadLine()) != null)
                {
                    if (isHeader == false)
                    {
                        var          delimiters = new char[] { '\t' };
                        var          segments   = line.Split(delimiters, StringSplitOptions.None);
                        LocationData lData      = new Models.LocationData();
                        lData.LocationName       = segments[0];
                        lData.LocCode            = segments[1];
                        lData.FirstContactName   = segments[2];
                        lData.FirstContactEmail  = segments[3];
                        lData.isActive           = string.IsNullOrEmpty(segments[4]) ? "N" : Convert.ToString(segments[4]).ToLower().Contains('y') ? "Y" : "N";
                        lData.SecondContactName  = string.IsNullOrEmpty(segments[5]) ? string.Empty : segments[5];
                        lData.SecondContactEmail = string.IsNullOrEmpty(segments[6]) ? string.Empty : segments[6];
                        lData.ThirdContactName   = string.IsNullOrEmpty(segments[7]) ? string.Empty : segments[7];
                        lData.ThirdContactEmail  = string.IsNullOrEmpty(segments[8]) ? string.Empty : segments[8];
                        ValidList.Add(lData);
                    }
                    else
                    {
                        isHeader = false;
                    }
                }
                file.Close();
            }
            var ValidLists       = new List <List <LocationData> >();
            var rangePartitioner = Partitioner.Create(0, ValidList.Count, 1000);

            Parallel.ForEach(rangePartitioner, (range, loopState) =>
            {
                var Valid = new List <LocationData>();
                for (int i = range.Item1; i < range.Item2; i++)
                {
                    var classObj = new LocationData()
                    {
                        LocationName       = Convert.ToString(ValidList[i].LocationName),
                        LocCode            = Convert.ToString(ValidList[i].LocCode),
                        FirstContactName   = Convert.ToString(ValidList[i].FirstContactName),
                        FirstContactEmail  = Convert.ToString(ValidList[i].FirstContactEmail),
                        isActive           = string.IsNullOrEmpty(Convert.ToString(ValidList[i].isActive)) ? "N" : (Convert.ToString(ValidList[i].isActive).ToLower() == "y" || Convert.ToString(ValidList[i].isActive).ToLower() == "yes") ? "Y" : "N",
                        SecondContactName  = Convert.ToString(ValidList[i].SecondContactName).Trim(','),
                        SecondContactEmail = Convert.ToString(ValidList[i].SecondContactEmail).Trim(','),
                        ThirdContactName   = Convert.ToString(ValidList[i].ThirdContactName).Trim(','),
                        ThirdContactEmail  = Convert.ToString(ValidList[i].ThirdContactEmail).Trim(',')
                    };
                    Valid.Add(classObj);
                }
                ValidLists.Add(Valid);
            });
            validations.ChunkvalidData = ValidLists;
            return(validations);
        }