protected void Page_Load(object sender, EventArgs e) { // Clear the page. Response.Clear(); // Set the type to XML. Response.ContentType = "text/xml"; //Response.ContentType = "text/plain"; SearchTNsRequest request = null; SearchTNsResponse response = new SearchTNsResponse(); // Build the request from the query string try { request = new SearchTNsRequest(Request.QueryString); } catch (Exception ex) { response.SetJeop( "Unable to build request from query string: " + ex.Message); Response.Write(response.ToXml()); return; } // Debug, test write request. //Response.Write(request.ToXml()); //Response.Write(Environment.NewLine + Environment.NewLine + Environment.NewLine); // Neither ratecenter nor state? if (string.IsNullOrEmpty(request.rc) || string.IsNullOrEmpty(request.state)) { response.Action = "Error"; response.Message = "No parameters. " + "Requires 'rc' and its 'state'." + "Include 'quanitity' if a specific number of TNs is wanted."; Response.Write(response.ToXml()); return; } // Declare a list of TNs. List <string> tnList = new List <string>(); // Rate center and state? if (!string.IsNullOrEmpty(request.rc) && !string.IsNullOrEmpty(request.state)) { // Check with BCom BComTnSearchResponse bcomResponse = null; try { bcomResponse = new HTTPS_Interface().SearchTnByRateCenter( new BComTnByRateCenterRequest( request.rc, request.state)); } catch (Exception ex) { response.SetJeop("Error during Tn By Ratecenter Search: " + ex.Message); Response.Write(response.ToXml()); return; } // Debug, Print out response. //Response.Write(Serializer.SerializeObject(bcomResponse, typeof(BComTnSearchResponse))); //Response.Write(Environment.NewLine + Environment.NewLine + Environment.NewLine); // Success? if (bcomResponse.Status == "Success") { // Check for an returned TNs. if (bcomResponse.SearchResult != null && bcomResponse.SearchResult.TelephoneNumberList != null && bcomResponse.SearchResult.TelephoneNumberList.Count > 0 && HTTPS_Interface.LooseStringToInteger( bcomResponse.SearchResult.ResultCount) > 0) { // Add to the list, if not already there. foreach (string tn in bcomResponse.SearchResult.TelephoneNumberList) { if (!tnList.Contains(tn)) { tnList.Add(tn); } } } } else { // Get error message string errorMessage = string.Empty; try { errorMessage = bcomResponse.ErrorCode + " - " + bcomResponse.ErrorMessage; } catch { errorMessage = "Error: Unable to parse error response."; } // Return error response.SetJeop(errorMessage); Response.Write(response.ToXml()); return; } } // Any TNs? if (tnList.Count < 1) { response.SetError("No TNs were returned."); } // Complete! else { response.SetComplete(); // Add Tn list response.tns = tnList.ToArray(); } // Return result. Response.Write(response.ToXml()); return; }
protected void Page_Load(object sender, EventArgs e) { // Clear the page. Response.Clear(); // Set the type to XML. Response.ContentType = "text/xml"; //Response.ContentType = "text/plain"; SearchTNsRequest request = null; SearchTNsResponse response = new SearchTNsResponse(); // Build the request from the query string try { request = new SearchTNsRequest(Request.QueryString); } catch (Exception ex) { response.SetJeop( "Unable to build request from query string: " + ex.Message); Response.Write(response.ToXml()); return; } // Debug, test write request. //Response.Write(request.ToXml()); //Response.Write(Environment.NewLine + Environment.NewLine + Environment.NewLine); // Neither oppid, npanxx, ratecenter, nor zip? if (string.IsNullOrEmpty(request.oppid) && string.IsNullOrEmpty(request.npanxx) && (string.IsNullOrEmpty(request.rc) || string.IsNullOrEmpty(request.state)) && string.IsNullOrEmpty(request.zip)) { response.Action = "Error"; response.Message = "No parameters. " + "'oppid' loads the parameters from the database. " + "Include a combination of: 'npanxx' or 'npa' and 'nxx', " + "'rc' and its 'state', and 'zip'. " + "Zipcode must be in the XXXXX or XXXXX-XXXX format."; Response.Write(response.ToXml()); return; } // If the oppid is set, try to get the rc or zip from the database. DB db = new DB(); if (!string.IsNullOrEmpty(request.oppid)) { try { request = db.LoadSearchTNsRequest(request.oppid); } catch (Exception ex) { response.SetJeop("Error loading request parameters from database: " + ex.Message); Response.Write(response.ToXml()); return; } } // Still no rc or zip? if ((string.IsNullOrEmpty(request.rc) && string.IsNullOrEmpty(request.state)) || string.IsNullOrEmpty(request.zip)) { response.SetJeop("Error loading request parameters from database. No ratecenter or zip returned."); Response.Write(response.ToXml()); return; } // Declare a list of TNs. List <string> tnList = new List <string>(); // NPANXX? if (!string.IsNullOrEmpty(request.npanxx)) { // Check with BCom BComTnSearchResponse bcomResponse = null; try { bcomResponse = new HTTPS_Interface().SearchTnByNpaNxx( new BComTnByNpaNxxRequest( request.npa, request.nxx)); } catch (Exception ex) { response.SetError("Error during Tn By NpaNxx Search: " + ex.Message); Response.Write(response.ToXml()); return; } // Debug, Print out response. //Response.Write(Serializer.SerializeObject(bcomResponse, typeof(BComTnSearchResponse))); //Response.Write(Environment.NewLine + Environment.NewLine + Environment.NewLine); // Success? if (bcomResponse.Status == "Success") { // Check for an returned TNs. if (bcomResponse.SearchResult != null && bcomResponse.SearchResult.TelephoneNumberList != null && bcomResponse.SearchResult.TelephoneNumberList.Count > 0 && HTTPS_Interface.LooseStringToInteger( bcomResponse.SearchResult.ResultCount) > 0) { // Add to the list, if not already there. foreach (string tn in bcomResponse.SearchResult.TelephoneNumberList) { if (!tnList.Contains(tn)) { tnList.Add(tn); } } } } else { // Get error message string errorMessage = string.Empty; try { errorMessage = bcomResponse.ErrorCode + " - " + bcomResponse.ErrorMessage; } catch { errorMessage = "Error: Unable to parse error response."; } // Return error response.SetJeop(errorMessage); Response.Write(response.ToXml()); return; } } // Rate center and state? if (!string.IsNullOrEmpty(request.rc) && !string.IsNullOrEmpty(request.state)) { // Check with BCom BComTnSearchResponse bcomResponse = null; try { bcomResponse = new HTTPS_Interface().SearchTnByRateCenter( new BComTnByRateCenterRequest( request.rc, request.state)); } catch (Exception ex) { response.SetJeop("Error during Tn By Ratecenter Search: " + ex.Message); Response.Write(response.ToXml()); return; } // Debug, Print out response. //Response.Write(Serializer.SerializeObject(bcomResponse, typeof(BComTnSearchResponse))); //Response.Write(Environment.NewLine + Environment.NewLine + Environment.NewLine); // Success? if (bcomResponse.Status == "Success") { // Check for an returned TNs. if (bcomResponse.SearchResult != null && bcomResponse.SearchResult.TelephoneNumberList != null && bcomResponse.SearchResult.TelephoneNumberList.Count > 0 && HTTPS_Interface.LooseStringToInteger( bcomResponse.SearchResult.ResultCount) > 0) { // Add to the list, if not already there. foreach (string tn in bcomResponse.SearchResult.TelephoneNumberList) { if (!tnList.Contains(tn)) { tnList.Add(tn); } } } } else { // Get error message string errorMessage = string.Empty; try { errorMessage = bcomResponse.ErrorCode + " - " + bcomResponse.ErrorMessage; } catch { errorMessage = "Error: Unable to parse error response."; } // Return error response.SetJeop(errorMessage); Response.Write(response.ToXml()); return; } } // Zip? if (!string.IsNullOrEmpty(request.zip)) { // Check with BCom BComTnSearchResponse bcomResponse = null; try { bcomResponse = new HTTPS_Interface().SearchTnByZip( new BComTnByZipRequest( request.zip)); } catch (Exception ex) { response.SetJeop("Error during Tn By Zip Search: " + ex.Message); Response.Write(response.ToXml()); return; } // Debug, Print out response. //Response.Write(Serializer.SerializeObject(bcomResponse, typeof(BComTnSearchResponse))); //Response.Write(Environment.NewLine + Environment.NewLine + Environment.NewLine); // Success? if (bcomResponse.Status == "Success") { // Check for an returned TNs. if (bcomResponse.SearchResult != null && bcomResponse.SearchResult.TelephoneNumberList != null && bcomResponse.SearchResult.TelephoneNumberList.Count > 0 && HTTPS_Interface.LooseStringToInteger( bcomResponse.SearchResult.ResultCount) > 0) { // Add to the list, if not already there. foreach (string tn in bcomResponse.SearchResult.TelephoneNumberList) { if (!tnList.Contains(tn)) { tnList.Add(tn); } } } } else { // Get error message string errorMessage = string.Empty; try { errorMessage = bcomResponse.ErrorCode + " - " + bcomResponse.ErrorMessage; } catch { errorMessage = "Error: Unable to parse error response."; } // Return error response.SetJeop(errorMessage); Response.Write(response.ToXml()); return; } } // Any TNs? if (tnList.Count < 1) { response.SetError("No TNs were returned."); } // Complete! else { response.SetComplete(); // Add Tn list response.tns = tnList.ToArray(); } // Return result. Response.Write(response.ToXml()); return; }