public bookRoomDetailModel detail(bookRoomModel value) { bookRoomDetailModel result = new bookRoomDetailModel(); try { using (var context = new StandardCanEntities()) { if (String.IsNullOrEmpty(value.user_id)) { throw new Exception("Unauthorized Access"); } var userId = JwtHelper.GetUserIdFromToken(value.user_id); var userGroup = JwtHelper.GetUserGroupFromToken(value.user_id); if (String.IsNullOrEmpty(userId)) { throw new Exception("Unauthorized Access"); } if (userGroup == "1" || userGroup == "2" || userGroup == "4") { result.button.reject = false; result.button.approve = false; result.button.cancel = true; result.button.save_draft = true; result.button.save_send = true; } else if (userGroup == "3") { result.button.reject = true; result.button.approve = true; result.button.cancel = true; result.button.save_revise = true; result.button.save_draft = true; result.button.save_send = false; } string sql = "select convert(nvarchar(5), mrm_id) code "; sql += " , mrm_code [text] "; sql += " from MAS_ROOM "; sql += " where MRM_STATUS=1"; sql += " order by mrm_name "; result.room_list = context.Database.SqlQuery <dropdown>(sql).ToList(); if (string.IsNullOrEmpty(value.id)) { sql = "select convert(nvarchar(3), MHW_ID) id "; sql += " , MHW_NAME text "; sql += ", convert(bit, 0) opt "; sql += " from MAS_HARDWARE "; sql += " where MHW_STATUS = 1"; result.device_list = context.Database.SqlQuery <checkbox_list>(sql).ToList(); result.button.reject = false; result.button.cancel = false; result.button.save_revise = false; } else { sql = "select convert(nvarchar(3), a.MHW_ID) id "; sql += " , MHW_NAME text "; sql += ", convert(bit, case when b.MHW_ID is null then 0 else 1 end ) opt "; sql += " from MAS_HARDWARE a left join BOOK_ROOM_DEVICE b on a.MHW_ID=b.MHW_ID and b.BR_ID= " + value.id; sql += " where MHW_STATUS = 1"; result.device_list = context.Database.SqlQuery <checkbox_list>(sql).ToList(); result.emp_list = context.sp_bookroom_emp(value.id).ToList(); var h = context.BOOK_ROOM.Where(p => p.BR_ID.ToString().Equals(value.id)).FirstOrDefault(); if (h != null) { var mas_room = context.MAS_ROOM.SingleOrDefault(a => a.MRM_ID == h.MRM_ID); result.id = h.BR_ID.ToString(); result.room_name = mas_room != null ? mas_room.MRM_NAME : ""; result.topic = h.br_topic ?? ""; result.date = h.br_date == null ? "" : Convert.ToDateTime(h.br_date).ToString("dd/MM/yyyy"); result.start_time = h.br_start_time ?? ""; result.stop_time = h.br_stop_time ?? ""; result.person_total = h.br_person_total == null ? "" : h.br_person_total.ToString(); result.room_id = h.MRM_ID == null ? "" : h.MRM_ID.ToString(); result.remark = h.br_remark ?? ""; result.br_status = h.br_status.ToString(); if (h.br_request_by != null) { result.br_request = h.br_request_by.ToString(); var emp_request = context.EMP_PROFILE.SingleOrDefault(a => a.emp_code == h.br_request_by.ToString()); if (emp_request != null) { result.br_request_name = emp_request.emp_fname + " " + emp_request.emp_lname; } } if (h.br_status == 1) { result.read_only = true; result.button.reject = false; result.button.approve = false; result.button.save_revise = false; result.button.cancel = false; result.button.save_draft = false; result.button.save_send = false; if (userGroup == "3") { result.button.reject = true; result.button.approve = true; result.button.save_draft = true; result.button.cancel = false; result.button.save_revise = false; result.button.save_send = false; result.read_only = false; } if (h.br_create_by.ToString() == userId) { result.read_only = false; result.button.save_draft = true; if (userGroup != "3") { result.button.cancel = true; result.button.save_send = true; } } } else if (h.br_status == 2) { result.button.cancel = false; result.button.save_draft = false; result.button.save_send = false; if (userGroup == "3") { result.button.save_revise = true; } else { result.button.save_revise = false; } if (h.br_create_by.ToString() == userId) { result.button.cancel = true; } result.read_only = true; } else if (h.br_status == 0 || h.br_status == 3 || h.br_status == 4 || h.br_status == 5) { result.button.reject = false; result.button.approve = false; result.button.cancel = false; result.button.save_draft = false; result.button.save_send = false; if (userGroup == "3") { result.button.save_revise = true; } else { result.button.save_revise = false; } result.read_only = true; if (h.br_status == 3) { result.button.gen_qrCode = true; } } } } } } catch (Exception ex) { throw new Exception(ex.Message); } return(result); }