private object GetObjectFromRequest(DataRequest request) { LOG.DebugEnter(MethodBase.GetCurrentMethod(), request); IDbProvider dbProvider = DataProviders[DataProviderParameterType.SourceProvider.ToString()]; LOG.Debug("Provider: {0}", dbProvider); //Set the static property for conn string Config.connectionString = dbProvider.ConnectionString; object returnData = null; string testServiceName = request.Service.Name.Trim().ToLower(); LOG.Debug("Original Service Name: " + testServiceName); if (testServiceName.Contains("_")) { testServiceName = testServiceName.Substring(testServiceName.IndexOf("_") + 1); } if (testServiceName.Contains(".")) { testServiceName = testServiceName.Substring(testServiceName.IndexOf(".") + 1); } LOG.Debug("Parsed Service Name: " + testServiceName); //?? ////update NTransaction set Status = 'error' where Id = '_30093e58-c213-49ab-b58c-ed66885414fc' int paramCount = CollectionUtils.Count(request.Parameters); if (paramCount < 22) { throw new ArgumentException(string.Format("An invalid number of parameters were supplied to the service. 22 parameters are required, but only {0} were supplied.", paramCount.ToString())); } int rowIndex, maxRows = -1; if (string.IsNullOrEmpty(request.Parameters[0])) { rowIndex = 0; } else { rowIndex = int.Parse(request.Parameters[0]); } if (!string.IsNullOrEmpty(request.Parameters[1])) { maxRows = int.Parse(request.Parameters[1]); } if (maxRows < -1) { throw new ArgumentException(string.Format("An invalid maximum number of rows parameter was specified: {0}", maxRows.ToString())); } if (_maxNumRowsToReturn > 0) { if ((maxRows <= 0) || (maxRows > _maxNumRowsToReturn)) { maxRows = _maxNumRowsToReturn; } } switch (testServiceName) { case "getmeasurements": returnData = (object)PNWWQXProcessor.GetMeasurements ( rowIndex, maxRows, request.Parameters[2], request.Parameters[3], request.Parameters[4], request.Parameters[5], request.Parameters[6], request.Parameters[7], request.Parameters[8], request.Parameters[9], request.Parameters[10], request.Parameters[11], request.Parameters[12], request.Parameters[13].Split('|'), request.Parameters[14].Split('|'), request.Parameters[15], request.Parameters[16], request.Parameters[17], request.Parameters[18], request.Parameters[19].Split('|'), request.Parameters[20].Split('|'), request.Parameters[21].Split('|') ); break; case "getprojects": returnData = (object)PNWWQXProcessor.GetProjects ( rowIndex, maxRows, request.Parameters[2], request.Parameters[3], request.Parameters[4], request.Parameters[5], request.Parameters[6], request.Parameters[7], request.Parameters[8], request.Parameters[9], request.Parameters[10], request.Parameters[11], request.Parameters[12], request.Parameters[13].Split('|'), request.Parameters[14].Split('|'), request.Parameters[15], request.Parameters[16], request.Parameters[17], request.Parameters[18], request.Parameters[19].Split('|'), request.Parameters[20].Split('|'), request.Parameters[21].Split('|') ); break; case "getstations": returnData = (object)PNWWQXProcessor.GetStations ( rowIndex, maxRows, request.Parameters[2], request.Parameters[3], request.Parameters[4], request.Parameters[5], request.Parameters[6], request.Parameters[7], request.Parameters[8], request.Parameters[9], request.Parameters[10], request.Parameters[11], request.Parameters[12], request.Parameters[13].Split('|'), request.Parameters[14].Split('|'), request.Parameters[15], request.Parameters[16], request.Parameters[17], request.Parameters[18], request.Parameters[19].Split('|'), request.Parameters[20].Split('|'), request.Parameters[21].Split('|') ); break; case "getdatacatalog": returnData = (object)PNWWQXDataCatalog.GetDataCatalog(); break; default: throw new ApplicationException( string.Format("Service name not supported: [{0}] (parsed: {1})", request.Service.Name, testServiceName)); } return(returnData); }
public static PNWWQXDataCatalog GetDataCatalog() { #region Get Data DataSet dsDataCatalog = SqlHelper.ExecuteDataset( Config.connectionString, CommandType.StoredProcedure, "PNWWQX_GetDataCatalog"); #endregion #region Establish Relationships /* Tables[0] is Providing Organization */ /* Tables[1] is Projects */ /* Tables[2] is Stations */ /* Tables[3] is Location Descriptor*/ /* Tables[4] is Field Events*/ /* Tables[5] is Data Access */ //Providing Organization dsDataCatalog.Relations.Add("Org_Projects", dsDataCatalog.Tables[0].Columns["ProvidingOrganizationPK"], dsDataCatalog.Tables[1].Columns["ProvidingOrganizationFK"], false); dsDataCatalog.Relations.Add("Org_Station", dsDataCatalog.Tables[0].Columns["ProvidingOrganizationPK"], dsDataCatalog.Tables[2].Columns["ProvidingOrganizationFK"], false); dsDataCatalog.Relations.Add("Org_FieldEvent", dsDataCatalog.Tables[0].Columns["ProvidingOrganizationPK"], dsDataCatalog.Tables[4].Columns["ProvidingOrganizationFK"], false); //Station dsDataCatalog.Relations.Add("Station_LocationDescriptor", dsDataCatalog.Tables[2].Columns["StationIdentifier"], dsDataCatalog.Tables[3].Columns["StationSummaryIdentifier"], false); #endregion #region Populate Object ArrayList alPNWWQXDataCatalogList = new ArrayList(); foreach (DataRow drProvidingOrg in dsDataCatalog.Tables[0].Rows) { #region ProvidingOrganizationDetails PNWWQXDataCatalogList PNWWQXDataCatalogList = new PNWWQXDataCatalogList(); ProvidingOrganizationDetailsType ProvidingOrganizationDetails = new ProvidingOrganizationDetailsType(); ProvidingOrganizationDetails.ProvidingOrganizationIdentifier = Utility.toStr(drProvidingOrg["ProvidingOrganizationIdentifier"]); ProvidingOrganizationDetails.ProvidingOrganizationName = Utility.toStr(drProvidingOrg["ProvidingOrganizationName"]); ProvidingOrganizationDetails.ProvidingOrganizationType = Utility.toStr(drProvidingOrg["ProvidingOrganizationType"]); ProvidingOrganizationDetails.ProvidingOrganizationContactName = Utility.toStr(drProvidingOrg["ProvidingOrganizationContactName"]); if (drProvidingOrg["MailingAddress"] != DBNull.Value || drProvidingOrg["MailingAddressCityName"] != DBNull.Value || drProvidingOrg["MailingAddressStateName"] != DBNull.Value || drProvidingOrg["MailingAddressZIPCode"] != DBNull.Value) { ProvidingOrganizationDetails.ProvidingOrganizationMailingAddress = new MailingAddressType(); if (drProvidingOrg["MailingAddress"] != DBNull.Value) { ProvidingOrganizationDetails.ProvidingOrganizationMailingAddress.MailingAddress = Utility.toStr(drProvidingOrg["MailingAddress"]); } if (drProvidingOrg["MailingAddressCityName"] != DBNull.Value) { ProvidingOrganizationDetails.ProvidingOrganizationMailingAddress.MailingAddressCityName = Utility.toStr(drProvidingOrg["MailingAddressCityName"]); } if (drProvidingOrg["MailingAddressStateName"] != DBNull.Value) { ProvidingOrganizationDetails.ProvidingOrganizationMailingAddress.MailingAddressStateName = Utility.toStr(drProvidingOrg["MailingAddressStateName"]); } if (drProvidingOrg["MailingAddressZIPCode"] != DBNull.Value) { ProvidingOrganizationDetails.ProvidingOrganizationMailingAddress.MailingAddressZIPCode = Utility.toStr(drProvidingOrg["MailingAddressZIPCode"]); } } ProvidingOrganizationDetails.ProvidingOrganizationPhoneEmail = new PhoneEmailType(); ProvidingOrganizationDetails.ProvidingOrganizationPhoneEmail.TelephoneNumber = Utility.toStr(drProvidingOrg["TelephoneNumber"]); if (drProvidingOrg["ElectronicMailAddressText"] != DBNull.Value) { ProvidingOrganizationDetails.ProvidingOrganizationPhoneEmail.ElectronicMailAddressText = Utility.toStr(drProvidingOrg["ElectronicMailAddressText"]); } if (drProvidingOrg["ProvidingOrganizationURL"] != DBNull.Value) { ProvidingOrganizationDetails.ProvidingOrganizationURL = Utility.toStr(drProvidingOrg["ProvidingOrganizationURL"]); } PNWWQXDataCatalogList.ProvidingOrganizationDetails = ProvidingOrganizationDetails; #endregion #region DataAccess DataAccessType DataAccess = new DataAccessType(); DataAccess.DataSourceName = Utility.toStr(dsDataCatalog.Tables[5].Rows[0]["DataSourceName"]); DataAccess.DataSourceAccessMethod = Utility.toStr(dsDataCatalog.Tables[5].Rows[0]["DataSourceAccessMethod"]); if (dsDataCatalog.Tables[5].Rows[0]["DataSourceLocation"] != DBNull.Value) { DataAccess.DataSourceLocation = Utility.toStr(dsDataCatalog.Tables[5].Rows[0]["DataSourceLocation"]); } if (dsDataCatalog.Tables[5].Rows[0]["AvailabilityDescription"] != DBNull.Value) { DataAccess.AvailabilityDescription = Utility.toStr(dsDataCatalog.Tables[5].Rows[0]["AvailabilityDescription"]); } DataAccess.RefreshDate = Utility.toDT(dsDataCatalog.Tables[5].Rows[0]["RefreshDate"]); PNWWQXDataCatalogList.DataAccess = DataAccess; #endregion #region ProjectSummary ArrayList alProjectSummary = new ArrayList(); foreach (DataRow drProject in drProvidingOrg.GetChildRows(dsDataCatalog.Relations["Org_Projects"])) { ProjectSummaryType ProjectSummary = new ProjectSummaryType(); ProjectSummary.ProjectIdentifier = Utility.toStr(drProject["ProjectIdentifier"]); ProjectSummary.ProjectName = Utility.toStr(drProject["ProjectName"]); ProjectSummary.ProjectStartDate = Utility.toDT(drProject["ProjectStartDate"]); if (drProject["ProjectEndDate"] != DBNull.Value) { ProjectSummary.ProjectEndDate = Utility.toDT(drProject["ProjectEndDate"]); } ProjectSummary.ProjectContactOrganizationName = Utility.toStr(drProject["ProjectContactOrganizationName"]); alProjectSummary.Add(ProjectSummary); } PNWWQXDataCatalogList.ProjectSummary = (ProjectSummaryType[])alProjectSummary.ToArray(typeof(ProjectSummaryType)); #endregion #region StationSummary ArrayList alStationSummary = new ArrayList(); DataRow[] stationRootRows = drProvidingOrg.GetChildRows(dsDataCatalog.Relations["Org_Station"]); foreach (DataRow drStation in stationRootRows) { StationSummaryType StationSummary = new StationSummaryType(); StationSummary.StationIdentifier = Utility.toStr(drStation["StationIdentifier"]); StationSummary.StationName = Utility.toStr(drStation["StationName"]); StationSummary.StationType = Utility.toStr(drStation["StationType"]); ArrayList alStationLocationDescriptor = new ArrayList(); #region Location Description DataRow[] stationRows = drStation.GetChildRows(dsDataCatalog.Relations["Station_LocationDescriptor"]); System.Console.WriteLine(stationRows.Length); foreach (DataRow drStationLocDescr in stationRows) { StationLocationDescriptorType StationLocationDescriptor = new StationLocationDescriptorType(); StationLocationDescriptor.LocationDescriptorName = Utility.toStr(drStationLocDescr["LocationDescriptorName"]); StationLocationDescriptor.LocationDescriptorContext = Utility.toStr(drStationLocDescr["LocationDescriptorContext"]); alStationLocationDescriptor.Add(StationLocationDescriptor); } #endregion StationSummary.LocationDescriptor = (StationLocationDescriptorType[])alStationLocationDescriptor.ToArray(typeof(StationLocationDescriptorType)); StationSummary.LatitudeMeasure = Utility.toDecimal(drStation["LatitudeMeasure"]); StationSummary.LongitudeMeasure = Utility.toDecimal(drStation["LongitudeMeasure"]); if (drStation["StationContactOrganizationName"] != DBNull.Value) { StationSummary.StationContactOrganizationName = Utility.toStr(drStation["StationContactOrganizationName"]); } alStationSummary.Add(StationSummary); } PNWWQXDataCatalogList.StationSummary = (StationSummaryType[])alStationSummary.ToArray(typeof(StationSummaryType)); #endregion #region FieldEventSummary ArrayList alFieldEventSummary = new ArrayList(); foreach (DataRow drFieldEvent in drProvidingOrg.GetChildRows(dsDataCatalog.Relations["Org_FieldEvent"])) { FieldEventSummaryType FieldEventSummary = new FieldEventSummaryType(); FieldEventSummary.MinFieldEventStartDate = Utility.toDT(drFieldEvent["MinFieldEventStartDate"]); FieldEventSummary.MaxFieldEventEndDate = Utility.toDT(drFieldEvent["MaxFieldEventEndDate"]); FieldEventSummary.MediaText = Utility.toStr(drFieldEvent["MediaText"]); if (drFieldEvent["BiologicalSystematicName"] != DBNull.Value) { FieldEventSummary.BiologicalSystematicName = Utility.toStr(drFieldEvent["BiologicalSystematicName"]); } FieldEventSummary.AnalyteName = Utility.toStr(drFieldEvent["AnalyteName"]); FieldEventSummary.NumberResults = Utility.toInt(drFieldEvent["NumberResults"]).ToString(); FieldEventSummary.FieldEventProjectIdentifier = Utility.toStr(drFieldEvent["FieldEventProjectIdentifier"]); FieldEventSummary.FieldEventStationIdentifier = Utility.toStr(drFieldEvent["FieldEventStationIdentifier"]); if (drFieldEvent["FieldEventContactOrganizationName"] != DBNull.Value) { FieldEventSummary.FieldEventContactOrganizationName = Utility.toStr(drFieldEvent["FieldEventContactOrganizationName"]); } alFieldEventSummary.Add(FieldEventSummary); } PNWWQXDataCatalogList.FieldEventSummary = (FieldEventSummaryType[])alFieldEventSummary.ToArray(typeof(FieldEventSummaryType)); #endregion #region PNWWQXDataCatalogList alPNWWQXDataCatalogList.Add(PNWWQXDataCatalogList); #endregion } PNWWQXDataCatalog PNWWQXDataCatalog = new PNWWQXDataCatalog(); PNWWQXDataCatalog.PNWWQXDataCatalogList = (PNWWQXDataCatalogList[])alPNWWQXDataCatalogList.ToArray(typeof(PNWWQXDataCatalogList)); #endregion return(PNWWQXDataCatalog); }