- First create new project as web api project
- First Edit WebConfig File To Add AppSettings
WebConfig:
<configuration>
<appSettings>
<add key="DataSource" value="TEST" />
<add key="InitialCatalog" value="TestProject" />
<add key="UserID" value="sa" />
<add key="Password" value="sql2008" />
<add key="ServerName" value="localhost" />
</appSettings>
</configuration>
- Create New Folder "MyHelperLib" and Add New Class File "APICommonUtil.cs"
APICommonUtil.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;
namespace D2D.WebAPI.MyHelperLib
{
public class APICommonUtil
{
internal static string GetDBConnString()
{
SqlConnectionStringBuilder oSQLConnStr = new SqlConnectionStringBuilder();
oSQLConnStr.DataSource = WebConfigurationManager.AppSettings["DataSource"].ToString();
oSQLConnStr.InitialCatalog = WebConfigurationManager.AppSettings["InitialCatalog"].ToString();
oSQLConnStr.UserID = WebConfigurationManager.AppSettings["UserID"].ToString();
oSQLConnStr.Password = WebConfigurationManager.AppSettings["Password"].ToString();
return oSQLConnStr.ToString();
}
}
}
- Add new Controller as TestController
TestController.cs :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Web.Http;
using System.Web.Routing;
using System.Web.Script.Serialization;
[RoutePrefix("api/test")]
public class UserController : ApiController
{
#region "Connection String"
string MyConnectionString = D2D.WebAPI.MyHelperLib.APICommonUtil.GetDBConnString();
#endregion
#region ''
// GET api/<controller>
public IEnumerable<string> GetValues()
{
return new string[] { "value1", "value2" };
}
// GET api/<controller>/5
public string GetValue(int id)
{
return "value";
}
// POST api/<controller>
public void PostValue([FromBody]string data)
{
}
// PUT api/<controller>/5
public void PutValue(int id, [FromBody]string data)
{
}
// DELETE api/<controller>/5
public void DeleteValue(int id)
{ }
#endregion
#region "Get"
/**Get Method To Get Data**/
[Route("UserInfo//{UserId}")]
public DataSet GetRoleMenu(string UserId)
{
using (SqlConnection connection = new SqlConnection(MyConnectionString))
{
connection.Open();
SqlCommand cmd = new SqlCommand("select * from UserInfo Where UserId='"+UserId+"'", connection);
SqlDataAdapter adpt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adpt.Fill(ds);
ds.Tables[0].TableName = "Users";
if (ds.Tables[0].Rows.Count == 0)
{
throw new Exception("Unable to find any User.");
}
else
{
return ds;
}
}
}
#endregion
#region "POST api/<controller>"
/*Post Method To Insert-Update User*/
//With QueryString
[HttpPost]
[Route("UserInfo}")]
public int SetUserInfo()
{
NameValueCollection User= HttpUtility.ParseQueryString(Request.RequestUri.Query);
SqlConnection connection = new SqlConnection(MyConnectionString);
SqlCommand cmd = new SqlCommand("spAddUpdateUser", connection);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter adpt = new SqlDataAdapter(cmd);
//string server = WebConfigurationManager.AppSettings["ServerName"].ToString();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@UserId", Item[0] == "" ? DBNull.Value.ToString() : User[0]);
cmd.Parameters.AddWithValue("@UserName", Item[1] == "" ? DBNull.Value.ToString() : User[1]);
cmd.Connection = connection;
int UserId= 0;
try
{
connection.Open();
UserId= (int)cmd.ExecuteScalar();
}
catch (Exception)
{ }
finally
{
connection.Close();
}
return itemId;
}
#endregion
}
- Create Wrapper.js File To Post And Get Data From Client Side i.e From HTML Page
Wrapper.jsvar APIWrapper = function (url) {
var Priviliged = {
myWebReqUrl: null,
WebApiUriConstant: function () {
try {
var apiUri = "http://localhost/WebAPI/api";
} catch (e) {
//alert(e.stack);
}
return apiUri;
},
CallWebAPI: function (webApiUrl, isAsync, myCallBackOnSuccess, myCallBackOnFailure) {
var sData = "";
try {
$.ajax({
type: "GET",
url: webApiUrl,
data: sData,
async: isAsync,
contentType: "application/json;",
dataType: "json",
success: function (data) {
if (myCallBackOnSuccess != null); myCallBackOnSuccess(data);
},
error: function (xhr, status, error) {
var errorMessage = '';
try {
var xhr = JSON.parse(xhr.responseText);
errorMessage = xhr.ExceptionMessage;
} catch (e) {
errorMessage = "";
}
if (myCallBackOnFailure != null); myCallBackOnFailure(xhr.responseText);
}
});
}
catch (e) {
//alert(e.stack);
//TODO - Display error message in popup screen.
}
},
PostWebAPI: function (webApiUrl, isAsync, myCallBackOnSuccess, myCallBackOnFailure) {
var sData = "";
try {
$.ajax({
type: "POST",
url: webApiUrl,
data: sData,
async: isAsync,
contentType: "application/json;",
dataType: "json",
sucess: function (data) {
if (myCallBackOnSuccess != null);
myCallBackOnSuccess(data);
},
error: function (xhr, satus, error) {
var errorMessage = "";
try {
var xhr = JSON.parse(xhr.responseText);
errorMessage = xhr.ExceptionMessage;
}
catch (e) {
errorMessage = "";
}
if (myCallBackOnFailure != null);
myCallBackOnFailure(xhr.responseText);
}
});
}
catch (e) {
//alert(e.stack);
//TODO - Display error message in popup screen.
}
}
};//End Priviliged
var External = {
/***** Start User Public function for the js *****/
InsertUser: function (UserDetail, myCallBackOnSuccess, myCallBackOnError) {
Priviliged.myWebReqUrl = Priviliged.WebApiUriConstant() + "/UserInfo/?UserId=" + UserDetail.UserId+
"&UserName=" + UserDetail.UserName;
Priviliged.PostD2DWebAPI(Priviliged.myWebReqUrl, false, callBackOnSuccess, callBackOnError)
},
GetUser: function (UserId, callBackOnSuccess, callBackOnError) {
Priviliged.myWebReqUrl = Priviliged.WebApiUriConstant() + "/UserInfo/" + UserId;
Priviliged.CallD2DWebAPI(Priviliged.myWebReqUrl, true, callBackOnSuccess, callBackOnError)
},
}
}
- Now Call This Wrapper.Js Function To HTML Page Where Data Is Sent
Test.html:
//Insert User
var BindUser= ({ UserId: $('#txtUser').val(), UserName: $('#txtUserName').val()});
APIWrapper.InsertUser(BindUser, function (objUser) { }, function () {
});
//GET User
APIWrapper.GetUser(hdnUserId,function (objUser) {
try {
if (objUser!= null && objUser!= undefined && objUser.Users.length > 0) {
//Bind DropDownList With Get Data
$.each(objUser.Users, function (index, item) {
$("#cmbUser").get(0).options[$("#cmbUser").get(0).options.length] = new Option(item.UserName, item.UserId);
});
}
}
catch (e) {
}
}, function () {
});
/********************** TO Get And Post Data From Server Side ********************/
- First create ApiCall.cs
ApiCall.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
namespace Helper
{
public class ApiCall
{
private string JSON = "";
//Get
public string GetFromWebService(string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
JSON = "";
try
{
request.Timeout = 60000;
WebResponse response = request.GetResponse();
using (Stream responseStream = response.GetResponseStream())
{
//System.Threading.Thread.Sleep(500);
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
string value = reader.ReadToEnd();
JSON = value;
return value;
}
}
catch (WebException ex)
{
WebResponse errorResponse = ex.Response;
using (Stream responseStream = errorResponse.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
String errorText = reader.ReadToEnd();
// log errorText
}
throw;
}
}
// POST a JSON string
public string PostToWebService(string url, string jsonContent)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.Timeout = 6000;
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
Byte[] byteArray = encoding.GetBytes(jsonContent);
request.ContentLength = byteArray.Length;
request.ContentType = @"application/json";
using (Stream dataStream = request.GetRequestStream())
{
dataStream.Write(byteArray, 0, byteArray.Length);
}
long length = 0;
try
{
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
length = response.ContentLength;
var value = new StreamReader(response.GetResponseStream()).ReadToEnd();
JSON = value;
return JSON;
//JSONObject = response;
}
}
catch (WebException ex)
{
// Log exception and throw as for GET example above
WebResponse errorResponse = ex.Response;
using (Stream responseStream = errorResponse.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
String errorText = reader.ReadToEnd();
// log errorText
}
throw;
}
}
}
}
- Now Call ApiCall.cs Method From ASPX Code Behinde
Test.aspx //To Post Data
protected void btnSave_Click(object sender, EventArgs e)
{
string URL_ADDRESS = String.Format("http://localhost/WebAPI/api/UserInfo/{0}/{1}", txtUserId.Text, txtUserName.Text);
ApiCall objAPICall = new ApiCall();
objAPICall.PostToWebService(URL_ADDRESS, "");
Page.ClientScript.RegisterStartupScript(this.GetType(), "Clear", "clear()", true);
}
- First Edit WebConfig File To Add AppSettings
WebConfig:
<configuration>
<appSettings>
<add key="DataSource" value="TEST" />
<add key="InitialCatalog" value="TestProject" />
<add key="UserID" value="sa" />
<add key="Password" value="sql2008" />
<add key="ServerName" value="localhost" />
</appSettings>
</configuration>
- Create New Folder "MyHelperLib" and Add New Class File "APICommonUtil.cs"
APICommonUtil.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;
namespace D2D.WebAPI.MyHelperLib
{
public class APICommonUtil
{
internal static string GetDBConnString()
{
SqlConnectionStringBuilder oSQLConnStr = new SqlConnectionStringBuilder();
oSQLConnStr.DataSource = WebConfigurationManager.AppSettings["DataSource"].ToString();
oSQLConnStr.InitialCatalog = WebConfigurationManager.AppSettings["InitialCatalog"].ToString();
oSQLConnStr.UserID = WebConfigurationManager.AppSettings["UserID"].ToString();
oSQLConnStr.Password = WebConfigurationManager.AppSettings["Password"].ToString();
return oSQLConnStr.ToString();
}
}
}
- Add new Controller as TestController
TestController.cs :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Web.Http;
using System.Web.Routing;
using System.Web.Script.Serialization;
[RoutePrefix("api/test")]
public class UserController : ApiController
{
#region "Connection String"
string MyConnectionString = D2D.WebAPI.MyHelperLib.APICommonUtil.GetDBConnString();
#endregion
#region ''
// GET api/<controller>
public IEnumerable<string> GetValues()
{
return new string[] { "value1", "value2" };
}
// GET api/<controller>/5
public string GetValue(int id)
{
return "value";
}
// POST api/<controller>
public void PostValue([FromBody]string data)
{
}
// PUT api/<controller>/5
public void PutValue(int id, [FromBody]string data)
{
}
// DELETE api/<controller>/5
public void DeleteValue(int id)
{ }
#endregion
#region "Get"
/**Get Method To Get Data**/
[Route("UserInfo//{UserId}")]
public DataSet GetRoleMenu(string UserId)
{
using (SqlConnection connection = new SqlConnection(MyConnectionString))
{
connection.Open();
SqlCommand cmd = new SqlCommand("select * from UserInfo Where UserId='"+UserId+"'", connection);
SqlDataAdapter adpt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adpt.Fill(ds);
ds.Tables[0].TableName = "Users";
if (ds.Tables[0].Rows.Count == 0)
{
throw new Exception("Unable to find any User.");
}
else
{
return ds;
}
}
}
#endregion
#region "POST api/<controller>"
/*Post Method To Insert-Update User*/
//With QueryString
[HttpPost]
[Route("UserInfo}")]
public int SetUserInfo()
{
NameValueCollection User= HttpUtility.ParseQueryString(Request.RequestUri.Query);
SqlConnection connection = new SqlConnection(MyConnectionString);
SqlCommand cmd = new SqlCommand("spAddUpdateUser", connection);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter adpt = new SqlDataAdapter(cmd);
//string server = WebConfigurationManager.AppSettings["ServerName"].ToString();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@UserId", Item[0] == "" ? DBNull.Value.ToString() : User[0]);
cmd.Parameters.AddWithValue("@UserName", Item[1] == "" ? DBNull.Value.ToString() : User[1]);
cmd.Connection = connection;
int UserId= 0;
try
{
connection.Open();
UserId= (int)cmd.ExecuteScalar();
}
catch (Exception)
{ }
finally
{
connection.Close();
}
return itemId;
}
#endregion
}
- Create Wrapper.js File To Post And Get Data From Client Side i.e From HTML Page
Wrapper.jsvar APIWrapper = function (url) {
var Priviliged = {
myWebReqUrl: null,
WebApiUriConstant: function () {
try {
var apiUri = "http://localhost/WebAPI/api";
} catch (e) {
//alert(e.stack);
}
return apiUri;
},
CallWebAPI: function (webApiUrl, isAsync, myCallBackOnSuccess, myCallBackOnFailure) {
var sData = "";
try {
$.ajax({
type: "GET",
url: webApiUrl,
data: sData,
async: isAsync,
contentType: "application/json;",
dataType: "json",
success: function (data) {
if (myCallBackOnSuccess != null); myCallBackOnSuccess(data);
},
error: function (xhr, status, error) {
var errorMessage = '';
try {
var xhr = JSON.parse(xhr.responseText);
errorMessage = xhr.ExceptionMessage;
} catch (e) {
errorMessage = "";
}
if (myCallBackOnFailure != null); myCallBackOnFailure(xhr.responseText);
}
});
}
catch (e) {
//alert(e.stack);
//TODO - Display error message in popup screen.
}
},
PostWebAPI: function (webApiUrl, isAsync, myCallBackOnSuccess, myCallBackOnFailure) {
var sData = "";
try {
$.ajax({
type: "POST",
url: webApiUrl,
data: sData,
async: isAsync,
contentType: "application/json;",
dataType: "json",
sucess: function (data) {
if (myCallBackOnSuccess != null);
myCallBackOnSuccess(data);
},
error: function (xhr, satus, error) {
var errorMessage = "";
try {
var xhr = JSON.parse(xhr.responseText);
errorMessage = xhr.ExceptionMessage;
}
catch (e) {
errorMessage = "";
}
if (myCallBackOnFailure != null);
myCallBackOnFailure(xhr.responseText);
}
});
}
catch (e) {
//alert(e.stack);
//TODO - Display error message in popup screen.
}
}
};//End Priviliged
var External = {
/***** Start User Public function for the js *****/
InsertUser: function (UserDetail, myCallBackOnSuccess, myCallBackOnError) {
Priviliged.myWebReqUrl = Priviliged.WebApiUriConstant() + "/UserInfo/?UserId=" + UserDetail.UserId+
"&UserName=" + UserDetail.UserName;
Priviliged.PostD2DWebAPI(Priviliged.myWebReqUrl, false, callBackOnSuccess, callBackOnError)
},
GetUser: function (UserId, callBackOnSuccess, callBackOnError) {
Priviliged.myWebReqUrl = Priviliged.WebApiUriConstant() + "/UserInfo/" + UserId;
Priviliged.CallD2DWebAPI(Priviliged.myWebReqUrl, true, callBackOnSuccess, callBackOnError)
},
}
}
- Now Call This Wrapper.Js Function To HTML Page Where Data Is Sent
Test.html:
//Insert User
var BindUser= ({ UserId: $('#txtUser').val(), UserName: $('#txtUserName').val()});
APIWrapper.InsertUser(BindUser, function (objUser) { }, function () {
});
//GET User
APIWrapper.GetUser(hdnUserId,function (objUser) {
try {
if (objUser!= null && objUser!= undefined && objUser.Users.length > 0) {
//Bind DropDownList With Get Data
$.each(objUser.Users, function (index, item) {
$("#cmbUser").get(0).options[$("#cmbUser").get(0).options.length] = new Option(item.UserName, item.UserId);
});
}
}
catch (e) {
}
}, function () {
});
/********************** TO Get And Post Data From Server Side ********************/
- First create ApiCall.cs
ApiCall.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
namespace Helper
{
public class ApiCall
{
private string JSON = "";
//Get
public string GetFromWebService(string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
JSON = "";
try
{
request.Timeout = 60000;
WebResponse response = request.GetResponse();
using (Stream responseStream = response.GetResponseStream())
{
//System.Threading.Thread.Sleep(500);
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
string value = reader.ReadToEnd();
JSON = value;
return value;
}
}
catch (WebException ex)
{
WebResponse errorResponse = ex.Response;
using (Stream responseStream = errorResponse.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
String errorText = reader.ReadToEnd();
// log errorText
}
throw;
}
}
// POST a JSON string
public string PostToWebService(string url, string jsonContent)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.Timeout = 6000;
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
Byte[] byteArray = encoding.GetBytes(jsonContent);
request.ContentLength = byteArray.Length;
request.ContentType = @"application/json";
using (Stream dataStream = request.GetRequestStream())
{
dataStream.Write(byteArray, 0, byteArray.Length);
}
long length = 0;
try
{
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
length = response.ContentLength;
var value = new StreamReader(response.GetResponseStream()).ReadToEnd();
JSON = value;
return JSON;
//JSONObject = response;
}
}
catch (WebException ex)
{
// Log exception and throw as for GET example above
WebResponse errorResponse = ex.Response;
using (Stream responseStream = errorResponse.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
String errorText = reader.ReadToEnd();
// log errorText
}
throw;
}
}
}
}
- Now Call ApiCall.cs Method From ASPX Code Behinde
Test.aspx //To Post Data
protected void btnSave_Click(object sender, EventArgs e)
{
string URL_ADDRESS = String.Format("http://localhost/WebAPI/api/UserInfo/{0}/{1}", txtUserId.Text, txtUserName.Text);
ApiCall objAPICall = new ApiCall();
objAPICall.PostToWebService(URL_ADDRESS, "");
Page.ClientScript.RegisterStartupScript(this.GetType(), "Clear", "clear()", true);
}



