public AirQualitySubmissionType GetAirQualityData(string imputPath, AqsFileType fileType, string format, IAppendAuditLogEvent appendAuditLogProvider) { try { IAbstractHeader <AirQualitySubmissionType> mappedParser = GetAqsHeader(fileType, format) .Materialize(GetValueMappings(format)) .Materialize(GetColumnMappings(format)); Windsor.Commons.Core.CommaSeparatedFileParser parser = new Windsor.Commons.Core.CommaSeparatedFileParser(imputPath); while (parser.NextLine()) { mappedParser.ConsumeRow(parser); } return(mappedParser.Resolve()); } catch (Exception x) { appendAuditLogProvider.AppendAuditLogEvent(x.Message); throw; } }
private AqsRawResults GetAqsHeader(AqsFileType fileType, string format) { switch (fileType) { case AqsFileType.rawResults: var columns = new List <string>(); columns.Add("ALTERNATE_MDL_VALUE"); columns.Add("APPLICABLE_NAAQS_IND"); columns.Add("AQCR_CD"); columns.Add("CENSUS_BLOCK_CD"); columns.Add("CENSUS_BLOCK_GRP_CD"); columns.Add("CENSUS_TRACT_CD"); columns.Add("CITY_CD"); columns.Add("CLASS_AREA_CD"); columns.Add("CMNTY_MONITOR_ZONE"); columns.Add("COMPOSITE_TYPE_ID"); columns.Add("CONG_DIST_CODE"); columns.Add("COUNTY_CD"); columns.Add("DATA_APPROVAL_IND"); columns.Add("DATA_VALIDITY_CD"); columns.Add("DIR_FROM_CITY_CD"); columns.Add("DIR_TO_MET_SITE_CODE"); columns.Add("DIST_FROM_CITY_MSR"); columns.Add("DIST_TO_MET_SITE_MSR"); columns.Add("DOMINANT_SCR_TXT"); columns.Add("DURATION_CD"); columns.Add("FACILITY_SITE_ID"); columns.Add("FREQUENCY_CD"); columns.Add("HORIZ_COL_MTHD"); columns.Add("HORIZ_DIST_MSR"); columns.Add("HORIZ_REF_DATUM"); columns.Add("HORIZONTAL_ACCURACY"); columns.Add("HQ_EVAL_DATE"); columns.Add("LAND_USE_ID"); columns.Add("LATITUDE"); columns.Add("LOC_ADDR_TEXT"); columns.Add("LOC_SETTING_ID"); columns.Add("LOCAL_ID"); columns.Add("LOCAL_NAME"); columns.Add("LOCAL_REGION_CD"); columns.Add("LONGITUDE"); columns.Add("MEASURE_UNIT_CD"); columns.Add("MEASURE_VALUE"); columns.Add("MEASUREMENT_SCALE_ID"); columns.Add("MET_SITE_ID"); columns.Add("MET_SITE_TYPE_CD"); columns.Add("METHOD_ID_CD"); columns.Add("MONITOR_CLOSE_DATE"); columns.Add("NON_STATE_CD"); columns.Add("NULL_DATA_CD"); columns.Add("OPEN_PATH_ID"); columns.Add("POSTAL_CODE"); columns.Add("PROBE_HEIGHT_MSR"); columns.Add("PROBE_LOC_CODE"); columns.Add("PROJECT_CLASS_CD"); columns.Add("REG_EVAL_DATE"); columns.Add("SAMPLE_RESID_TIME"); columns.Add("SCHED_EXEMPT_IND"); columns.Add("SITE_EST_DATE"); columns.Add("SITE_TERM_DATE"); columns.Add("SMPL_COLL_START_DATE"); columns.Add("SMPL_COLL_START_TIME"); columns.Add("SPACIAL_AVG_IND"); columns.Add("SRC_MAP_SCALE_NBR"); columns.Add("STATE_CD"); columns.Add("SUBST_ID"); columns.Add("SUBST_OCCURENCE_CD"); columns.Add("SUPPORT_AGENCY_CD"); columns.Add("SURROGATE_IND"); columns.Add("TIME_ZONE_NAME"); columns.Add("TRIBAL_CD"); columns.Add("UNCERTAINTY_VALUE"); columns.Add("UNRESTR_AIR_FLOW_IND"); columns.Add("URBAN_AREA_CD"); columns.Add("UTM_EASTING"); columns.Add("UTM_NORTHING"); columns.Add("UTM_ZONE_CD"); columns.Add("VERT_DIST_MSR"); columns.Add("VERTICAL_ACCR_MSR"); columns.Add("VERTICAL_DATUM_ID"); columns.Add("VERTICAL_MEASURE"); columns.Add("VERTICAL_MTHD_CD"); columns.Add("WORST_SITE_TYPE_CD"); columns.Add("MONITOR.ACTION_CD"); columns.Add("RESULT.ACTION_CD"); return(new AqsRawResults(columns, _baseDao, format)); // _action, default: throw new ArgumentOutOfRangeException("Unknown file type."); } }