Method PostSearchInspections

Summary

Search for Inspections

Remarks

Use this method to get the inspections for the permit. Returns any that are scheduled, canceled, or approved.

Input Parameters

NameTypeLengthDescription
applicationYear numeric 2 [Required] Two digit Application Year - if a 4 digit year is provided, only the last two digits are used
applicationNumber numeric 8 [Required] Application Number
startNumber numeric 3 [Required] Start Number. For a permit, Ex: 000 000 BLDG 01, this is the first set of three numbers.
startSequence numeric 3 [Required] Start Sequence. For a permit, Ex: 000 000 BLDG 01, this is the second set of three numbers.
permitType System.String 4 [Required] Permit Type. For a permit, Ex: 000 000 BLDG 01, this is the third set of four characters, which has to be one of the permit type codes.
permitSequence numeric 2 [Required] Permit Sequence. For a permit, Ex: 000 000 BLDG 01, this is the fourth set of two numbers.
rows numeric 4 Number of rows to return. Default = 1000

Example

POST http://localhost/FusionServices/v3/Naviline/Inspection/SearchInspections/

Return Values

NameDescription
IVRNumber ID number for the inspection
InspectionDesc Inspection description
RequestedDate Date inspection was requested
ResultStatus Current status of the inspection
ResultDate Date result was entered
InspectionType Inspection type code
InspectionSeqNbr Inspection sequence number - 4 digit
ErrorCode 0000=Search found inspections. Otherwise inspections were not found. See ErrorMessage
ErrorMessage Reason why inspections were not found when ErrorCode not 0000.
ROWS Number of rows returned
MOREYN Are there more records? Y/N

Sample Responses

Sample Code

using System.Net;
using Newtonsoft.Json.Linq;

public void MethodName(parms)
{
   string uri = "http://localhost/FusionServices/v3/Naviline/Inspection/SearchInspections";
   System.Collections.Specialized.NameValueCollection postParms = 
     new System.Collections.Specialized.NameValueCollection(); 
   // Set paramater values
   postParms.Add("applicationYear",System.Web.HttpUtility.UrlEncode("9"));
   postParms.Add("applicationNumber",System.Web.HttpUtility.UrlEncode("502"));
   postParms.Add("startNumber",System.Web.HttpUtility.UrlEncode("0"));
   postParms.Add("startSequence",System.Web.HttpUtility.UrlEncode("0"));
   postParms.Add("permitType",System.Web.HttpUtility.UrlEncode("BLDG"));
   postParms.Add("permitSequence",System.Web.HttpUtility.UrlEncode("1"));

   WebClient req = new WebClient();
   wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
   wc.Headers.Set("X-APPID", "YOURID");
   wc.Headers.Set("X-APPKEY", "YOURKEY");

   byte[] responseBytes = wc.UploadValues(new Uri(uri), "POST", postParms);
   string stringResult = Encoding.UTF8.GetString(responseBytes); 
   JObject response = JObject.Parse(stringResult);
   string error = response["OutputParms"]["ErrorCode"].ToString();
   if (error == "0000")
   {
        JArray jRows = (JArray)response["Rows"];
        foreach (JObject row in jRows)
        {
             string IVRNumber = row["IVRNumber"].ToString();
             string InspectionDesc = row["InspectionDesc"].ToString();
             string RequestedDate = row["RequestedDate"].ToString();
             string ResultStatus = row["ResultStatus"].ToString();
             string ResultDate = row["ResultDate"].ToString();
             string InspectionType = row["InspectionType"].ToString();
             string InspectionSeqNbr = row["InspectionSeqNbr"].ToString();
             // TODO - YOUR CODE HERE
        }
   }
}

C# Razor MVC Sample Code

using System;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Collections.Specialized;
using FusionServiceHelper.Models;

// NOTE: Use the namespace generated when you add the class, so that it is correct.
namespace FusionRazor.Models
{
   public class PostSearchInspections
   {
       // Add property for each input param in order to map a field to it
       [Required(ErrorMessage = "Required")]
       [RegularExpression("[0-9]{0,2}", ErrorMessage = "Numeric values only. Must be 2 digits or less. ")]
       public string applicationYear{get; set;}

       [Required(ErrorMessage = "Required")]
       [RegularExpression("[0-9]{0,8}", ErrorMessage = "Numeric values only. Must be 8 digits or less. ")]
       public string applicationNumber{get; set;}

       [Required(ErrorMessage = "Required")]
       [RegularExpression("[0-9]{0,3}", ErrorMessage = "Numeric values only. Must be 3 digits or less. ")]
       public string startNumber{get; set;}

       [Required(ErrorMessage = "Required")]
       [RegularExpression("[0-9]{0,3}", ErrorMessage = "Numeric values only. Must be 3 digits or less. ")]
       public string startSequence{get; set;}

       [Required(ErrorMessage = "Required")]
       [RegularExpression("^(?=.{0,4}$).*", ErrorMessage = "Must be 4 characters or less. ")]
       public string permitType{get; set;}

       [Required(ErrorMessage = "Required")]
       [RegularExpression("[0-9]{0,2}", ErrorMessage = "Numeric values only. Must be 2 digits or less. ")]
       public string permitSequence{get; set;}

       [RegularExpression("[0-9]{0,4}", ErrorMessage = "Numeric values only. Must be 4 digits or less. ")]
       public string rows{get; set;}

       public PostSearchInspections()
       {
           //Set any defaults here
       }
   }
}
@* NOTE: Use Add->View to add the View. *@
@* NOTE: Check the 'Create strongly-typed view checkbox, and select the PostSearchInspections class. *@
@* NOTE: Select Edit as the Scaffold template. *@
@* NOTE: Use the @model line that is generated at the top.  Replace the rest with the lines below.
@model FusionRazor.Models.PostSearchInspections

@{
   ViewBag.Title = "PostSearchInspections";
}

<h2>PostSearchInspections</h2>
@using (Html.BeginForm()) {
   @Html.AntiForgeryToken()
   @Html.ValidationSummary(true)
   <fieldset>
   <legend>PostSearchInspections</legend>
       <div class="editor-label">
           @Html.LabelFor(model => model.applicationYear)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.applicationYear)
           @Html.ValidationMessageFor(model => model.applicationYear)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.applicationNumber)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.applicationNumber)
           @Html.ValidationMessageFor(model => model.applicationNumber)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.startNumber)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.startNumber)
           @Html.ValidationMessageFor(model => model.startNumber)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.startSequence)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.startSequence)
           @Html.ValidationMessageFor(model => model.startSequence)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.permitType)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.permitType)
           @Html.ValidationMessageFor(model => model.permitType)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.permitSequence)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.permitSequence)
           @Html.ValidationMessageFor(model => model.permitSequence)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.rows)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.rows)
           @Html.ValidationMessageFor(model => model.rows)
       </div>
       <p>
       <input type="submit" value="Submit"/>
       </p>
   </fieldset>

}

@section Scripts {
   @Scripts.Render("~/bundles/jqueryval")
}
using System;
using System.Collections.Specialized;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using FusionServiceHelper.Models;

// NOTE: Replace 'MyController' with the name of your controller.

// 
// GET: /MyController/PostSearchInspections
public ActionResult PostSearchInspections()
{
   // Create a new instance of the model to pick up any default values.
   PostSearchInspections model =  new PostSearchInspections();

   // pass model to set to default values
   // NOTE: Change 'MyFolderPath' to the path to the .cshtml file.
   return View("~/Views/MyFolderPath/PostSearchInspections.cshtml", model);
}

// 
// POST: /MyController/PostSearchInspections
[HttpPost]
public ActionResult PostSearchInspections(FormCollection collection)
{
   string url = "v3/Naviline/Inspection/SearchInspections/";
   // Get the value from each input field
   NameValueCollection inputParms = new NameValueCollection();
   inputParms.Add("applicationYear", collection["applicationYear"]);
   inputParms.Add("applicationNumber", collection["applicationNumber"]);
   inputParms.Add("startNumber", collection["startNumber"]);
   inputParms.Add("startSequence", collection["startSequence"]);
   inputParms.Add("permitType", collection["permitType"]);
   inputParms.Add("permitSequence", collection["permitSequence"]);
   inputParms.Add("rows", collection["rows"]);

   try
   {
       // Send the request
       FusionServiceRequest request = new FusionServiceRequest();
       FusionServiceResult result = request.Post(url, inputParms);

       return View("Result", result);
   }
   catch(Exception e)
   {
       HandleErrorInfo info = new HandleErrorInfo(e, "MyController", "PostSearchInspections");
       return View("Error", info);
   }
}