5.8.1 Modify Pickup (C#)

Modify Pickup

Sample source code to modify pickup (requires Newtonsoft.JSON from NuGet)
using System; using System.Collections.Generic; using System.IO; using System.Net; using Newtonsoft.Json; namespace PrinshipShipment { public class PersonInfo { public string Name { get; set; } public string ContactPerson { get; set; } public string Address1 { get; set; } public string Address2 { get; set; } public string Address3 { get; set; } public string PostCode { get; set; } public string City { get; set; } public string State { get; set; } public string CountryCode { get; set; } public string StationCode { get; set; } public string Phone1 { get; set; } public string Phone2 { get; set; } public string MobilePhone { get; set; } public string Fax { get; set; } public string Email { get; set; } public string Url { get; set; } } public class PickupJob { public PickupJob() { Shipper = new PersonInfo(); } public PersonInfo Shipper { get; set; } public int Quantity { get; set; } public float Weight { get; set; } public DateTime PickupDateTime { get; set; } public string PickupNo { get; set; } public string Remarks { get; set; } } public class PickupRequest { public PickupRequest() { Pickup = new List<PickupJob>(); } public List<PickupJob> Pickup { get; set; } } public class APIHelper { const string PRODUCTION_URL = "https://apiv2.unixus.com.my/"; const string SANDBOX_URL = "https://sandbox-apiv2.unixus.com.my/"; const string myRefreshToken = "88888888"; static string api_url = SANDBOX_URL; public static string GetAccessToken() { var httpWebRequest = (HttpWebRequest)WebRequest.Create(api_url + "Token/Refresh"); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { string json = "{ 'RefreshToken' : '" + myRefreshToken + "'}'"; streamWriter.Write(json); streamWriter.Flush(); streamWriter.Close(); } var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); var token = ""; using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { try { string result = streamReader.ReadToEnd(); dynamic obj = JsonConvert.DeserializeObject<object>(result); token = obj.AccessToken; } catch (System.Exception ex) { Console.WriteLine(string.Format("Error occurred getting AccessToken: {0}", ex.Message)); } } return token; } public static string ModifyPickup() { var pickupRequest = new PickupRequest(); var pickupJob = new PickupJob(); PersonInfo sender = new PersonInfo(); sender.Name = "Unixus Solutions Sdn. Bhd."; sender.ContactPerson = "Accounts Department"; sender.Address1 = "123 Jalan 3,"; sender.Address2 = "SUSUR 1,"; sender.Address3 = string.Empty; sender.PostCode = "80000"; sender.City = "JOHOR BAHRU"; sender.State = "JOHOR"; sender.CountryCode = "MY"; sender.StationCode = ""; sender.Phone1 = "607-2222668"; sender.Phone2 = ""; sender.MobilePhone = ""; sender.Fax = ""; sender.Email = "[email protected]"; sender.Url = ""; pickupJob.Shipper = sender; pickupJob.Quantity = 2; pickupJob.Weight = 2.0f; pickupJob.PickupDateTime = DateTime.Now; pickupJob.Remarks = "Please ring the doorbell"; pickupJob.PickupNo = "PKR190104131458"; pickupRequest.Pickup.Add(pickupJob); var result = ""; try { var httpWebRequest = (HttpWebRequest)WebRequest.Create(api_url + "pickup/v1/Modify"); httpWebRequest.ContentType = "application/json"; httpWebRequest.Headers.Add("X-Version", "1"); httpWebRequest.Headers.Add("Authorization", "Bearer " + GetAccessToken()); httpWebRequest.Method = "POST"; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { string json = JsonConvert.SerializeObject(pickupRequest); Console.WriteLine(json); streamWriter.Write(json); streamWriter.Flush(); streamWriter.Close(); } var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { result = streamReader.ReadToEnd(); } dynamic obj = JsonConvert.DeserializeObject<object>(result); if (obj.Summary.Success > 0) { // Successful Console.WriteLine("Successfully modified pickup job"); foreach (dynamic pickup in obj.Pickup) { Console.WriteLine("PickupNo: " + pickup.PickupDetails.PickupNo); } } else { // Failed, print error Console.WriteLine("Modify pickup job failed"); foreach (dynamic err in obj.Errors) { Console.WriteLine(string.Format("Error Message: {0}", err.ErrorMessage)); } } } catch (Exception ex) { Console.WriteLine(string.Format("Error occurred modifying Pickup Request: {0}", ex.Message)); } return result; } } class Program { static void Main(string[] args) { APIHelper.ModifyPickup(); Console.ReadLine(); } } }

Copyright © 2019 Unixus Solutions Sdn. Bhd. All rights reserved.