Wednesday, October 26, 2016

Developing Book My Seat Application In AngularJS And ASP.NET - WebAPI Methods - Part Two

Here, I’ve merely thought to write my thoughts about hands-on Angular. This is my first article which tells you how to get your hands dirty with AngularJS & ASP.NET WEBAPI and SQL Server BookMySeat Application Tutorials.

This is the technology stack for this BookMySeat library application, as shown below:

In the first article, I shared the technology and other brief information about components used. In this article, will look into WebApi creation and route to configure that.
This is an initial look at the WebAPI controller defined in Solution Explorer as depicted below:

If you open this file, you will have around 6 methods which have generic names to perform the operations and easy to understand.These WebAPI methods are given below:




The complete code for all APIs is given below.

  1. public class BookMySeatAPIController : ApiController 
  2.     { 
  3. //
  4. // GET: /BookMySeatAPI/
  5.         SqlConnection objConnection = new SqlConnection(); 
  6. public void SqlConnection() 
  7.         { 
  8.             objConnection.Dispose(); 
  9.             objConnection.ConnectionString = "server=.;database=BookMySeat;uid=sa;pwd=Tpg@1234;"; 
  10.             objConnection.Open(); 
  11.         } 
  12.         [HttpGet] 
  13. public int[] GetSeatCount([FromUri] int slot) 
  14.         { 
  15. try
  16.             { 
  17.                 SqlConnection(); 
  18.                 SqlCommand SqlCommand = new SqlCommand("sp_GetMySeat", objConnection); 
  19.                 SqlCommand.CommandType = CommandType.StoredProcedure; 
  20.                 SqlCommand.Parameters.AddWithValue("@timeslotid", slot); 
  21.                 SqlDataAdapter da = new SqlDataAdapter(SqlCommand); 
  22.                 da.SelectCommand = SqlCommand; 
  23.                 DataSet ds = new DataSet(); 
  24.                 da.Fill(ds); 
  25. int[] result = new int[ds.Tables[0].Rows.Count]; 
  26. for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
  27.                 { 
  28.                     result[i] = Convert.ToInt16(ds.Tables[0].Rows[i][0].ToString()); 
  29.                 } 
  30. return result; 
  31.             } 
  32. finally
  33.             { 
  34.                 objConnection.Close(); 
  35.                 objConnection.Dispose(); 
  36.             } 
  37.         } 
  38.         [HttpPost] 
  39.         [ActionName("SeatBook")] 
  40. public int[] PostBookSeat(BookSeat objBookSeat) 
  41.         { 
  42. try
  43.             { 
  44.                 SqlConnection(); 
  45.                 SqlCommand SqlCommand = new SqlCommand("sp_BookMySeat", objConnection); 
  46.                 SqlCommand.CommandType = CommandType.StoredProcedure; 
  47.                 SqlCommand.Parameters.AddWithValue("@UserName", objBookSeat.UserName); 
  48.                 SqlCommand.Parameters.AddWithValue("@TimeSlot", objBookSeat.TimeSlot); 
  49.                 SqlCommand.Parameters.AddWithValue("@SeatNo", objBookSeat.SeatNo); 
  50.                 SqlDataAdapter da = new SqlDataAdapter(SqlCommand); 
  51.                 da.SelectCommand = SqlCommand; 
  52.                 DataSet ds = new DataSet(); 
  53.                 da.Fill(ds); 
  54. int[] result = new int[ds.Tables[0].Rows.Count]; 
  55. for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
  56.                 { 
  57.                     result[i] = Convert.ToInt16(ds.Tables[0].Rows[i][0].ToString()); 
  58.                 } 
  59. return result; 
  60.             } 
  61. finally
  62.             { 
  63.                 objConnection.Close(); 
  64.                 objConnection.Dispose(); 
  65.             } 
  66.         } 
  67.         [HttpPost] 
  68.         [ActionName("ValidateUser")] 
  69. public string ValidateUser(ValidateUser objValidateUser) 
  70.         { 
  71. try
  72.             { 
  73.                 SqlConnection(); 
  74.                 SqlCommand SqlCommand = new SqlCommand("ValidateUser", objConnection); 
  75.                 SqlCommand.CommandType = CommandType.StoredProcedure; 
  76.                 SqlCommand.Parameters.AddWithValue("@UserName", objValidateUser.UserName); 
  77.                 SqlDataAdapter da = new SqlDataAdapter(SqlCommand); 
  78.                 da.SelectCommand = SqlCommand; 
  79.                 DataSet ds = new DataSet(); 
  80.                 da.Fill(ds); 
  81. return ds.Tables[0].Rows[0][0].ToString(); 
  82.             } 
  83. finally
  84.             { 
  85.                 objConnection.Close(); 
  86.                 objConnection.Dispose(); 
  87.             } 
  88.         } 
  89.         [HttpPost] 
  90.         [ActionName("SeatDetail")] 
  91. public string GetSeatDetail(GetSeatDetail objGetSeatDetail) 
  92.         { 
  93. try
  94.             { 
  95.                 SqlConnection(); 
  96.                 SqlCommand SqlCommand = new SqlCommand("sp_GetSeatDetail", objConnection); 
  97.                 SqlCommand.CommandType = CommandType.StoredProcedure; 
  98. // SqlCommand.Parameters.AddWithValue("@UserName", objBookSeat.UserName);
  99.                 SqlCommand.Parameters.AddWithValue("@TimeSlot", objGetSeatDetail.TimeSlot); 
  100.                 SqlCommand.Parameters.AddWithValue("@SeatNo", objGetSeatDetail.SeatNo); 
  101.                 SqlDataAdapter da = new SqlDataAdapter(SqlCommand); 
  102.                 da.SelectCommand = SqlCommand; 
  103.                 DataSet ds = new DataSet(); 
  104.                 da.Fill(ds); 
  105. return ds.Tables[0].Rows[0][0].ToString(); 
  106.             } 
  107. finally
  108.             { 
  109.                 objConnection.Close(); 
  110.                 objConnection.Dispose(); 
  111.             } 
  112.         } 
  113.         [HttpPost] 
  114.         [ActionName("DeleteSeat")] 
  115. public string DeleteSeat(DeleteSeat objDeleteSeat) 
  116.         { 
  117. try
  118.             { 
  119.                 SqlConnection(); 
  120.                 SqlCommand SqlCommand = new SqlCommand("sp_DeleteSeat", objConnection); 
  121.                 SqlCommand.CommandType = CommandType.StoredProcedure; 
  122. // SqlCommand.Parameters.AddWithValue("@UserName", objBookSeat.UserName);              
  123.                 SqlCommand.Parameters.AddWithValue("@SeatNo", objDeleteSeat.SeatNo); 
  124.                 SqlCommand.Parameters.AddWithValue("@SlotNo", objDeleteSeat.TimeSlot); 
  125.                 SqlDataAdapter da = new SqlDataAdapter(SqlCommand); 
  126.                 da.SelectCommand = SqlCommand; 
  127.                 DataSet ds = new DataSet(); 
  128.                 da.Fill(ds); 
  129. return ds.Tables[0].Rows[0][0].ToString(); 
  130.             } 
  131. finally
  132.             { 
  133.                 objConnection.Close(); 
  134.                 objConnection.Dispose(); 
  135.             } 
  136.         } 
  137.         [HttpGet] 
  138. public List<ShowBookSeat> ShowBookSeat() 
  139.         { 
  140. try
  141.             { 
  142.                 SqlConnection(); 
  143.                   List<ShowBookSeat> list = new List<ShowBookSeat>();  
  144.                 SqlCommand SqlCommand = new SqlCommand("sp_ShowBookDetail", objConnection); 
  145.                 SqlCommand.CommandType = CommandType.StoredProcedure; 
  146. // SqlCommand.Parameters.AddWithValue("@UserName", objBookSeat.UserName);              
  147. //SqlCommand.Parameters.AddWithValue("@UserName", objDeleteSeat.SeatNo);
  148. //SqlCommand.Parameters.AddWithValue("@SlotNo", objDeleteSeat.TimeSlot);
  149.                 SqlDataAdapter da = new SqlDataAdapter(SqlCommand); 
  150.                 da.SelectCommand = SqlCommand; 
  151.                 DataSet ds = new DataSet(); 
  152.                 da.Fill(ds); 
  153. for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
  154.                 { 
  155.                     ShowBookSeat ShowBookSeat = new ShowBookSeat(); 
  156.                     ShowBookSeat.UserName = (ds.Tables[0].Rows[i]["username"]).ToString(); 
  157.                     ShowBookSeat.Date =Convert.ToDateTime(ds.Tables[0].Rows[i]["currentday"]); 
  158.                     ShowBookSeat.TimeSlot = Convert.ToInt32(ds.Tables[0].Rows[i]["timeslot"]); 
  159.                     ShowBookSeat.SeatNo = Convert.ToInt32(ds.Tables[0].Rows[i]["seatno"]); 
  160.                     list.Add(ShowBookSeat); 
  161.                 } 
  162. return list;  
  163.             } 
  164. finally
  165.             { 
  166.                 objConnection.Close(); 
  167.                 objConnection.Dispose(); 
  168.             } 
  169.         } 
  170.     } 

Code segment for WebApiConfig under App_start folder is given below.

  1. public static class WebApiConfig 
  2.     { 
  3. public static void Register(HttpConfiguration config) 
  4.         { 
  5.             config.Routes.MapHttpRoute( 
  6.                 name: "DefaultApi", 
  7.                 routeTemplate: "api/{controller}/{id}", 
  8.                 defaults: new { id = RouteParameter.Optional } 
  9.             ); 
  10.             config.Routes.MapHttpRoute( 
  11.                name: "seatbook", 
  12.                routeTemplate: "api/seat/{controller}/{action}/{id}", 
  13.                defaults: new { id = RouteParameter.Optional } 
  14.            ); 
  15.             config.Routes.MapHttpRoute( 
  16.                name: "seatDetail", 
  17.                routeTemplate: "api/seatdetail/{controller}/{action}/{id}", 
  18.                defaults: new { id = RouteParameter.Optional } 
  19.            ); 
  20.             config.Routes.MapHttpRoute( 
  21.                name: "ValidateUser", 
  22.                routeTemplate: "api/ValidateUser/{controller}/{action}/{id}", 
  23.                defaults: new { id = RouteParameter.Optional } 
  24.            ); 
  25.             config.Routes.MapHttpRoute( 
  26.                name: "DeleteSeat", 
  27.                routeTemplate: "api/DeleteSeat/{controller}/{action}/{id}", 
  28.                defaults: new { id = RouteParameter.Optional } 
  29.            ); 
  30.         } 
  31.     } 

The application which we are about to build consists almost all of the above defined keywords and the initial look of the application is as shown below.

Hope it’ll help you some day. Enjoy Coding.

0 comments :

Post a Comment