Method PostComponentSync

Summary

Component Sync

Remarks

CX Return Changes from Time inputted for current date for files Location Service Component Rate File, Customer Master File and Customer Location Services File by Location and Service Inputted.

Requires

Input Parameters

NameTypeLengthDescription
locationId numeric 9 [Required] 9 digit Location ID
serviceCode char 2 [Required] 2 digit service code
requestDate char 7 [Required] CYYMMDD Format for C 1=20, 0=19
militaryTime numeric 6 [Required] 6 digit military time

Example

POST http://localhost/FusionServices/v3/Naviline/Utilities/ComponentSync

Return Values

NameDescription
FILE Service Component
LocationID 000021216
ServiceCode SA
BillJuris LF
RateClass R
BillInOutCityRate I
FlatRateCode SANI
Quantity 10000
StartYear 14
StartMonth 12
StartDay 01
StopYear 00
StopMonth 00
StopDay 00
Status A
Comment
SequenceNumber 001
UserID QLXL2
StartCentury 1
StopCentury 1
CustomerID
CustomerName
CustomerNameType
Type Add
ServiceStreetAddr 8811 HUNTERSFIELD LN
ServiceZip 77571
ServiceCity LA PORTE
ServiceState TX
ChangeDate 1150108
ChangeTime 160031
NumberOfUnits 00100
ErrorCode 0000=Success
ErrorMessage Description of error if any

Sample Responses

Sample Code

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

public void MethodName(parms)
{
   string uri = "http://localhost/FusionServices/v3/Naviline/Utilities/ComponentSync";
   System.Collections.Specialized.NameValueCollection postParms = 
     new System.Collections.Specialized.NameValueCollection(); 
   // Set paramater values
   postParms.Add("locationId",System.Web.HttpUtility.UrlEncode("000000000"));
   postParms.Add("serviceCode",System.Web.HttpUtility.UrlEncode("SA"));
   postParms.Add("requestDate",System.Web.HttpUtility.UrlEncode("1150101"));
   postParms.Add("militaryTime",System.Web.HttpUtility.UrlEncode("000000"));

   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 FILE = row["FILE"].ToString();
             string LocationID = row["LocationID"].ToString();
             string ServiceCode = row["ServiceCode"].ToString();
             string BillJuris = row["BillJuris"].ToString();
             string RateClass = row["RateClass"].ToString();
             string BillInOutCityRate = row["BillInOutCityRate"].ToString();
             string FlatRateCode = row["FlatRateCode"].ToString();
             string Quantity = row["Quantity"].ToString();
             string StartYear = row["StartYear"].ToString();
             string StartMonth = row["StartMonth"].ToString();
             string StartDay = row["StartDay"].ToString();
             string StopYear = row["StopYear"].ToString();
             string StopMonth = row["StopMonth"].ToString();
             string StopDay = row["StopDay"].ToString();
             string Status = row["Status"].ToString();
             string Comment = row["Comment"].ToString();
             string SequenceNumber = row["SequenceNumber"].ToString();
             string UserID = row["UserID"].ToString();
             string StartCentury = row["StartCentury"].ToString();
             string StopCentury = row["StopCentury"].ToString();
             string CustomerID = row["CustomerID"].ToString();
             string CustomerName = row["CustomerName"].ToString();
             string CustomerNameType = row["CustomerNameType"].ToString();
             string Type = row["Type"].ToString();
             string ServiceStreetAddr = row["ServiceStreetAddr"].ToString();
             string ServiceZip = row["ServiceZip"].ToString();
             string ServiceCity = row["ServiceCity"].ToString();
             string ServiceState = row["ServiceState"].ToString();
             string ChangeDate = row["ChangeDate"].ToString();
             string ChangeTime = row["ChangeTime"].ToString();
             string NumberOfUnits = row["NumberOfUnits"].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 PostComponentSync
   {
       // Add property for each input param in order to map a field to it
       [Required(ErrorMessage = "Required")]
       [RegularExpression("[0-9]{0,9}", ErrorMessage = "Numeric values only. Must be 9 digits or less. ")]
       public string locationId{get; set;}

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

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

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

       public PostComponentSync()
       {
           //Set any defaults here
       }
   }
}
@* NOTE: Use Add->View to add the View. *@
@* NOTE: Check the 'Create strongly-typed view checkbox, and select the PostComponentSync 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.PostComponentSync

@{
   ViewBag.Title = "PostComponentSync";
}

<h2>PostComponentSync</h2>
@using (Html.BeginForm()) {
   @Html.AntiForgeryToken()
   @Html.ValidationSummary(true)
   <fieldset>
   <legend>PostComponentSync</legend>
       <div class="editor-label">
           @Html.LabelFor(model => model.locationId)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.locationId)
           @Html.ValidationMessageFor(model => model.locationId)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.serviceCode)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.serviceCode)
           @Html.ValidationMessageFor(model => model.serviceCode)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.requestDate)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.requestDate)
           @Html.ValidationMessageFor(model => model.requestDate)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.militaryTime)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.militaryTime)
           @Html.ValidationMessageFor(model => model.militaryTime)
       </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/PostComponentSync
public ActionResult PostComponentSync()
{
   // Create a new instance of the model to pick up any default values.
   PostComponentSync model =  new PostComponentSync();

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

// 
// POST: /MyController/PostComponentSync
[HttpPost]
public ActionResult PostComponentSync(FormCollection collection)
{
   string url = "v3/Naviline/Utilities/ComponentSync";
   // Get the value from each input field
   NameValueCollection inputParms = new NameValueCollection();
   inputParms.Add("locationId", collection["locationId"]);
   inputParms.Add("serviceCode", collection["serviceCode"]);
   inputParms.Add("requestDate", collection["requestDate"]);
   inputParms.Add("militaryTime", collection["militaryTime"]);

   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", "PostComponentSync");
       return View("Error", info);
   }
}