using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Script.Serialization; // needed for
JSON serializers
using System.IO; // needed for Stream and Stream Reader
using System.Net; // needed for the Web Request
namespace WebAPIClient
{
public partial class CalculatorAPIExample : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
// Private
helper method used to call the Web API and return the response
private double ExecuteCallToWebAPI(string operation, double value1, double value2)
{
String url = "http://cis-iis2.temple.edu/users/pascucci/CIS3342/CoreWebAPI/api/Calculator/" + operation;
url = url + "/" + value1 + "/" + value2;
// Create an HTTP Web Request and get the HTTP Web Response
from the server.
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
// Read the
data from the Web Response, which requires working with streams.
Stream theDataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(theDataStream);
String data = reader.ReadToEnd();
reader.Close();
response.Close();
// Deserialize a JSON string into a
double.
JavaScriptSerializer js = new JavaScriptSerializer();
double result = js.Deserialize<double>(data);
return result;
}
protected void btnAdd_Click(object sender, EventArgs e)
{
double value1, value2, result;
if (double.TryParse(txtValue1.Text, out value1) &&
double.TryParse(txtValue2.Text, out value2))
{
result
= ExecuteCallToWebAPI("Add", value1, value2);
lblDisplay.Text
= "The result is " + result;
}
else
{
lblDisplay.Text
= "You must enter numerical values for both X and Y!";
}
}
protected void btnSubtract_Click(object sender, EventArgs e)
{
double value1, value2, result;
if (double.TryParse(txtValue1.Text, out value1) &&
double.TryParse(txtValue2.Text, out value2))
{
result
= ExecuteCallToWebAPI("Subtract", value1, value2);
lblDisplay.Text
= "The result is " + result;
}
else
{
lblDisplay.Text
= "You must enter numerical values for both X and Y!";
}
}
protected void btnMultiply_Click(object sender, EventArgs e)
{
double value1, value2, result;
if (double.TryParse(txtValue1.Text, out value1) &&
double.TryParse(txtValue2.Text, out value2))
{
result
= ExecuteCallToWebAPI("Multiply", value1, value2);
lblDisplay.Text
= "The result is " + result;
}
else
{
lblDisplay.Text
= "You must enter numerical values for both X and Y!";
}
}
protected void btnDivide_Click(object sender, EventArgs e)
{
double value1, value2, result;
if (double.TryParse(txtValue1.Text, out value1) &&
double.TryParse(txtValue2.Text, out value2))
{
result
= ExecuteCallToWebAPI("Divide", value1, value2);
lblDisplay.Text
= "The result is " + result;
}
else
{
lblDisplay.Text
= "You must enter numerical values for both X and Y!";
}
}
}
}