Home → 360 → Aristotle 360 API → Example Web Application Using the 360 API
92.4. Example Web Application Using the 360 API
Using the Aristotle 360 api, we have developed a sample web application that demonstrates how to search, select, and update individual records within 360, as well as add a new receipt (contribution) record to an individual. This sample application was developed using ASP.NET 3.5 (C#).
ASPX code (Individual.aspx):
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Individual.aspx.cs" Inherits="APIDEMO.Individual" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Working with the 360 Individual API</title>
</head>
<body>
<form id="form1" runat="server">
<div id="divSearch">
<table>
<tr>
<td>
Search:
</td>
<td>
<asp:TextBox ID="txtSearchString" runat="server"></asp:TextBox>
</td>
<td>
<asp:Button ID="btnSearch" runat="server" Text="Search"
onclick="btnSearch_Click" />
</td>
</tr>
</table>
</div>
<div id="divResults" runat="server" style="max-height:300px; width:450px; overflow:scroll" >
<asp:DataList ID="dtlIndividual" runat="server" >
<ItemTemplate>
<table style="background-color:#FFFFCC">
<tr>
<td style="width:50px">
<asp:LinkButton runat="server" Text="View" OnCommand="dtlIndividual_SelectedIndexChanged" CommandName="Select" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ind_GUID")%>'></asp:LinkButton>
</td>
<td style="width:250px">
<%# DataBinder.Eval(Container.DataItem, "ind_FirstName")%>
<%# DataBinder.Eval(Container.DataItem, "ind_LastName")%>
</td>
<td style="width:100px">
<%# DataBinder.Eval(Container.DataItem, "iad_City")%>
</td>
<td style="width:100px">
<%# DataBinder.Eval(Container.DataItem, "iad_State")%>
</td>
<td style="width:50px">
<%# DataBinder.Eval(Container.DataItem, "iad_Zip5")%>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</div>
<div id="divDetail" runat="server" style="max-height:300px; width:450px;display:none" >
<p>
<h3>Edit Individual Information:</h3>
</p>
<input type="hidden" runat="server" id="hiddenIndividualGUID" />
<input type="hidden" runat="server" id="hiddenAddressGUID" />
<table>
<tr>
<td align="right" style="width:120px">
First Name:
</td>
<td align="left">
<asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right" style="width:120px">
Middle Name:
</td>
<td align="left">
<asp:TextBox ID="txtMiddleName" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right" style="width:120px">
Last Name:
</td>
<td align="left">
<asp:TextBox ID="txtLastName" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right" style="width:120px">
Address 1:
</td>
<td align="left">
<asp:TextBox ID="txtAddress1" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right" style="width:120px">
City:
</td>
<td align="left">
<asp:TextBox ID="txtCity" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right" style="width:120px">
State:
</td>
<td align="left">
<asp:TextBox ID="txtState" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right" style="width:120px">
Zip:
</td>
<td align="left">
<asp:TextBox ID="txtZip" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
</td>
<td align="right">
<asp:Button ID="btnSave" runat="server" Text="Save" onclick="btnSave_Click" />
</td>
<label id="lblError" runat="server"></label>
</tr>
</table>
</div>
</form>
</body>
</html>
|
C# code (Individual.aspx.cs):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
namespace APIDEMO
{
public partial class Individual : System.Web.UI.Page
{
string strUserName = "";
string strPassword = "";
protected void Page_Load(object sender, EventArgs e)
{
strUserName = ConfigurationSettings.AppSettings["UserName"].ToString();
strPassword = ConfigurationSettings.AppSettings["Password"].ToString(); ;
}
protected void btnSearch_Click(object sender, EventArgs e)
{
//SHOW RESULTS PANEL:
divDetail.Style.Add("display", "none");
divResults.Style.Add("display", "block");
string strSearch = txtSearchString.Text;
//CALL GET INDIVIDUAL WEB SERVICE:
getIndivdiualInfoWS.getIndividualInformationWebService getIndindividual = new getIndivdiualInfoWS.getIndividualInformationWebService();
DataSet dsResult = getIndindividual.searchKeyword(strSearch, strUserName, strPassword);
//BIND DATA LIST:
dtlIndividual.DataSource = dsResult.Tables["std_Individual"];
dtlIndividual.DataBind();
}//end of Search button event handler
protected void dtlIndividual_SelectedIndexChanged(object sender, CommandEventArgs e)
{
//SHOW DETAIL PANEL:
divDetail.Style.Add("display", "block");
divResults.Style.Add("display", "none");
//Clear Text Boxes:
txtFirstName.Text = "";
txtMiddleName.Text = "";
txtLastName.Text = "";
txtAddress1.Text = "";
txtCity.Text = "";
txtState.Text = "";
txtZip.Text = "";
lblError.InnerHtml = "";
string strIndividualGUID = e.CommandArgument.ToString();
hiddenIndividualGUID.Value = strIndividualGUID;
//CALL GET INDIVIDUAL WEBSERVICE:
getIndivdiualInfoWS.getIndividualInformationWebService getIndindividual = new getIndivdiualInfoWS.getIndividualInformationWebService();
DataSet dsResult = getIndindividual.getDetail(strIndividualGUID,strUserName,strPassword);
//POPULATE INDIVIDUAL DETAIL TEXTBOXES:
if (dsResult.Tables["std_Individual"] != null && dsResult.Tables["std_Individual"].Rows.Count > 0)
{
DataRow drwInd = dsResult.Tables["std_Individual"].Rows[0]; //GETDETAIL SHOULD ALWAYS RETURN Zero or 1 Rows for std_Individual Table
txtFirstName.Text = drwInd["ind_FirstName"].ToString();
txtMiddleName.Text = drwInd["ind_MiddleName"].ToString();
txtLastName.Text = drwInd["ind_LastName"].ToString();
if (dsResult.Tables["rtb_IndividualAddress"] != null && dsResult.Tables["rtb_IndividualAddress"].Rows.Count > 0)
{
DataRow drwAddr = dsResult.Tables["rtb_IndividualAddress"].Rows[0]; //Individual Address Could Return Multiple Rows. Select 1st for simplcity.
hiddenAddressGUID.Value = drwAddr["iad_GUID"].ToString();
txtAddress1.Text = drwAddr["iad_Line1"].ToString();
txtCity.Text = drwAddr["iad_City"].ToString();
txtState.Text = drwAddr["iad_State"].ToString();
txtZip.Text = drwAddr["iad_Zip5"].ToString();
}
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
//GET SELECTED INDIVIDUAL:
string strIndGUID = hiddenIndividualGUID.Value;
string strAddrGUID = hiddenAddressGUID.Value;
getIndivdiualInfoWS.getIndividualInformationWebService getIndindividual = new getIndivdiualInfoWS.getIndividualInformationWebService();
DataSet dsResult = getIndindividual.getDetail(strIndGUID, strUserName, strPassword);
//SET INDIVIDUAL INFO:
DataRow drwInd = dsResult.Tables["std_Individual"].Rows[0];
drwInd["ind_FirstName"] = txtFirstName.Text;
drwInd["ind_MiddleName"] = txtMiddleName.Text;
drwInd["ind_LastName"] = txtLastName.Text;
//SET INDIVIDUAL ADDRESS INFO:
if (hiddenAddressGUID.Value.Length > 0)
{
//Update Existing Address:
foreach (DataRow drw in dsResult.Tables["rtb_IndividualAddress"].Rows)
{
if (drw["iad_GUID"].ToString() == hiddenAddressGUID.Value)
{
drw["iad_Line1"] = txtAddress1.Text;
drw["iad_City"] = txtCity.Text;
drw["iad_State"] = txtState.Text;
drw["iad_Zip5"] = txtZip.Text;
}
}//end of loop
}
else if (txtAddress1.Text.Length > 0)
{
//Address did not exist, Create New Address:
DataRow drwAddr = dsResult.Tables["rtb_IndividualAddress"].NewRow();
drwAddr["iad_GUID"] = System.Guid.NewGuid();
drwAddr["iad_ind_GUID"] = hiddenIndividualGUID.Value;
drwAddr["iad_Line1"] = txtAddress1.Text;
drwAddr["iad_City"] = txtCity.Text;
drwAddr["iad_State"] = txtState.Text;
drwAddr["iad_Zip5"] = txtZip.Text;
drwAddr["iad_iat_GUID"] = getDefaultAddressType();
drwAddr["iad_Default"] = true;
drwAddr["iad_Deleted"] = false;
drwAddr["iad_CreatedOn"] = System.DateTime.Today;
drwAddr["iad_CreatedBy"] = System.Guid.NewGuid();
dsResult.Tables["rtb_IndividualAddress"].Rows.Add(drwAddr);
}
//SAVE INDIVIDUAL INFORMATION:
setIndividualInfoWS.setIndividualInformationWebService setIndividual = new APIDEMO.setIndividualInfoWS.setIndividualInformationWebService();
DataSet dsReturn = setIndividual.setDetail(dsResult,strUserName,strPassword);
//IF ERROR, DISPLAY MESSAGE:
if (dsReturn.Tables["Error"] != null && dsReturn.Tables["Error"].Rows.Count > 0 )
{
lblError.InnerHtml = dsReturn.Tables["Error"].Rows[0]["Message"].ToString();
}
else
{
lblError.InnerHtml = "";
ScriptManager.RegisterStartupScript(this, this.GetType(), System.Guid.NewGuid().ToString(), "alert('Individual Information has been saved!');", true);
//HIDE PANELS:
divDetail.Style.Add("display", "none");
divResults.Style.Add("display", "none");
}
}//end of View button even Handler
protected void btnAddReceipt_Click(object sender, EventArgs e)
{
//JUST A HARD CODED SAMPLE TO SHOW HOW TO ADD RECEIPTS:
//Always $100 on 01/01/2010
//Get Return DataSet with Empty Receipt Table
getTransactionInfoWebService.getTransactionInfoWebService transWS = new getTransactionInfoWebService.getTransactionInfoWebService();
DataSet dsReturn = transWS.getReceiptDetail(System.Guid.NewGuid().ToString(), hiddenIndividualGUID.Value.ToString(), "INDIVIDUAL", strUserName, strPassword);
//Create Row for new Receipt:
DataRow drwNewReceipt = dsReturn.Tables["std_Receipt"].NewRow();
drwNewReceipt["rcp_GUID"] = System.Guid.NewGuid();
drwNewReceipt["rcp_Date"] = "01/01/2010";
drwNewReceipt["rcp_Amount"] = "100.00";
drwNewReceipt["rcp_Purpose"] = "";
drwNewReceipt["rcp_Check_No"] = "";
drwNewReceipt["rcp_Note"] = "";
drwNewReceipt["rcp_State"] = "";
drwNewReceipt["rcp_FecId"] = "";
drwNewReceipt["rcp_TransID"] = "";
drwNewReceipt["rcp_SourceID"] = "";
drwNewReceipt["rcp_ReceivedYear"] = "";
drwNewReceipt["rcp_Deposited"] = "01/01/2010";
drwNewReceipt["rcp_Statement"] = "01/01/2010";
drwNewReceipt["rcp_Reconciled"] = false;
drwNewReceipt["rcp_ForceItemize"] = false;
drwNewReceipt["rcp_ForceUnItemize"] = false;
drwNewReceipt["rcp_Locked"] = false;
drwNewReceipt["rcp_acc_GUID"] = getDefaultAccount("Edison Electric Institute");
drwNewReceipt["rcp_per_GUID"] = getDefaultValue("std_ElectionPeriod","per");
drwNewReceipt["rcp_bat_GUID"] = getDefaultValue("std_Batch", "bat");
drwNewReceipt["rcp_sou_GUID"] = getDefaultValue("std_Source", "sou");
drwNewReceipt["rcp_rcs_GUID"] = getReceiptSubType("Contribution", "Check");
drwNewReceipt["rcp_Deleted"] = false;
drwNewReceipt["rcp_CreatedOn"] = System.DateTime.Now;
drwNewReceipt["rcp_CreatedBy"] = System.Guid.NewGuid();
//Set Receipt Status:
drwNewReceipt["rst_GUID"] = getDefaultValue("std_ReceiptStatus","rst");
//ADD new Receipt to Database:
dsReturn.Tables["std_Receipt"].Rows.Add(drwNewReceipt);
setTransactionInfoWebService.setTransactionInfoWebService setTransWS = new APIDEMO.setTransactionInfoWebService.setTransactionInfoWebService();
DataSet dsSetReturn = setTransWS.setReceiptDetail(dsReturn, strUserName, strPassword);
//Check For Errors returned by web service:
if (dsSetReturn.Tables["Error"].Rows.Count > 0)
{
string strError = dsSetReturn.Tables["Error"].Rows[0]["Message"].ToString();
lblError.InnerHtml = strError;
}
else
{
ScriptManager.RegisterStartupScript(this, this.GetType(), System.Guid.NewGuid().ToString(), "alert('Receipt for $100 has been added!');", true);
}
}//end of btnSave_Click method
private Guid getDefaultValue(string strTableName, string strTablePrefix)
{
Guid returnGUID = System.Guid.NewGuid();
getIndivdiualInfoWS.getIndividualInformationWebService getIndindividual = new getIndivdiualInfoWS.getIndividualInformationWebService();
DataSet dsResult = getIndindividual.getList(strTableName, strUserName, strPassword);
foreach (DataRow drw in dsResult.Tables[strTableName].Rows)
{
if ((bool)drw[strTablePrefix+"_Default"])
returnGUID = (Guid)drw[strTablePrefix+"_GUID"];
}
return returnGUID;
}//end of getDefaultElectionPeriod method
private Guid getReceiptSubType(string strReceiptType, string strReceiptSubType)
{
Guid returnGUID = System.Guid.NewGuid();
strReceiptType = strReceiptType.ToUpper().Trim();
strReceiptSubType = strReceiptSubType.ToUpper().Trim();
getIndivdiualInfoWS.getIndividualInformationWebService getIndindividual = new getIndivdiualInfoWS.getIndividualInformationWebService();
DataSet dsResult = getIndindividual.getList("std_ReceiptType", strUserName, strPassword);
//GET GUID FROM the Receipt Type passed in as parameter:
Guid rctGUID = System.Guid.NewGuid();
foreach (DataRow drw in dsResult.Tables["std_ReceiptType"].Rows)
{
if (drw["rct_Text"].ToString().ToUpper().Trim() == strReceiptType)
rctGUID = (Guid)drw["rct_GUID"]; //Save Receipt Type GUID
}
//GET GUID FROM the ReceiptSubtype passed and the Receipt Type above:
dsResult = getIndindividual.getList("std_ReceiptSubType", strUserName, strPassword);
foreach (DataRow drw in dsResult.Tables["std_ReceiptSubType"].Rows)
{
if (drw["rcs_Text"].ToString().ToUpper().Trim() == strReceiptSubType)
{
if (((Guid)drw["rcs_rct_GUID"]) == rctGUID)
returnGUID = (Guid)drw["rcs_GUID"];
}
}
return returnGUID;
}//end of getReceiptSubType
private Guid getDefaultAccount(string strFilingCommitteeName)
{
//Every Filing Committee has multiple accounts but only one default Account
Guid returnGUID = System.Guid.NewGuid();
strFilingCommitteeName = strFilingCommitteeName.ToUpper().Trim();
getIndivdiualInfoWS.getIndividualInformationWebService getIndindividual = new getIndivdiualInfoWS.getIndividualInformationWebService();
DataSet dsResult = getIndindividual.getList("std_PoliticalCommittee", strUserName, strPassword);
//GET GUID FROM the Filing Committee passed in as parameter:
Guid pcmGUID = System.Guid.NewGuid();
foreach (DataRow drw in dsResult.Tables["std_PoliticalCommittee"].Rows)
{
if (drw["pcm_Name"].ToString().ToUpper().Trim() == strFilingCommitteeName)
pcmGUID = (Guid)drw["pcm_GUID"]; //Save Committee ID
}
//GET Default Account for Filing Committee above:
dsResult = getIndindividual.getList("std_Account", strUserName, strPassword);
foreach (DataRow drw in dsResult.Tables["std_Account"].Rows)
{
if ((Guid)drw["acc_pcm_GUID"] == pcmGUID)
{
if (((bool)drw["acc_Default"])) //Found Default Account for give Committee:
returnGUID = (Guid)drw["acc_GUID"];
}
}
return returnGUID;
}//getDefaultAccount method
private Guid getDefaultAddressType()
{
Guid returnGUID = System.Guid.NewGuid();
getIndivdiualInfoWS.getIndividualInformationWebService getIndindividual = new getIndivdiualInfoWS.getIndividualInformationWebService();
DataSet dsResult = getIndindividual.getList("std_IndividualAddressType", strUserName, strPassword);
foreach(DataRow drw in dsResult.Tables["std_IndividualAddressType"].Rows)
{
if ((bool)drw["iat_Default"])
returnGUID = (Guid)drw["iat_GUID"];
}
return returnGUID;
}//end of getDefaultAddressType
}
}
|
This page was: Helpful |
Not Helpful