Advertisement
Guest User

Untitled

a guest
Jun 6th, 2017
572
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.03 KB | None | 0 0
  1. MODEL:
  2.  
  3. using System;
  4. using System.Collections.Generic;
  5. using System.ComponentModel.DataAnnotations;
  6. using System.Linq;
  7. using System.Web;
  8.  
  9. namespace DelonixRegiaServicesUpdated.Models
  10. {
  11. public class BookingRoomDetails
  12. {
  13. public int Id { get; set; }
  14. [Required]
  15. public string guestFirstName { get; set; }
  16. public string guestLastName { get; set; }
  17. public int guestContactNumber { get; set; }
  18. public string guestEmailAddress { get; set; }
  19. public string guestCreditCardNumber { get; set; }
  20. public int roomNumber { get; set; }
  21. public int numberOfRooms { get; set; }
  22. public int totalNumberOfGuests { get; set; }
  23. public string roomType { get; set; }
  24. public string checkInDate { get; set; }
  25. public string checkOutDate { get; set; }
  26. public string checkInTime { get; set; }
  27. public string checkOutTime { get; set; }
  28.  
  29. }
  30. }
  31.  
  32. GLOBAL:
  33.  
  34. using System;
  35. using System.Collections.Generic;
  36. using System.Linq;
  37. using System.Web;
  38. using System.Web.Http;
  39. using System.Web.Mvc;
  40. using System.Web.Optimization;
  41. using System.Web.Routing;
  42. using DelonixRegiaServicesUpdated.Utilities;
  43.  
  44. namespace DelonixRegiaServicesUpdated
  45. {
  46. public class WebApiApplication : System.Web.HttpApplication
  47. {
  48. protected void Application_Start()
  49. {
  50. AreaRegistration.RegisterAllAreas();
  51. GlobalConfiguration.Configure(WebApiConfig.Register);
  52. FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
  53. RouteConfig.RegisterRoutes(RouteTable.Routes);
  54. BundleConfig.RegisterBundles(BundleTable.Bundles);
  55. GlobalConfiguration.Configuration.MessageHandlers.Add(new CorsHandler());
  56. }
  57. }
  58. }
  59.  
  60. CONTROLLER:
  61.  
  62. using System;
  63. using System.Collections.Generic;
  64. using System.Data;
  65. using System.Data.Entity;
  66. using System.Data.Entity.Infrastructure;
  67. using System.Linq;
  68. using System.Net;
  69. using System.Net.Http;
  70. using System.Threading.Tasks;
  71. using System.Web.Http;
  72. using System.Web.Http.Description;
  73. using DelonixRegiaServicesUpdated.Models;
  74.  
  75. namespace DelonixRegiaServicesUpdated.Controllers
  76. {
  77. public class BookingRoomDetailsController : ApiController
  78. {
  79. private DelonixRegiaServicesUpdatedContext db = new DelonixRegiaServicesUpdatedContext();
  80.  
  81. // GET: api/BookingRoomDetails
  82. public IQueryable<BookingRoomDetails> GetBookingRoomDetails()
  83. {
  84. return db.BookingRoomDetails;
  85. }
  86.  
  87. // GET: api/BookingRoomDetails/5
  88. [ResponseType(typeof(BookingRoomDetails))]
  89. public async Task<IHttpActionResult> GetBookingRoomDetails(int Id)
  90. {
  91. BookingRoomDetails bookingRoomDetails = await db.BookingRoomDetails.FindAsync(Id);
  92. if (bookingRoomDetails == null)
  93. {
  94. return NotFound();
  95. }
  96.  
  97. return Ok(bookingRoomDetails);
  98. }
  99.  
  100. // PUT: api/BookingRoomDetails/5
  101. [ResponseType(typeof(void))]
  102. public async Task<IHttpActionResult> PutBookingRoomDetails(int Id, BookingRoomDetails bookingRoomDetails)
  103. {
  104. if (!ModelState.IsValid)
  105. {
  106. return BadRequest(ModelState);
  107. }
  108.  
  109. if (Id != bookingRoomDetails.Id)
  110. {
  111. return BadRequest();
  112. }
  113.  
  114. db.Entry(bookingRoomDetails).State = EntityState.Modified;
  115.  
  116. try
  117. {
  118. await db.SaveChangesAsync();
  119. }
  120. catch (DbUpdateConcurrencyException)
  121. {
  122. if (!BookingRoomDetailsExists(Id))
  123. {
  124. return NotFound();
  125. }
  126. else
  127. {
  128. throw;
  129. }
  130. }
  131.  
  132. return StatusCode(HttpStatusCode.NoContent);
  133. }
  134.  
  135. // POST: api/BookingRoomDetails
  136. [ResponseType(typeof(BookingRoomDetails))]
  137. public async Task<IHttpActionResult> PostBookingRoomDetails(BookingRoomDetails bookingRoomDetails)
  138. {
  139. if (!ModelState.IsValid)
  140. {
  141. return BadRequest(ModelState);
  142. }
  143.  
  144. db.BookingRoomDetails.Add(bookingRoomDetails);
  145. await db.SaveChangesAsync();
  146.  
  147. return CreatedAtRoute("DefaultApi", new { Id = bookingRoomDetails.Id }, bookingRoomDetails);
  148. }
  149.  
  150. // DELETE: api/BookingRoomDetails/5
  151. [ResponseType(typeof(BookingRoomDetails))]
  152. public async Task<IHttpActionResult> DeleteBookingRoomDetails(int Id)
  153. {
  154. BookingRoomDetails bookingRoomDetails = await db.BookingRoomDetails.FindAsync(Id);
  155. if (bookingRoomDetails == null)
  156. {
  157. return NotFound();
  158. }
  159.  
  160. db.BookingRoomDetails.Remove(bookingRoomDetails);
  161. await db.SaveChangesAsync();
  162.  
  163. return Ok(bookingRoomDetails);
  164. }
  165.  
  166. protected override void Dispose(bool disposing)
  167. {
  168. if (disposing)
  169. {
  170. db.Dispose();
  171. }
  172. base.Dispose(disposing);
  173. }
  174.  
  175. private bool BookingRoomDetailsExists(int Id)
  176. {
  177. return db.BookingRoomDetails.Count(e => e.Id == Id) > 0;
  178. }
  179. }
  180. }
  181.  
  182. CONFIGURATION:
  183. namespace DelonixRegiaServicesUpdated.Migrations
  184. {
  185. using System;
  186. using System.Data.Entity;
  187. using System.Data.Entity.Migrations;
  188. using System.Linq;
  189. using DelonixRegiaServicesUpdated.Models;
  190. using System.IO;
  191.  
  192.  
  193. internal sealed class Configuration : DbMigrationsConfiguration<DelonixRegiaServicesUpdated.Models.DelonixRegiaServicesUpdatedContext>
  194. {
  195. public Configuration()
  196. {
  197. AutomaticMigrationsEnabled = false;
  198. }
  199.  
  200. protected override void Seed(DelonixRegiaServicesUpdated.Models.DelonixRegiaServicesUpdatedContext context)
  201. {
  202. context.BookingRoomDetails.AddOrUpdate(x => x.Id,
  203. new BookingRoomDetails() { Id = 1, guestFirstName = "Jane", guestLastName = "Tan", guestContactNumber = 96712752, guestEmailAddress = "janetan@hotmail.com", guestCreditCardNumber = "5413 2968 2018 2300", roomNumber = 100, numberOfRooms = 2, totalNumberOfGuests = 4, roomType = "Suite", checkInDate = "4 July 2017", checkOutDate = "7 July 2017", checkInTime = "1200hrs", checkOutTime = "1500hrs" },
  204. new BookingRoomDetails() { Id = 2, guestFirstName = "Priya", guestLastName = "Kumar", guestContactNumber = 83710172, guestEmailAddress = "priyakumar@hotmail.com", guestCreditCardNumber = "5798 7379 6282 6718", roomNumber = 101, numberOfRooms = 1, totalNumberOfGuests = 4, roomType = "Duplex", checkInDate = "10 July 2017", checkOutDate = "14 July 2017", checkInTime = "1300hrs", checkOutTime = "1300 hrs" },
  205. new BookingRoomDetails() { Id = 3, guestFirstName = "Mohammad", guestLastName = "Hafiz", guestContactNumber = 82512962, guestEmailAddress = "mohammadhafiz@hotmail.com", guestCreditCardNumber = "5411 3748 2691 0324", roomNumber = 102, numberOfRooms = 1, totalNumberOfGuests = 2, roomType = "Double", checkInDate = "10 July 2017", checkOutDate = "14 July 2017", checkInTime = "1300hrs", checkOutTime = "1300 hrs" },
  206. new BookingRoomDetails() { Id = 4, guestFirstName = "Adam", guestLastName = "Saleh", guestContactNumber = 96780128, guestEmailAddress = "adamsaleh@hotmail.com", guestCreditCardNumber = "5142 9637 2138 3011", roomNumber = 103, numberOfRooms = 1, totalNumberOfGuests = 2, roomType = "Twin", checkInDate = "21 July 2017", checkOutDate = "24 July 2017", checkInTime = "1800hrs", checkOutTime = "1500 hrs" },
  207. new BookingRoomDetails() { Id = 5, guestFirstName = "John", guestLastName = "Lim", guestContactNumber = 80122731, guestEmailAddress = "johnlim@hotmail.com", guestCreditCardNumber = "5382 2962 3140 0481", roomNumber = 104, numberOfRooms = 1, totalNumberOfGuests = 2, roomType = "Suite", checkInDate = " 2 August 2017", checkOutDate = "8 August 2017", checkInTime = "2100hrs", checkOutTime = "1200 hrs" });
  208.  
  209. }
  210. }
  211. }
  212.  
  213. CORSHANDLER
  214.  
  215. using System;
  216. using System.Collections.Generic;
  217. using System.Linq;
  218. using System.Web;
  219. using System.Net.Http;
  220. using System.Threading;
  221. using System.Threading.Tasks;
  222. using System.Net;
  223.  
  224. namespace DelonixRegiaServicesUpdated.Utilities
  225. {
  226. public class CorsHandler : DelegatingHandler
  227. {
  228. const string Origin = "Origin";
  229. const string AccessControlRequestMethod = "Access-Control-Request-Method";
  230. const string AccessControlRequestHeaders = "Access-Control-Request-Headers";
  231. const string AccessControlAllowOrigin = "Access-Control-Allow-Origin";
  232. const string AccessControlAllowMethods = "Access-Control-Allow-Methods";
  233. const string AccessControlAllowHeaders = "Access-Control-Allow-Headers";
  234.  
  235. protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
  236. {
  237. bool isCorsRequest = request.Headers.Contains(Origin);
  238. bool isPreflightRequest = request.Method == HttpMethod.Options;
  239. if (isCorsRequest)
  240. {
  241. if (isPreflightRequest)
  242. {
  243. HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
  244. response.Headers.Add(AccessControlAllowOrigin, request.Headers.GetValues(Origin).First());
  245.  
  246. string accessControlRequestMethod = request.Headers.GetValues(AccessControlRequestMethod).FirstOrDefault();
  247. if (accessControlRequestMethod != null)
  248. {
  249. response.Headers.Add(AccessControlAllowMethods, accessControlRequestMethod);
  250. }
  251.  
  252. string requestedHeaders = string.Join(", ", request.Headers.GetValues(AccessControlRequestHeaders));
  253. if (!string.IsNullOrEmpty(requestedHeaders))
  254. {
  255. response.Headers.Add(AccessControlAllowHeaders, requestedHeaders);
  256. }
  257.  
  258. TaskCompletionSource<HttpResponseMessage> tcs = new TaskCompletionSource<HttpResponseMessage>();
  259. tcs.SetResult(response);
  260. return tcs.Task;
  261. }
  262. else
  263. {
  264. return base.SendAsync(request, cancellationToken).ContinueWith<HttpResponseMessage>(t =>
  265. {
  266. HttpResponseMessage resp = t.Result;
  267. resp.Headers.Add(AccessControlAllowOrigin, request.Headers.GetValues(Origin).First());
  268. return resp;
  269. });
  270. }
  271. }
  272. else
  273. {
  274. return base.SendAsync(request, cancellationToken);
  275. }
  276. }
  277. }
  278.  
  279. }
  280.  
  281. BUNDLE CONFIG:
  282.  
  283. using System.Web;
  284. using System.Web.Optimization;
  285.  
  286. namespace DelonixRegiaServicesUpdated
  287. {
  288. public class BundleConfig
  289. {
  290. // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
  291. public static void RegisterBundles(BundleCollection bundles)
  292. {
  293. bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
  294. "~/Scripts/jquery-{version}.js"));
  295.  
  296. // Use the development version of Modernizr to develop with and learn from. Then, when you're
  297. // ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
  298. bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
  299. "~/Scripts/modernizr-*"));
  300.  
  301. bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
  302. "~/Scripts/bootstrap.js",
  303. "~/Scripts/respond.js"));
  304.  
  305. bundles.Add(new StyleBundle("~/Content/css").Include(
  306. "~/Content/bootstrap.css",
  307. "~/Content/site.css"));
  308. }
  309. }
  310. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement