Update Customer Preference
1. updateCustomerPreference.cs
These four packages are required to be used.
Step 1. Create class file to store content of the web response.
2. msObj.cs
3. rmObj.cs
4. rpObj.cs
5. TriggerList1.cs
6. updateCustomerPreference.aspx.cs
These 13 packages are required to be used.
Code in Common
(1). Create an TriggerList1 ListObject Variable. Check if user id and password is inside session. When the user id and password is inside user session, it will automatically populate into the user id and pin textbox, so that the user need not manually type his user id and password repeatedly.
Step 2. "Add" Button. This would allow user to update more than one TriggerList before clicking the send button together with other inputs.
When the add button is clicked, an array which consist of AccountID, TriggerType, Amount, TViaEmail and TViaSMS would be added to the TriggerList.
Step3. Clear Button. When the clear button is clicked, the label, affinityID and Active textbox would be cleared.
Step 4. Send Button. Store details entered by the user. If user id, password, and OTP exist in session, user need not enter again (refer to common stuff).
Step 5. Create URL which will be post to the server. User inputs need to be stored in the class created, and serialize into JSON format. In this function, both header and content are needed.
Step 6. Post to the server, and store response. URL is sent using web request function, and a response will be send back from the server. The response need to be deserialized into the ‘updateCustomerPreference' class.
Step 7. Obtain error code. If error code is ‘010000’ which means invocation successful, populate attributes of the ‘updateCustomerPreference'’ class into the Label. If error code is '010041', it means OTP has expired, and we will use the newOTP() function to prompt the user for the OTP again. Else, we will display the ErrorText and ErrorDetails.
The newOTP() function can be referred to under Common Stuff Section
Overview of updateCustomerPreference.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Demo
{
public class updateCustomerPreferenceRootObject
{
public updateCustomerPreferenceContent Content { get; set; }
}
public class updateCustomerPreferenceContent
{
public updateCustomerPreferenceServiceResponse ServiceResponse { get; set; }
}
public class updateCustomerPreferenceServiceResponse
{
public updateCustomerPreferenceServiceRespHeader ServiceRespHeader { get; set; }
}
public class updateCustomerPreferenceServiceRespHeader
{
public string ErrorText { get; set; }
public object ErrorDetails { get; set; }
public string GlobalErrorID { get; set; }
}
}
Overview of msObj.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Demo
{
public class msObj
{
public msObjContentJson Content { get; set; }
}
public class msObjContentJson
{
public string ViaEmail { get; set; }
public string ViaSnailMail { get; set; }
}
}
Overview of rmObj.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Demo
{
public class rmObj
{
public rmObjContentJson Content { get; set; }
}
public class rmObjContentJson
{
public string ViaEmail { get; set; }
public string ViaPhone { get; set; }
public string ViaSMS { get; set; }
}
}
Overview of rpObj.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Demo
{
public class rpObj
{
public rpObjContentJson Content { get; set; }
}
public class rpObjContentJson
{
public string ViaEmail { get; set; }
public string ViaSMS { get; set; }
}
}
Overview of TriggerList1.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Demo
{
public class TriggerList1
{
public string TriggerType { get; set; }
public string AccountID { get; set; }
public string ViaEmail { get; set; }
public string Amount { get; set; }
public string ViaSMS { get; set; }
}
public class tObj
{
public TriggerList1 content { get; set; }
}
}
Overview of updateCustomerPreference.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DotNetOpenAuth.OAuth2;
using Newtonsoft.Json;
using System.Collections.Specialized;
using System.Configuration;
using System.Net;
using System.IO;
using System.Windows.Forms;
namespace Demo
{
public partial class UpdateCustomerPreference : System.Web.UI.Page
{
List<TriggerList1> respmsg1;
protected void Page_Load(object sender, EventArgs e)
{
if (Session["userid"] != null)
{
txtUserID.Text = (string)Session["userid"];
txtPassword.Text = (string)Session["pin"];
}
if(!Page.IsPostBack)
{
List<TriggerList1> respmsg1 = new List<TriggerList1>();
Session["tl"] = respmsg1;
}
else
{
respmsg1 = (List<TriggerList1>)Session["tl"];
}
}
protected void btnSend_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
try
{
string userID = txtUserID.Text;
Session["userid"] = userID;
string pin = txtPassword.Text;
Session["pin"] = pin;
string MSViaEmail = txtMSViaEmail.Text;
string MSViaSnailMail = txtMSViaSnailMail.Text;
string RPViaEmail = txtRPViaEmail.Text;
string RPViaSMS = txtRPViaSMS.Text;
string RMViaPhone = txtRMViaPhone.Text;
string RMViaEmail = txtRMViaEMail.Text;
string RMViaSMS = txtRMViaSMS.Text;
string otp;
if (Session["otp"] == null)
{
otp = "1";
}
else
{
otp = Session["otp"].ToString();
}
var header = new HeaderJson();
header.userID = userID;
header.PIN = pin;
header.serviceName = "updateCustomerPreference";
header.OTP = otp;
var headerJson = new HeaderJsonObject();
headerJson.Header = header;
string strHeader = JsonConvert.SerializeObject(headerJson);
var msobj = new msObjContentJson();
msobj.ViaEmail = MSViaEmail;
msobj.ViaSnailMail = MSViaSnailMail;
var rpobj = new rpObjContentJson();
rpobj.ViaEmail = RPViaEmail;
rpobj.ViaSMS = RPViaSMS;
var rmobj = new rmObjContentJson();
rmobj.ViaEmail = RMViaEmail;
rmobj.ViaSMS = RMViaSMS;
rmobj.ViaPhone = RMViaPhone;
var content = new ContentJson();
content.MonthlyStatement = msobj;
content.RedeemPromotion = rpobj;
content.RMModeOfCommunication = rmobj;
content.TriggerList = respmsg1;
var contentJson = new ContentJsonObject();
contentJson.Content = content;
string strContent = JsonConvert.SerializeObject(contentJson);
string url = "http://tbankonline.com/SMUtBank_API/Gateway?Header=" + strHeader + "&Content=" + strContent;
var webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.ContentType = "application/json";
webRequest.Method = "POST";
var result = "";
var httpResponse = (HttpWebResponse)webRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
result = streamReader.ReadToEnd();
}
updateCustomerPreferenceRootObject update = new updateCustomerPreferenceRootObject();
update = JsonConvert.DeserializeObject<updateCustomerPreferenceRootObject>(result);
string globalErrorID = update.Content.ServiceResponse.ServiceRespHeader.GlobalErrorID.ToString();
if (globalErrorID == "010000")
{
lblStatus.Text = "Customer Preference Updated";
}
else if (globalErrorID == "010041")
{
otp = utilities.newOTP();
Session["otp"] = otp;
}
else
{
lblTest.Text = update.Content.ServiceResponse.ServiceRespHeader.ErrorText.ToString();
string errorMessage = update.Content.ServiceResponse.ServiceRespHeader.ErrorDetails.ToString();
lblErrorMessage.Text = errorMessage;
}
}
catch (Exception ex)
{
lblExceptionMsg.Text = ex.ToString();
}
}
}
protected void btnAdd_Click1(object sender, EventArgs e)
{
string AccountID1 = txtAccountID.Text;
string TriggerType1 = txtTriggerType.Text;
string Amount1 = txtAmount.Text;
string TViaEmail = txtTViaEmail.Text;
string TViaSMS = txtTViaSMS.Text;
respmsg1.Add(new TriggerList1 { Amount = Amount1, AccountID = AccountID1, TriggerType = TriggerType1, ViaEmail = TViaEmail, ViaSMS = TViaSMS });
lblAdd.Text = "Added";
}
protected void btnClear_Click(object sender, EventArgs e)
{
txtAccountID.Text = "";
txtTriggerType.Text = "";
txtAmount.Text = "";
txtTViaEmail.Text = "";
txtTViaSMS.Text = "";
lblAdd.Text = "";
}
}
}
Created with the Personal Edition of HelpNDoc: iPhone web sites made easy