Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
            public void ConsumeRow(Windsor.Commons.Core.CommaSeparatedFileParser parser)
            {
                Func <string, string> unmap = (c) => base[c](parser, c);
                string substance            = unmap("SUBST_ID");

                if (!_monitorList.ContainsKey(substance))
                {
                    MonitorListType monitor = new MonitorListType();
                    monitor.BasicMonitoringInformation = new BasicMonitoringInformationType();
                    //Don't delete monitors, since they may have results from other files.
                    monitor.BasicMonitoringInformation.ActionCode = unmap("MONITOR.ACTION_CD");
#if !V_3
                    monitor.BasicMonitoringInformation.ApplicableNAAQSIndicator = unmap("APPLICABLE_NAAQS_IND");
#endif // !V_3
                    monitor.BasicMonitoringInformation.CommunityMonitoringZoneCode = unmap("CMNTY_MONITOR_ZONE");
                    monitor.BasicMonitoringInformation.DominantSourceText          = unmap("DOMINANT_SCR_TXT");
                    monitor.BasicMonitoringInformation.HorizontalDistanceMeasure   = unmap("HORIZ_DIST_MSR");
                    monitor.BasicMonitoringInformation.MeasurementScaleIdentifier  = unmap("MEASUREMENT_SCALE_ID");
                    monitor.BasicMonitoringInformation.MonitorCloseDate            = unmap("MONITOR_CLOSE_DATE");
                    monitor.BasicMonitoringInformation.OpenPathIdentifier          = unmap("OPEN_PATH_ID");
                    //monitor.BasicMonitoringInformation.PollutantAreaCode=;
                    monitor.BasicMonitoringInformation.ProbeHeightMeasure           = unmap("PROBE_HEIGHT_MSR");
                    monitor.BasicMonitoringInformation.ProbeLocationCode            = unmap("PROBE_LOC_CODE");
                    monitor.BasicMonitoringInformation.ProjectClassCode             = unmap("PROJECT_CLASS_CD");
                    monitor.BasicMonitoringInformation.SampleResidenceTime          = unmap("SAMPLE_RESID_TIME");
                    monitor.BasicMonitoringInformation.ScheduleExemptionIndicator   = unmap("SCHED_EXEMPT_IND");
                    monitor.BasicMonitoringInformation.SpatialAverageIndicator      = unmap("SPACIAL_AVG_IND");
                    monitor.BasicMonitoringInformation.SurrogateIndicator           = unmap("SURROGATE_IND");
                    monitor.BasicMonitoringInformation.UnrestrictedAirFlowIndicator = unmap("UNRESTR_AIR_FLOW_IND");
                    monitor.BasicMonitoringInformation.VerticalDistanceMeasure      = unmap("VERT_DIST_MSR");
                    monitor.BasicMonitoringInformation.WorstSiteTypeCode            = unmap("WORST_SITE_TYPE_CD");
                    monitor.MonitorIdentifierDetails = new MonitorIdentifierDetailsType();
                    monitor.MonitorIdentifierDetails.SubstanceIdentifier       = new SubstanceIdentifierDataType();
                    monitor.MonitorIdentifierDetails.SubstanceIdentifier.Value = substance;
                    monitor.MonitorIdentifierDetails.SubstanceOccurrenceCode   = unmap("SUBST_OCCURENCE_CD");
                    _monitorList.Add(substance, monitor);
                }
                string unit     = unmap("MEASURE_UNIT_CD");
                string datumKey = substance + ",measure:" + unit;
                if (!_rawDataList.ContainsKey(datumKey))
                {
                    RawDataListType datum = new RawDataListType();
                    datum.TransactionProtocolDetails = new TransactionProtocolDetailsType();
                    datum.TransactionProtocolDetails.MeasureUnitCode      = unit;
                    datum.TransactionProtocolDetails.MethodIdentifierCode = unmap("METHOD_ID_CD");
                    datum.TransactionProtocolDetails.AlternateMDLValue    = unmap("ALTERNATE_MDL_VALUE");
#if !V_3
                    var items     = new List <object>();
                    var itemNames = new List <ItemsChoiceType2>();
                    var item      = unmap("COMPOSITE_TYPE_ID");
                    if (item != null)
                    {
                        items.Add(item);
                        itemNames.Add(ItemsChoiceType2.CompositeTypeIdentifier);
                    }
                    item = unmap("DURATION_CD");
                    if (item != null)
                    {
                        items.Add(item);
                        itemNames.Add(ItemsChoiceType2.DurationCode);
                    }
                    item = unmap("FREQUENCY_CD");
                    if (item != null)
                    {
                        items.Add(item);
                        itemNames.Add(ItemsChoiceType2.FrequencyCode);
                    }
                    datum.TransactionProtocolDetails.Items            = items.ToArray();
                    datum.TransactionProtocolDetails.ItemsElementName = itemNames.ToArray();
#else // !V_3
                    datum.TransactionProtocolDetails.CompositeTypeIdentifier = unmap("COMPOSITE_TYPE_ID");
                    datum.TransactionProtocolDetails.DurationCode            = unmap("DURATION_CD");
#endif // !V_3
                    _rawDataList.Add(datumKey, datum);
                }
                string startDate = unmap("SMPL_COLL_START_DATE");
                string startTime = unmap("SMPL_COLL_START_TIME");
                string resultKey = datumKey + ",datetime:" + startDate + startTime;

                if (!_rawDataResultsList.ContainsKey(resultKey))
                {
                    RawResultsType result = new RawResultsType();
                    result.ActionCode = unmap("RESULT.ACTION_CD");//Enum.GetName(typeof(ActionType), _action).Substring(0, 1).ToUpper();
                    result.SampleCollectionStartDate             = startDate;
                    result.SampleCollectionStartTime             = startTime;
                    result.RawValueDetails                       = new RawValueDetailsType();
                    result.RawValueDetails.DataApprovalIndicator = unmap("DATA_APPROVAL_IND");
                    result.RawValueDetails.DataValidityCode      = unmap("DATA_VALIDITY_CD");
                    var items     = new List <object>();
                    var itemNames = new List <ItemsChoiceType3>();
                    var item      = unmap("MEASURE_VALUE");
                    if (item != null)
                    {
                        items.Add(item);
                        itemNames.Add(ItemsChoiceType3.MeasureValue);
                    }
                    item = unmap("NULL_DATA_CD");
                    if (item != null)
                    {
                        items.Add(item);
                        itemNames.Add(ItemsChoiceType3.NullDataCode);
                    }
                    item = unmap("UNCERTAINTY_VALUE");
                    if (item != null)
                    {
                        items.Add(item);
                        itemNames.Add(ItemsChoiceType3.UncertaintyValue);
                    }
                    result.RawValueDetails.Items            = items.ToArray();
                    result.RawValueDetails.ItemsElementName = itemNames.ToArray();
                    _rawDataResultsList.Add(resultKey, result);
                }
            }