Guest User

Untitled

a guest
Jun 22nd, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.07 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using MySql.Data.MySqlClient;
  6. using System.Configuration;
  7. using APICode.Models;
  8. using System.Data;
  9.  
  10. namespace APICode.DAL
  11. {
  12. public class ReservationDAL
  13. {
  14. static string connString = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString;
  15.  
  16. #region Public Method
  17.  
  18. public ResultModel Login(string emailid, string password)
  19. {
  20. var resultModel = new ResultModel();
  21. MySqlConnection conn = new MySqlConnection(connString);
  22. try
  23. {
  24.  
  25. string sql = "select * from users where email='" + emailid + "' and password='" + password + "'";
  26. conn.Open();
  27.  
  28. MySqlDataAdapter mydata = new MySqlDataAdapter(sql, conn);
  29. DataSet ds = new DataSet();
  30. mydata.Fill(ds);
  31.  
  32. if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  33. {
  34. var loginResultModel = new LoginResultModel();
  35. loginResultModel.Id = Convert.ToInt32(ds.Tables[0].Rows[0]["id"]);
  36. loginResultModel.Name = Convert.ToString(ds.Tables[0].Rows[0]["name"]);
  37. loginResultModel.Email = Convert.ToString(ds.Tables[0].Rows[0]["email"]);
  38. loginResultModel.Role = Convert.ToInt32(ds.Tables[0].Rows[0]["role"]);
  39.  
  40. resultModel.IsSucessful = true;
  41. resultModel.Result = loginResultModel;
  42. }
  43. else
  44. {
  45. resultModel.ErrorMessage = "Username / password is incorrect";
  46. }
  47. }
  48. catch (Exception ex)
  49. {
  50. resultModel.IsSucessful = false;
  51. resultModel.ErrorMessage = ex.ToString();
  52. }
  53. finally
  54. {
  55. conn.Close();
  56. }
  57. return resultModel;
  58. }
  59.  
  60. public ResultModel GetRoomTypes(int userId)
  61. {
  62. var resultModel = new ResultModel();
  63. MySqlConnection conn = new MySqlConnection(connString);
  64. try
  65. {
  66. string sql = "select * from room_types";
  67. conn.Open();
  68.  
  69. MySqlDataAdapter mydata = new MySqlDataAdapter(sql, conn);
  70. DataSet ds = new DataSet();
  71. mydata.Fill(ds);
  72.  
  73. if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  74. {
  75. var keyvalpairs = new List<KeyValuePair<int, string>>();
  76.  
  77. for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
  78. {
  79. keyvalpairs.Add(new KeyValuePair<int, string>(
  80. Convert.ToInt32(ds.Tables[0].Rows[i]["id"]),
  81. Convert.ToString(ds.Tables[0].Rows[i]["name"])
  82. ));
  83. }
  84.  
  85. resultModel.IsSucessful = true;
  86. resultModel.Result = keyvalpairs;
  87. }
  88. else
  89. {
  90. resultModel.ErrorMessage = "room type not found";
  91. }
  92. }
  93. catch (Exception ex)
  94. {
  95. resultModel.IsSucessful = false;
  96. resultModel.ErrorMessage = ex.ToString();
  97. }
  98. finally
  99. {
  100. conn.Close();
  101. }
  102. return resultModel;
  103. }
  104.  
  105. public ResultModel GetRooms(int typeId)
  106. {
  107. var resultModel = new ResultModel();
  108. MySqlConnection conn = new MySqlConnection(connString);
  109. try
  110. {
  111. string sql = "select * from rooms where type_id=" + typeId;
  112. conn.Open();
  113.  
  114. MySqlDataAdapter mydata = new MySqlDataAdapter(sql, conn);
  115. DataSet ds = new DataSet();
  116. mydata.Fill(ds);
  117.  
  118. if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  119. {
  120. var roomdata = new List<RoomModel<TimeSpanModel>>();
  121.  
  122. for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
  123. {
  124. var room = new RoomModel<TimeSpanModel>();
  125. room.Id = Convert.ToInt32(ds.Tables[0].Rows[i]["id"]);
  126. room.Type_Id = Convert.ToInt32(ds.Tables[0].Rows[i]["type_id"]);
  127. room.Name = Convert.ToString(ds.Tables[0].Rows[i]["name"]);
  128. room.StartTime = Convert.ToString(ds.Tables[0].Rows[i]["start_time"]);
  129. room.EndTime = Convert.ToString(ds.Tables[0].Rows[i]["end_time"]);
  130. room.BookingInterval = Convert.ToInt32(ds.Tables[0].Rows[i]["booking_interval"]);
  131. room.BookingCapacity = Convert.ToInt32(ds.Tables[0].Rows[i]["booking_capacity"]);
  132. roomdata.Add(room);
  133. }
  134.  
  135. resultModel.IsSucessful = true;
  136. resultModel.Result = roomdata;
  137. }
  138. else
  139. {
  140. resultModel.ErrorMessage = "room type not found";
  141. }
  142. }
  143. catch (Exception ex)
  144. {
  145. resultModel.IsSucessful = false;
  146. resultModel.ErrorMessage = ex.ToString();
  147. }
  148. finally
  149. {
  150. conn.Close();
  151. }
  152. return resultModel;
  153. }
  154.  
  155. public ResultModel UserBookings(int userId)
  156. {
  157. var resultModel = new ResultModel();
  158. MySqlConnection conn = new MySqlConnection(connString);
  159. try
  160. {
  161. string sql = null;
  162. if (userId == 0)
  163. {
  164. sql = "SELECT bookings.*, rooms.name, rooms.room_type_id, users.name AS `user_name`, users.email FROM `bookings` JOIN rooms ON bookings.room_id = rooms.id JOIN users ON bookings.user_id = users.id";
  165. }
  166. else
  167. {
  168. sql = "SELECT bookings.*, rooms.name, rooms.room_type_id, users.name AS `user_name`, users.email FROM `bookings` JOIN rooms ON bookings.room_id = rooms.id JOIN users ON bookings.user_id = users.id WHERE `user_id` = " + userId;
  169. }
  170.  
  171.  
  172. conn.Open();
  173.  
  174. MySqlDataAdapter mydata = new MySqlDataAdapter(sql, conn);
  175. DataSet ds = new DataSet();
  176. mydata.Fill(ds);
  177.  
  178. if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  179. {
  180. var roomdata = ds.Tables[0];
  181. resultModel.IsSucessful = true;
  182. resultModel.Result = roomdata;
  183. }
  184. else
  185. {
  186. resultModel.ErrorMessage = "room type not found";
  187. }
  188. }
  189. catch (Exception ex)
  190. {
  191. resultModel.IsSucessful = false;
  192. resultModel.ErrorMessage = ex.ToString();
  193. }
  194. finally
  195. {
  196. conn.Close();
  197. }
  198. return resultModel;
  199. }
  200.  
  201.  
  202.  
  203. public ResultModel checkAvailability(int roomType, String date, String startTime, String endTime)
  204. {
  205.  
  206. return checkAvailabilityFunction(roomType, date, startTime, endTime);
  207.  
  208. }
  209.  
  210. private ResultModel checkAvailabilityFunction(int roomType, String date, String startTime, String endTime){
  211. var resultModel = new ResultModel();
  212. MySqlConnection conn = new MySqlConnection(connString);
  213.  
  214. try
  215. {
  216. string sql = "SELECT * FROM bookings WHERE (room_type = " + roomType + " AND bookings.status = 1 AND date = '" + date + "') AND ((bookings.start_time <= '" + startTime + "' AND bookings.end_time >= '" + endTime + "') OR (bookings.start_time >= '" + startTime + "' AND bookings.start_time <= '" + endTime + "') OR (bookings.end_time >= '" + startTime + "' AND bookings.end_time <= '" + endTime + "')) GROUP BY room_id";
  217. conn.Open();
  218.  
  219. MySqlDataAdapter mydata = new MySqlDataAdapter(sql, conn);
  220. DataSet ds = new DataSet();
  221. mydata.Fill(ds);
  222.  
  223. //resultModel.IsSucessful = true;
  224. //resultModel.Result = ds.Tables[0];
  225. //return resultModel;
  226.  
  227. if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  228. {
  229. string sql3 = "SELECT bookings.room_id FROM bookings WHERE (room_type = '" + roomType + "' AND bookings.status = 1 AND date = '" + date + "') AND ((bookings.start_time <= '" + startTime + "' AND bookings.end_time >= '" + endTime + "') OR (bookings.start_time >= '" + startTime + "' AND bookings.start_time <= '" + endTime + "') OR (bookings.end_time >= '" + startTime + "' AND bookings.end_time <= '" + endTime + "')) GROUP BY room_id";
  230. string sql2 = "SELECT rooms.* FROM rooms WHERE rooms.room_type_id = '" + roomType + "' AND rooms.id <> ANY (" + sql3 + ")";
  231.  
  232. MySqlDataAdapter mydata2 = new MySqlDataAdapter(sql2, conn);
  233. DataSet ds2 = new DataSet();
  234. mydata2.Fill(ds2);
  235.  
  236. if (ds2.Tables.Count > 0 && ds2.Tables[0].Rows.Count > 0)
  237. {
  238. string sql4 = "SELECT * FROM rooms WHERE room_type_id = " + roomType;
  239. MySqlDataAdapter rooms = new MySqlDataAdapter(sql4, conn);
  240. DataSet ds3 = new DataSet();
  241. rooms.Fill(ds3);
  242.  
  243. if (ds.Tables[0].Rows.Count == ds3.Tables[0].Rows.Count)
  244. {
  245. var roomdata = ds.Tables[0];
  246. resultModel.IsSucessful = false;
  247. resultModel.Result = roomdata;
  248. }
  249. else
  250. {
  251. var roomdata = ds2.Tables[0];
  252. resultModel.IsSucessful = true;
  253. resultModel.Result = roomdata;
  254. }
  255.  
  256. }
  257. }
  258. else
  259. {
  260. string sql2 = "SELECT * FROM rooms WHERE room_type_id = " + roomType;
  261. MySqlDataAdapter mydata2 = new MySqlDataAdapter(sql2, conn);
  262. DataSet ds2 = new DataSet();
  263. mydata2.Fill(ds2);
  264.  
  265. if (ds2.Tables.Count > 0 && ds2.Tables[0].Rows.Count > 0)
  266. {
  267. var roomdata = ds2.Tables[0];
  268. resultModel.IsSucessful = true;
  269. resultModel.Result = roomdata;
  270. }
  271.  
  272. }
  273.  
  274. }
  275. catch (Exception ex)
  276. {
  277. resultModel.IsSucessful = false;
  278. resultModel.ErrorMessage = ex.ToString();
  279. }
  280. finally
  281. {
  282. conn.Close();
  283. }
  284.  
  285. return resultModel;
  286. }
  287.  
  288. public ResultModel BookRoom(int userId, int roomType, int roomId, String date, String startTime, String endTime)
  289. {
  290. var resultModel = new ResultModel();
  291. MySqlConnection conn = new MySqlConnection(connString);
  292. try
  293. {
  294. resultModel = this.checkAvailabilityFunction(roomType, date, startTime, endTime);
  295.  
  296. if(resultModel.IsSucessful==true){
  297. MySqlCommand cmd = new MySqlCommand("INSERT INTO bookings (user_id, room_type, room_id, date, start_time, end_time, status) VALUES " +
  298. "('" + userId + "','" + roomType + "','" + roomId + "','" + date + "','" + startTime + "','" + endTime + "',1)", conn);
  299.  
  300.  
  301. conn.Open();
  302. cmd.ExecuteNonQuery();
  303. resultModel.IsSucessful = true;
  304. } else{
  305. resultModel.IsSucessful = false;
  306. }
  307.  
  308.  
  309. }
  310. catch (Exception ex)
  311. {
  312. resultModel.IsSucessful = false;
  313. resultModel.ErrorMessage = ex.ToString();
  314. }
  315. finally
  316. {
  317. conn.Close();
  318. }
  319. return resultModel;
  320. }
  321.  
  322. public ResultModel DeleteBooking(int bookingId)
  323. {
  324. var resultModel = new ResultModel();
  325. MySqlConnection conn = new MySqlConnection(connString);
  326. try
  327. {
  328. MySqlCommand cmd = new MySqlCommand("update bookings set status=0 where id=" + bookingId, conn);
  329. conn.Open();
  330. cmd.ExecuteNonQuery();
  331. resultModel.IsSucessful = true;
  332.  
  333. }
  334. catch (Exception ex)
  335. {
  336. resultModel.IsSucessful = false;
  337. resultModel.ErrorMessage = ex.ToString();
  338. }
  339. finally
  340. {
  341. conn.Close();
  342. }
  343. return resultModel;
  344. }
  345.  
  346. #endregion
  347. }
  348.  
  349. }
Add Comment
Please, Sign In to add comment