1. Trang chủ
  2. » Luận Văn - Báo Cáo

Website quản lý rạp chiếu phim

91 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 91
Dung lượng 313,09 KB

Cấu trúc

  • 1.1. Cơ quan thực tập (15)
    • 1.1.1. Thông tin chung (15)
    • 1.1.2. Giới thiệu chung (15)
    • 1.1.1. Tầm nhìn và sứ mệnh (16)
    • 1.1.2. Giá trị cốt lõi (16)
    • 1.1.3. Lĩnh vực hoạt động (17)
    • 1.1.4. Một số sản phẩm tiêu biểu (17)
    • 1.1.5. Lịch làm việc tại đơn vị thực tập (18)
  • 1.2. Tổng quan về vị trí việc làm (0)
    • 1.2.1. Khái niệm về Developer (18)
    • 1.2.2. Nhiệm vụ của một Developer (18)
    • 1.2.3. Kiến thức và kỹ năng cần thiết (19)
  • CHƯƠNG 2. LÝ THUYẾT 6 2.1. LINQ (14)
    • 2.1.1. Giới thiệu về LINQ (21)
    • 2.1.2. Cách hoạt động (21)
    • 2.1.3. Các ưu điểm của LINQ (21)
    • 2.2. ASP.NET Core (22)
      • 2.2.1. Giới thiệu (22)
      • 2.2.3. Ứng dụng của ASP.NET Core (23)
    • 2.3. Resful APIs (23)
      • 2.3.1. Giới thiệu (23)
      • 2.3.2. Các đặc điểm chính của Resful APIs (23)
      • 2.3.3. Ứng dụng của Resful APIs (24)
    • 2.4. Swagger (24)
      • 2.4.1. Giới thiệu (24)
      • 2.4.2. Các đặc điểm chính của Swagger (25)
      • 2.4.3. Ứng dụng của Swagger (25)
  • CHƯƠNG 3. TRIỂN KHAI DỰ ÁN 11 3.1. Thiết kế use case (14)
    • 3.2. Thiết kế database (27)
      • 3.2.1. Sơ đồ ERD (27)
      • 3.2.2. Mô tả chi tiết sơ đồ (28)
    • 3.3. Thiết kế kiến trúc (36)
      • 3.3.1. Kiến trúc hệ thống (36)
      • 3.3.2. Mô tả chi tiết (36)
  • CHƯƠNG 4. KẾT QUẢ 22 4.1. Bill (14)
    • 4.1.1. Api/Bill: Get (41)
    • 4.1.2. Api/Bill: Post (42)
    • 4.1.3. Api/Bill/{id}: Get (42)
    • 4.1.4. Api/Bill/{id}: Delete (43)
    • 4.1.5. Api/Bill/{billId}/tickets: Get (43)
    • 4.2. Customer (44)
      • 4.2.1. Api/Customer: Get (44)
      • 4.2.2. Api/Customer: Post (45)
      • 4.2.3. Api/Customer/{id}: Get (45)
      • 4.2.4. Api/Customer/{id}: Put (46)
      • 4.2.5. Api/Customer/{id}: Delete (47)
      • 4.2.6. Api/Customer/{search}/customers: Get (47)
      • 4.2.7. Api/Customer/{id}/bills: Get (48)
    • 4.3. Film (49)
      • 4.3.1. Api/Film: Get (49)
      • 4.3.2. Api/Film: Post (50)
      • 4.3.3. Api/Film/{id}: Get (51)
      • 4.3.4. Api/Film/{id}: Put (52)
      • 4.3.5. Api/Film/{id}: Delete (52)
      • 4.3.6. Api/Film/{name}/films: Get (52)
      • 4.3.7. Api/Film/{id}/showTimes: Get (54)
    • 4.4. Login (55)
      • 4.4.1. Api/Login/Login: Post (55)
      • 4.4.2. Api/Login/RefreshToken: Post (56)
    • 4.5. Role (57)
      • 4.5.1. Api/Role: Get (57)
      • 4.5.2. Api/Role: Post (58)
      • 4.5.3. Api/Role/{id}: Get (59)
      • 4.5.4. Api/Role/{id}: Put (59)
      • 4.5.5. Api/Role/{id}: Delete (59)
      • 4.5.6. Api/Role/{id}/users: Get (59)
    • 4.6. Room (61)
      • 4.6.1. Api/Room: Get (61)
      • 4.6.2. Api/Room: Post (62)
      • 4.6.3. Api/Room/{id}: Get (62)
      • 4.6.4. Api/Room/{id}: Put (63)
      • 4.6.5. Api/Room/{id}: Delete (63)
      • 4.6.6. Api/Room/{id}/seats: Get (64)
      • 4.6.7. Api/Room/{id}/showTimes: Get (64)
    • 4.7. Seat (65)
      • 4.7.2. Api/Seat/{id}: Put (66)
      • 4.7.3. Api/Seat/{id}: Delete (66)
    • 4.8. SeatStatus (66)
      • 4.8.1. Api/SeatStatus: Get (66)
      • 4.8.2. Api/SeatStatus: Post (67)
      • 4.8.3. Api/SeatStatus/{id}: Get (68)
      • 4.8.4. Api/SeatStatus/{id}: Put (68)
      • 4.8.5. Api/SeatStatus/{id}: Delete (68)
    • 4.9. ShowTime (69)
      • 4.9.1. Api/ShowTime: Get (69)
      • 4.9.2. Api/ShowTime: Post (70)
      • 4.9.3. Api/ShowTime/{id}: Get (71)
      • 4.9.4. Api/ShowTime/{id}: Put (72)
      • 4.9.5. Api/ShowTime/{id}: Delete (72)
      • 4.9.6. Api/ShowTime/{showTimeId}/seats: Get (73)
      • 4.9.7. Api/ShowTime/ByDay: Get (74)
    • 4.10. Ticket (75)
      • 4.10.1. Api/Ticket: Get (75)
      • 4.10.2. Api/Ticket/{id}: Get (76)
    • 4.11. TypeOfFilm (77)
      • 4.11.1. Api/TypeOfFilm: Get (77)
      • 4.11.2. Api/TypeOfFilm: Post (78)
      • 4.11.3. Api/TypeOfFilm/{id}: Get (78)
      • 4.11.4. Api/TypeOfFilm/{id}: Put (78)
      • 4.11.5. Api/TypeOfFilm/{id}: Delete (79)
      • 4.11.6. Api/TypeOfFilm/{typeId}/films: Get (79)
    • 4.12. User (80)
      • 4.12.1. Api/User: Get (80)
      • 4.12.2. Api/User: Post (82)
      • 4.12.3. Api/User/{id}: Get (83)
      • 4.12.4. Api/User/{id}: Put (84)
      • 4.12.5. Api/User/{id}: Delete (85)
      • 4.12.6. Api/User/{search}/users: Get (86)
    • 4.13. UserRole (87)
      • 4.13.1. Api/UserRole: Get (87)
      • 4.13.2. Api/UserRole: Post (88)
      • 4.13.3. Api/UserRole/DeleteUserRole: Delete (88)

Nội dung

Cơ quan thực tập

Thông tin chung

Doanh nghiệp TMA được thành lập năm 1997

Hình 1 1: Logo công ty TMA Solutions Bình Định

Tên cơ quan: Công ty TNHH Giải pháp Phần mềm Tường Minh Bình Định (TMA Solutions Bình Định)

Logo công ty: Hình 1.1 Logo công ty TMA Solutions Địa chỉ: 12 Đại lộ Khoa học, Khu vực 2, P Ghềnh Ráng, TP Quy Nhơn, Bình Định Email: contact@tma-binhdinh.vn

Website: https://www.tma-binhdinh.vn/

Giới thiệu chung

Được thành lập năm 1997, TMA là tập đoàn công nghệ hàng đầu Việt Nam với 4000 kỹ sư và khách hàng là những tập đoàn công nghệ cao hàng đầu thế giới từ 30 quốc gia TMA hiện có 7 chi nhánh tại Việt Nam (6 tại TP.HCM và 1 ở TP Quy Nhơn) cùng 6 chi nhánh ở nước ngoài (Mỹ, Úc, Canada, Đức, Nhật, Singapore).

Tháng 6 năm 2018, TMA đã mở chi nhánh tại Bình Định Sau 4 năm, TMA Bình Định đã phát triển nhanh chóng với hơn 400 kỹ sư, trong đó có nhiều kỹ sư đang làm việc tại TP.HCM đã trở về làm việc tại quê hương.

Người thành lập: CEO là bà Bùi Ngọc Anh, Chủ tịch công ty là ông Nguyễn Hữu Lệ.

Trụ sở chính: 111, Đường Nguyễn Đình Chính, Quận Phú Nhuận, Thành phố Hồ Chí Minh, Việt Nam.

Số lượng trụ sở: 12 trụ sở

Số lượng nhân viên: 4000 (Tính đến tháng 4/2023)

Loại hình doanh nghiệp: Công ty tư nhân.

Tầm nhìn và sứ mệnh

Tầm nhìn: Trở thành một trong những công ty phần mềm hàng đầu thế giới, cung cấp các giải pháp và dịch vụ chất lượng cao cho khách hàng.

Sứ mệnh: Trở thành trung tâm phần mềm và công nghệ hàng đầu tại miền Trung, góp phần quan trọng đưa Thung lũng sáng tạo Quy Nhơn trở thành một điểm đến của công nghệ4.0 tại Việt Nam.

Giá trị cốt lõi

Hình 1 2: Giá trị cốt lõi của TMA Solutions

Lĩnh vực hoạt động

Cung cấp các giải pháp, dịch vụ viễn thông Đào tạo sinh viên và nhân viên về kiến thức phần mềm và kỹ năng mềm

Một số sản phẩm tiêu biểu

Công ty TMA là công ty công nghệ 4.0 hàng đầu tại Việt Nam, TMA Innovation cung cấp đa dạng các sản phẩm đáp ứng nhu cầu của khách hàng trong nhiều lĩnh vực.

Hộp Camera Thông Minh – Smart Camera Box

Giải Pháp Phân Tích Cuộc Gọi – Call Analytics

Quản Lý Phòng Lab/Server Từ Xa – Lab Monitor Ứng Dụng Hỗ Trợ Tuyển Dụng Sử Dụng AI – Candidate Machining

Giải Pháp Phân Tích Người Học Online Ứng Dụng Đánh Giá Học Sinh

Phần Mềm Xác Định Người Tiếp Xúc

Hộp Khử Khuẩn Thông Minh – UV Box

Hệ Thống Hỗ Trợ Giám Sát Sức Khỏe Người Cao Tuổi – Elder Care

Giải Pháp Theo Dõi Sức Khỏe Từ Xa – mCare

Giải Pháp Tối Ưu Hoạt Động Của Thiết Bị - Machine Optimization

Dự Báo Bảo Trì Hệ Thống

Giải Pháp Đọc Tài Liệu Tự Động – Document Parser

Giải Pháp Chuyển Đổi Thiết Bị Thành Thông Minh

Tổng quan về vị trí việc làm

Khái niệm về Developer

- Developer (gọi tắt là Dev) là những người sử dụng ngôn ngữ lập trình để thông minh, tạo ra và bảo trì các chương trình, ứng dụng, áp dụng Một vài phương ngữ lập trình thường được sử dụng như Python, JavaScript, C, C++, C#,…

- Developer thường giữ nhiệm vụ đặc biệt trong quá trình tạo ra ứng dụng Bởi họ chủ đạo là người sử dụng thành thục các phương ngữ lập trình để viết ra các đoạn mã lập trình Hiện nay, rất nhiều bạn trẻ xác định theo đuổi hoạt động này bởi những tiềm năng cũng giống như đãi ngộ mà nó đem tới.

Nhiệm vụ của một Developer

- Developer là một tên gọi khá chung cho các kỹ sư ứng dụng Trên thực tế, các developer thường có chuyên môn khác nhau Và những hoạt động của họ sẽ có liên quan chuyên ngành đấy.

- Frontend Developer: là những người gánh chịu hậu quả cho giao diện của một trang thi những công việc đấy, Frontend Developer cần phải hiểu sâu 3 phương ngữ lập trình chủ đạo Đó chính là: HTML, CSS và JavaScript.

- Backend Developer: Lập trình viên Backend là những người gánh chịu hậu quả tuyệt đối vào các hoạt động hậu trường của website Họ tập trung tăng trưởng việc xây dựng các mã lập trình và ngôn ngữ đằng sau máy chủ website.

LÝ THUYẾT 6 2.1 LINQ

Giới thiệu về LINQ

- LINQ (Language-Integrated Query) là một công nghệ trong NET Framework cho phép thực hiện truy vấn và thao tác dữ liệu một cách trực tiếp và tự nhiên trong các ngôn ngữ lập trình C# và VB.NET LINQ giúp đơn giản hóa việc truy vấn và xử lý dữ liệu từ các nguồn khác nhau như danh sách, mảng, cơ sở dữ liệu SQL Server và nhiều nguồn dữ liệu khác.

Cách hoạt động

- LINQ sử dụng cú pháp trực quan và dễ hiểu cho các truy vấn dữ liệu, giúp mã trở nên rõ ràng và dễ đọc hơn Nó cung cấp các phương thức mở rộng (extension methods) cho các tập hợp dữ liệu (IEnumerable hoặc IQueryable), cho phép bạn thực hiện các truy vấn LINQ trực tiếp trên các nguồn dữ liệu.

- Có hai cách tiếp cận chính của LINQ:

+ LINQ to Objects: Được sử dụng để truy vấn và thao tác dữ liệu trong bộ nhớ, chẳng hạn như các danh sách và mảng Các phương thức LINQ to Objects bao gồm Where(), Select(), OrderBy(), GroupBy() và nhiều phương thức khác. + LINQ to SQL (hoặc LINQ to Entities): Được sử dụng để truy vấn và thao tác dữ liệu trong cơ sở dữ liệu quan hệ LINQ to SQL cho phép truy vấn cơ sở dữ liệu SQL Server sử dụng cú pháp LINQ và tự động ánh xạ kết quả truy vấn vào các lớp đối tượng (ORM) LINQ to Entities hỗ trợ nhiều cơ sở dữ liệu như SQL Server, MySQL, PostgreSQL, Oracle và nhiều nguồn dữ liệu khác.

Các ưu điểm của LINQ

- Cú pháp trực quan và dễ đọc: Với LINQ, bạn có thể viết các truy vấn dữ liệu bằng cách sử dụng cú pháp tương tự như câu truy vấn SQL, giúp mã trở nên rõ ràng và dễ hiểu hơn.

- Kiểm tra lỗi kiểu tại thời điểm biên dịch: Bởi vì LINQ là một phần của C# (hoặc

VB.NET), nó cho phép bạn kiểm tra lỗi kiểu tại thời điểm biên dịch, giúp phát hiện lỗi trước khi chạy chương trình.

- Tối ưu hóa truy vấn: LINQ cung cấp khả năng tối ưu hóa các truy vấn dữ liệu, giúp cải thiện hiệu suất và hiệu quả trong việc truy xuất dữ liệu.

- Tích hợp với ngôn ngữ lập trình: LINQ tích hợp chặt chẽ với ngôn ngữ C# (hoặc

VB.NET), giúp giảm thiểu cú pháp lạng lùng và giúp bạn viết mã một cách tự nhiên hơn.

- Hỗ trợ nhiều nguồn dữ liệu: LINQ có thể sử dụng cho nhiều nguồn dữ liệu khác nhau, từ các cấu trúc dữ liệu trong bộ nhớ đến cơ sở dữ liệu quan hệ và các nguồn dữ liệu khác thông qua việc triển khai các cơ chế cụ thể.

ASP.NET Core

- ASP.NET Core là một framework mã nguồn mở được phát triển bởi Microsoft, dùng để xây dựng các ứng dụng web và dịch vụ web hiệu suất cao và đa nền tảng ASP.NET Core là phiên bản tiếp theo của ASP.NET Framework và có nhiều cải tiến vượt trội, bao gồm tích hợp các tính năng và khả năng tương thích đa nền tảng.

- Đa nền tảng (Cross-platform): ASP.NET Core cho phép phát triển và triển khai ứng dụng trên nhiều nền tảng, bao gồm Windows, macOS và Linux Điều này giúp giảm sự phụ thuộc vào hệ điều hành và tăng tính linh hoạt trong việc triển khai ứng dụng trên các môi trường khác nhau.

- Hiệu suất cao: ASP.NET Core đã được tối ưu hóa để cung cấp hiệu suất tốt nhất Nó sử dụng mô hình xử lý không đồng bộ (asynchronous processing) và hỗ trợ nhiều cơ chế như Kestrel web server và ASP.NET Core Module, giúp cải thiện khả năng chịu tải và thời gian phản hồi của ứng dụng.

- Dependency Injection (DI): ASP.NET Core tích hợp Dependency Injection vào lõi của framework, giúp quản lý các phụ thuộc (dependencies) và tạo ra các thành phần dễ dàng.

DI giúp cải thiện tính mở rộng và kiểm thử của ứng dụng.

- Tích hợp với Entity Framework Core: ASP.NET Core tích hợp chặt chẽ với Entity

Framework Core, một ORM (Object-Relational Mapping) mới và nhỏ gọn của Microsoft Điều này giúp đơn giản hóa việc làm việc với cơ sở dữ liệu và tạo ra các truy vấn dữ liệu một cách dễ dàng.

- Cấu trúc dự án tối giản (Minimalistic Project Structure): ASP.NET Core có cấu trúc dự án tối giản và linh hoạt hơn so với ASP.NET Framework truyền thống Điều này giúp giảm sự phức tạp và tăng khả năng quản lý mã nguồn.

2.2.3 Ứng dụng của ASP.NET Core

- Xây dựng các ứng dụng web độc lập nền tảng (cross-platform) cho doanh nghiệp và công ty.

- Xây dựng các ứng dụng web ở cả môi trường máy chủ Windows, Linux và MacOS.

- Xây dựng các API (dịch vụ web) cho việc tích hợp với ứng dụng di động hoặc các dịch vụ bên ngoài.

- Xây dựng ứng dụng IoT (Internet of Things) và các dịch vụ có hiệu suất cao.

- Phát triển các ứng dụng web Single Page Application (SPA) sử dụng các framework như Angular hoặc React.

Resful APIs

- RESTful APIs (Representational State Transfer Application Programming Interfaces) là một kiểu thiết kế và cách tiếp cận phổ biến trong việc xây dựng các dịch vụ web (web services) RESTful APIs cho phép các ứng dụng giao tiếp với nhau qua HTTP (HyperText Transfer Protocol) theo các quy tắc đơn giản và chuẩn mực RESTful APIs dựa trên kiến trúc trạng thái biểu hiện (stateless) và tận dụng các phương thức HTTP để thực hiện các hoạt động CRUD (Create, Read, Update, Delete) trên dữ liệu.

2.3.2 Các đặc điểm chính của Resful APIs

- Sự trạng thái biểu hiện (Stateless): Mỗi yêu cầu từ client tới server trong RESTful

APIs là độc lập và chứa đủ thông tin để server hiểu và xử lý yêu cầu Server không lưu trạng thái của client giữa các yêu cầu Điều này giúp giảm tình trạng quá tải của server và dễ dàng mở rộng hệ thống.

- Các phương thức HTTP: RESTful APIs sử dụng các phương thức chuẩn của HTTP như GET, POST, PUT, DELETE để thực hiện các hoạt động trên tài nguyên (resource) Ví dụ, GET để lấy dữ liệu, POST để tạo mới dữ liệu, PUT để cập nhật dữ liệu và DELETE để xóa dữ liệu.

- Cấu trúc URL thân thiện: Các tài nguyên trong RESTful APIs được đại diện bằng các URL thân thiện, dễ hiểu và có ý nghĩa Ví dụ, "/products" để thao tác với danh sách sản phẩm, "/customers" để thao tác với danh sách khách hàng.

- Sử dụng định dạng dữ liệu chuẩn: RESTful APIs thường sử dụng các định dạng dữ liệu chuẩn như JSON (JavaScript Object Notation) hoặc XML (eXtensible Markup

Language) để truyền dữ liệu giữa client và server JSON là định dạng phổ biến hơn do kích thước nhẹ và dễ đọc.

- Các mã trạng thái HTTP (HTTP Status Codes): RESTful APIs sử dụng các mã trạng thái HTTP để chỉ thị kết quả của yêu cầu Ví dụ, 200 OK cho thành công, 404 Not Found cho không tìm thấy tài nguyên, 500 Internal Server Error cho lỗi phía server.

2.3.3 Ứng dụng của Resful APIs

- Xây dựng các dịch vụ web API để cung cấp dữ liệu cho ứng dụng di động hoặc các ứng dụng khác.

- Phát triển các ứng dụng web Single Page Application (SPA) sử dụng các framework như Angular hoặc React.

- Tích hợp các ứng dụng với các dịch vụ bên ngoài, chẳng hạn như thanh toán, nhắn tin, gọi video, và nhiều dịch vụ khác.

- Xây dựng các ứng dụng IoT (Internet of Things) để truyền thông và quản lý các thiết bị thông qua mạng.

TRIỂN KHAI DỰ ÁN 11 3.1 Thiết kế use case

Thiết kế database

3.2.2 Mô tả chi tiết sơ đồ

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 Id Int Khóa chính, khác null, không được trùng lặp

Mã vai trò giúp phân biệt vai trò với nhau

2 Name String Khác null Tên vai trò

Bảng 3 1: Mô tả chi tiết bảng Role

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 UserId Int Khóa chính, khác null, không được trùng lặp

Giúp lưu trữ, xác định thông qua các vai trò của một người

Bảng 3 2: Mô tả chi tiết bảng UserRole

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 Id Int Khóa chính, khác null, không được trùng lặp

Giúp xác định một người dùng cụ thể của hệ thống

2 Name String Khác null Họ tên của người dùng hệ thống

3 Phone String Khác null Số điện thoại liên lạc của

4 Address String Khác null Địa chỉ của người dùng

5 DateOfBirth DateTime Khác null Ngày sinh của người dùng

6 UserName String Khác null Tên đăng nhập vào hệ thống

7 Password String Khác null Mật khẩu đăng nhập vào hệ thống

Bảng 3 3: Mô tả chi tiết bảng User

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 Id Int Khóa chính, khác null, không được trùng lặp

Giúp xác định một khách hàng cụ thể

2 Name String Khác null Họ tên của khách hàng

3 Phone String Khác null Số điện thoại liên lạc của khách hàng

4 Address String Địa chỉ của khách hàng

5 DateOfBirth DateTime Khác null Ngày sinh của khách hàng

Bảng 3 4: Mô tả chi tiết bảng Customer

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 Id Int Khóa chính, khác null, không Mã của hóa được trùng lặp đơn

2 UserId Int Khóa ngoại tham chiếu đến khóa chính của bảng User

3 CustomerId Int Khóa ngoại tham chiếu đến khóa chính của bảng Customer

4 PriceTotal Int Khác null Tổng giá của hóa đơn

5 CreatedDate DateTime Khác null Ngày lập hóa đơn

6 Quantity Int Khác null Tổng số vé có trong hóa đơn

Bảng 3 5: Mô tả chi tiết bảng Bill

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 Id Int Khóa chính, khác null, không được trùng lặp

Giúp xác định một vé cụ thể

2 ShowTimeId Int Khóa ngoại tham chiếu đến khóa chính của bảng ShowTimes

3 SeatId Int Khóa ngoại tham chiếu đến khóa chính của bảng Seat

4 BillId Int Khóa ngoại tham chiếu đến khóa chính của Bill

Bảng 3 6: Mô tả chi tiết bảng Ticket

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 Id Int Khóa chính, khác null, không được trùng lặp

Mã của một bộ phim để phân biệt với các bộ phim khác

2 TypeOfFilmId Int Khóa ngoại tham chiếu đến khóa chính của bảng TypeOfFilm

3 Name String Khác null Tên phim

4 OpeningDay DateTime Khác null Ngày công chiếu của phim

5 Director String Tên đạo diễn của phim

6 Time String Tổng thời lượng tính bằng phút của phim

7 Image String Đường dẫn lưu trữ hình ảnh của phim

Bảng 3 7: Mô tả chi tiết bảng Film

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 Id Int Khóa chính, khác null, không được trùng lặp

Giúp xác định một suất chiếu cụ thể

2 FilmId Int Khóa ngoại tham chiếu đến khóa chính của bảng Film

Mã của bộ phim được chiếu

3 RoomId Int Khóa ngoại tham chiếu đến khóa chính của bảng Room

Mã của phòng sẽ sử dụng trong suất chiếu này

4 Time DateTime Khác null Thời gian bắt đầu chiếu

Bảng 3 8: Mô tả chi tiết bảng ShowTime

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 Id Int Khóa chính, khác null, không được trùng lặp

Mã ghế giúp phân biệt các ghế với nhau

2 RoomId Int Khóa ngoại tham chiếu đến khóa chính của bảng Room

Giúp biết được ghế thuộc phòng nào của rạp

3 Name String Khác null Tên ghế

4 Row Int Khác null Vị trí ghế theo cột

5 Price Int Khác null Đơn giá của một ghế

6 Column Int Khác null Vị trí ghế theo hàng

Bảng 3 9: Mô tả chi tiết bảng Seat

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 Id Int Khóa chính, khác null, không được trùng lặp

Mã thể loại phim giúp phân biệt các thể loại phim với nhau

2 Name String Khác null Tên thể loại phim

Bảng 3 10: Mô tả chi tiết bảng TypeOfFilm

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 Id Int Khóa chính, khác null, không được trùng lặp

Giúp xác định một phòng chiếu cụ thể

2 Name String Khác null Tên phòng

Bảng 3 11: Mô tả chi tiết bảng Room

Kiểu Ràng buộc Ghi chú

1 Id Int Khóa chính, khác null, không được trùng lặp

Giúp xác định một trạng thái cụ thể

2 Status String Khác null Tên trạng thái của ghế

3 Code String Khác null Mã trạng thái của ghế

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 Id Int Khóa chính, khác null, không được trùng lặp

Giúp xác định một token cụ thể

2 UserId Int Khóa ngoại tham chiếu đến khóa chính của bảng User

3 Token String Khác null Giá trị token

4 JwtId String Khác null Mã xác thực

5 IsUsed Boolean Khác null Xác định xem token đã được sử dụng hay chưa

6 IsRevoked Boolean Khác null Xác định xem token đã bị thu hồi hay chưa

7 IssueAt DateTime Khác null Thời gia token có hiệu lực

8 ExpireAt DateTime Khác null Thời gian token hết hiệu lực

Bảng 3 13: Mô tả chi tiết bảng RefreshToken

KẾT QUẢ 22 4.1 Bill

Api/Bill: Get

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 page Int Mặc định là 0 Vị trí của trang

2 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

Bảng 4 1: Đầu vào của api/Bill: Get

Tên thuộc tính Kiểu Ghi chú

1 id Int Mã hóa đơn

2 customerName String Tên khách hàng

3 userName String Tên đăng nhập của người dùng

4 priceTotal Int Tổng tiền của hóa đơn

5 quantity Int Số lượng vé đã đặt trong hóa đơn

6 createDate Datetime Ngày tạo hóa đơn

7 customerId Int Mã khách hàng

8 userId Int Mã người dùng

9 totalItem Int Số lượng dữ liệu trả về

10 page Int Vị trí của trang

11 pageSize Int Số lượng dữ liệu trong một trang

12 data List Danh sách dữ liệu trả về

Bảng 4 2: Đầu ra của api/Bill: Get

Api/Bill: Post

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

Khác null Ngày tạo hóa đơn

2 customerId Int Mã khách hàng

3 userId Int Khác null Mã người dùng

4 ticketBuilders List Khác null Danh sách vé của hóa đơn

5 seatId Int Khác null Mã ghế

6 showTimeId Int Khác null Mã suất chiếu

Bảng 4 3: Đầu vào của api/Bill: Post

Api/Bill/{id}: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã hóa đơn

Bảng 4 4: Đầu vào của api/Bill/{id}: Get

Tên thuộc tính Kiểu Ghi chú

2 customerName String Tên khách hàng

3 userName String Tên đăng nhập của người dùng

4 priceTotal Int Tổng tiền của hóa đơn

5 quantity Int Số lượng vé đã đặt trong hóa đơn

6 createDate Datetime Ngày tạo hóa đơn

7 customerId Int Mã khách hàng

8 userId Int Mã người dùng

Bảng 4 5: Đầu ra của api/Bill/{id}: Get

Api/Bill/{id}: Delete

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã hóa đơn

Bảng 4 6: Đầu vào của api/Bill{id}: Delete

Api/Bill/{billId}/tickets: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 billId Int Khác null Mã hóa đơn

2 page Int Mặc định là 0 Vị trí của trang

3 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

Bảng 4 7: Đầu vào của api/Bill/{billId}/tickets: Get

STT Tên thuộc tính Kiểu Ghi chú

2 showTime Datetime Thời gian của suất chiếu

5 roomName String Tên phòng chiếu phim

6 price Int Đơn giá của ghế

7 roomId Int Mã phòng chiếu phim

9 showTimeId Int Mã suất chiếu phim

10 billId Int Mã hóa đơn

11 totalItem Int Số lượng dữ liệu trả về

12 page Int Vị trí của trang

13 pageSize Int Số lượng dữ liệu trong một trang

14 data List Danh sách dữ liệu trả về

Bảng 4 8: Đầu ra của api/Bill/{billId}/tickets: Get

Customer

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 page Int Mặc định là 0 Vị trí của trang

Bảng 4 9: Đầu vào của api/Customer: Get

STT Tên thuộc tính Kiểu Ghi chú

1 data List Danh sách dữ liệu trả về

2 id Int Mã khách hàng

3 name String Tên khách hàng

4 phone String Số điện thoại của khách hàng

5 address String Địa chỉ khách hàng

6 dateOfBirth Datetime Ngày sinh của khách hàng

7 totalItem Int Số lượng dữ liệu trả về

8 page Int Vị trí của trang

9 pageSize Int Số lượng dữ liệu trong một trang

Bảng 4 10: Đầu ra của api/Customer: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 name String Tên khách hàng

2 phone String Số điện thoại của khách hàng

3 address String Địa chỉ khách hàng

Ngày sinh của khách hàng

Bảng 4 11: Đầu vào của api/Customer: Post

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã khách hàng

Bảng 4 12: Đầu vào của api/Customer/{id}: Get

STT Tên thuộc tính Kiểu Ghi chú

1 id Int Mã khách hàng

2 name String Tên khách hàng

3 phone String Số điện thoại của khách hàng

4 address String Địa chỉ khách hàng

5 dateOfBirth Datetime Ngày sinh của khách hàng

Bảng 4 13: Đầu ra của api/Customer//{id}: Get

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã khách hàng

2 name String Tên khách hàng

3 phone String Số điện thoại của khách hàng

4 address String Địa chỉ khách hàng

Ngày sinh của khách hàng

Bảng 4 14: Đầu vào của api/Customer/{id}: Put

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã khách hàng

Bảng 4 15: Đầu vào của api/Customer/{id}: Delete

4.2.6 Api/Customer/{search}/customers: Get

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 page Int Mặc định là 0 Vị trí của trang

2 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

3 search String Khác null Tìm kiếm thông tin khách hàng theo tên hoặc địa chỉ của khách hàng

Bảng 4 16: Đầu vào của api/Customer/{search}/customers: Get

STT Tên thuộc tính Kiểu Ghi chú

1 data List Danh sách dữ liệu trả về

2 id Int Mã khách hàng

3 name String Tên khách hàng

4 phone String Số điện thoại của khách hàng

5 address String Địa chỉ khách hàng

6 dateOfBirth Datetime Ngày sinh của khách hàng

7 totalItem Int Số lượng dữ liệu trả về

8 page Int Vị trí của trang

9 pageSize Int Số lượng dữ liệu trong một trang

Bảng 4 17: Đầu ra của api/Customer/{search}/customers: Get

4.2.7 Api/Customer/{id}/bills: Get

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 page Int Mặc định là 0 Vị trí của trang

2 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

3 id Int Khác null Mã khách hàng

Bảng 4 18: Đầu vào của api/Customer/{id}/bills: Get

Tên thuộc tính Kiểu Ghi chú

1 id Int Mã hóa đơn

2 customerName String Tên khách hàng

3 userName String Tên đăng nhập của người dùng

4 priceTotal Int Tổng tiền của hóa đơn

5 quantity Int Số lượng vé đã đặt trong hóa đơn

6 createDate Datetime Ngày tạo hóa đơn

7 customerId Int Mã khách hàng

8 userId Int Mã người dùng

9 totalItem Int Số lượng dữ liệu trả về

10 page Int Vị trí của trang

11 pageSize Int Số lượng dữ liệu trong một trang

12 data List Danh sách dữ liệu trả về

Bảng 4 19: Đầu ra của api/Customer/{id}/bills: Get

Film

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 page Int Mặc định là 0 Vị trí của trang

2 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

Bảng 4 20: Đầu vào của api/Film: Get

STT Tên thuộc tính Kiểu Ghi chú

1 data List Danh sách dữ liệu trả về

3 typeName String Tên thể loại phim

5 openingDay Datetime Thời gian công chiếu

6 director String Tên đạo diễn

7 time String Thời lượng phim

8 image String Đường dẫn ảnh của phim

9 typeId Int Mã thể loại phim

10 description String Mô tả của phim

11 totalItem Int Số lượng dữ liệu trả về

12 page Int Vị trí của trang

13 pageSize Int Số lượng dữ liệu trong một trang

Bảng 4 21: Đầu ra của api/Film: Get

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 name String Khác null Tên phim

Khác null Thời gian công chiếu

3 director String Tên đạo diễn

4 time String Thời lượng phim

5 image String Đường dẫn ảnh của phim

6 typeId Int Khác null Mã thể loại phim

7 description String Mô tả của phim

Bảng 4 22: Đầu vào của api/Film: Post

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã phim

Bảng 4 23: Đầu vào của api/Film/{id}: Get

STT Tên thuộc tính Kiểu Ghi chú

2 typeName String Tên thể loại phim

4 openingDay Datetime Thời gian công chiếu

5 director String Tên đạo diễn

6 time String Thời lượng phim

7 image String Đường dẫn ảnh của phim

8 typeId Int Mã thể loại phim

9 description String Mô tả của phim

Bảng 4 24: Đầu ra của api/Film/{id}: Get

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 Id Int Khác null Mã phim

2 name String Khác null Tên phim

Khác null Thời gian công chiếu

4 director String Tên đạo diễn

5 time String Thời lượng phim

6 image String Đường dẫn ảnh của phim

7 typeId Int Khác null Mã thể loại phim

8 description String Mô tả của phim

Bảng 4 25: Đầu vào của api/Film/{id}: Put

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã phim

Bảng 4 26: Đầu vào của api/Film/{id}: Delete

4.3.6 Api/Film/{name}/films: Get

Tên thuộc tính Kiểu Ràng buộc Ghi chú

2 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

3 name String Khác null Tên phim

Bảng 4 27: Đầu vào của api/Film/{name}/films: Get

STT Tên thuộc tính Kiểu Ghi chú

1 data List Danh sách dữ liệu trả về

3 typeName String Tên thể loại phim

5 openingDay Datetime Thời gian công chiếu

6 director String Tên đạo diễn

7 time String Thời lượng phim

8 image String Đường dẫn ảnh của phim

9 typeId Int Mã thể loại phim

10 description String Mô tả của phim

11 totalItem Int Số lượng dữ liệu trả về

12 page Int Vị trí của trang

13 pageSize Int Số lượng dữ liệu trong một trang

Bảng 4 28: Đầu ra của api/Film/{name}/films: Get

4.3.7 Api/Film/{id}/showTimes: Get

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 page Int Mặc định là 0 Vị trí của trang

2 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

3 id Int Khác null Mã phim

STT Tên thuộc tính Kiểu Ghi chú

1 data List Danh sách dữ liệu trả về

2 id Int Mã suất chiếu

3 roomName String Tên phòng chiếu phim

5 duration String Thời lượng của phim

6 image String Đường dẫn ảnh của phim

7 typeName String Tên thể loại phim

8 time String Thời gian của suất chiếu phim

9 roomId Int Mã phòng chiếu phim

11 totalItem Int Số lượng dữ liệu trả về

12 page Int Vị trí của trang

13 pageSize Int Số lượng dữ liệu trong một trang

Bảng 4 30: Đầu ra của api/Film/{id}/showTimes: Get

Login

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

Khác null Tên đăng nhập

Bảng 4 31: Đầu vào của api/Login/Login: Post

STT Tên thuộc tính Kiểu Ghi chú

1 asscessToken String Mã xác thực

2 refreshToken String Mã hash làm mới token

3 userName String Tên đăng nhập

4 name String Tên người dùng

5 userId Int Mã người dùng

6 roles List Danh sách vai trò người dùng

7 name String Tên vai trò

Bảng 4 32: Đầu ra của api/Login/Login: Post

STT Tên thuộc tính Kiểu Ghi chú

1 asscessToken String Mã xác thực

2 refreshToken String Mã hash làm mới token

3 userName String Tên đăng nhập

4 name String Tên người dùng

5 userId Int Mã người dùng

6 roles List Danh sách vai trò người dùng

7 name String Tên vai trò

Bảng 4 33: Đầu vào của api/Login/RefreshToken: Post

STT Tên thuộc tính Kiểu Ghi chú

1 asscessToken String Mã xác thực

2 refreshToken String Mã hash làm mới token

3 userName String Tên đăng nhập

4 name String Tên người dùng

5 userId Int Mã người dùng

6 roles List Danh sách vai trò người dùng

7 name String Tên vai trò

Bảng 4 34: Đầu ra của api/Login/RefreshToken: Post

Role

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 page Int Mặc định là 0 Vị trí của trang

2 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

Bảng 4 35: Đầu vào của api/Role: Get

STT Tên thuộc tính Kiểu Ghi chú

1 data List Danh sách dữ liệu trả về

2 id Int Mã vai trò

3 name String Tên vai trò

4 totalItem Int Số lượng dữ liệu trả về

5 page Int Vị trí của trang

6 pageSize Int Số lượng dữ liệu trong một trang

Bảng 4 36: Đầu ra của api/Role: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 name String Khác null Tên vai trò

Bảng 4 37: Đầu vào của api/Role: Post

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã vai trò

Bảng 4 38: Đầu vào của api/Role/{id}: Get

STT Tên thuộc tính Kiểu Ghi chú

1 id Int Mã vai trò

2 name String Tên vai trò

Bảng 4 39: Đầu ra của api/Role/{id}: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã vai trò

2 name String Khác null Tên vai trò

Bảng 4 40: Đầu vào của api/Role/{id}: Put

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã vai trò

Bảng 4 41: Đầu vào của api/Role/{id}: Delete

4.5.6 Api/Role/{id}/users: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã vai trò

2 page Int Mặc định là 0 Vị trí của trang

3 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

Bảng 4 42: Đầu vào của api/Role/{id}/users: Get

STT Tên thuộc tính Kiểu Ghi chú

1 data List Danh sách dữ liệu người dùng trả về

2 id Int Mã người dùng

3 roles List Danh sách dữ liệu vai trò trả về

4 id Int Mã vai trò

5 name String Tên vai trò

6 userName String Tên đăng nhập

7 name String Tên người dùng

8 phone String Số điện thoại người dùng

10 address String Địa chỉ của người dùng

11 dateOfBirth Datetime Ngày sinh của người dùng

12 totalItem Int Số lượng dữ liệu người dùng trả về

13 page Int Vị trí của trang

14 pageSize Int Số lượng dữ liệu trong một trang

Bảng 4 43: Đầu ra của api/Role/{id}/users: Get

Room

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 page Int Mặc định là 0 Vị trí của trang

2 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

Bảng 4 44: Đầu vào của api/Room: Get

STT Tên thuộc tính Kiểu Ghi chú

1 data List Danh sách dữ liệu trả về

2 id Int Mã phòng chiếu phim

3 name String Tên phòng chiếu phim

4 totalItem Int Số lượng dữ liệu trả về

5 page Int Vị trí của trang

6 pageSize Int Số lượng dữ liệu trong một trang

Bảng 4 45: Đầu ra của api/Room: Get

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 name String Khác null Tên phòng

Bảng 4 46: Đầu vào của api/Room: Post

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã phòng chiếu phim

Bảng 4 47: Đầu vào của api/Room/{id}: Get

1 id Int Mã phòng chiếu phim

2 name String Tên phòng chiếu phim

Bảng 4 48: Đầu ra của api/Room/{id}: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã phòng chiếu phim

2 name String Khác null Tên phòng chiếu phim

Bảng 4 49: Đầu vào của api/Room/{id}: Put

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã phòng chiếu phim

Bảng 4 50: Đầu vào của api/Room/{id}: Delete

4.6.6 Api/Room/{id}/seats: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã phòng chiếu phim

Bảng 4 51: Đầu vào của api/Room/{id}/seats: Get

STT Tên thuộc tính Kiểu Ghi chú

3 price Int Đơn giá của ghế

4 roomId Int Mã phòng chiếu phim

5 row Int Vị trị của ghế theo cột

6 column Int Vị trí của ghế theo hàng

Bảng 4 52: Đầu ra của api/Room/{id}/seats: Get

4.6.7 Api/Room/{id}/showTimes: Get

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 page Int Mặc định là 0 Vị trí của trang

2 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

3 id Int Khác null Mã phòng chiếu phim

Bảng 4 53: Đầu vào của api/Room/{id}/showTimes: Get

STT Tên thuộc tính Kiểu Ghi chú

1 data List Danh sách dữ liệu trả về

2 id Int Mã suất chiếu

3 roomName String Tên phòng chiếu phim

5 duration String Thời lượng của phim

6 image String Đường dẫn ảnh của phim

7 typeName String Tên thể loại phim

8 time Datetime Thời gian của suất chiếu

9 roomId Int Mã phòng chiếu phim

11 totalItem Int Số lượng dữ liệu trả về

12 page Int Vị trí của trang

13 pageSize Int Số lượng dữ liệu trong một trang

Bảng 4 54: Đầu ra của api/Room/{id}/showTimes: Get

Seat

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 name String Khác null Tên ghế

2 price Int Khác null Đơn giá của ghế

3 roomId Int Khác null Mã phòng chiếu phim

4 row Int Khác null Vị trí của ghế theo cột

5 column Int Khác null Vị trí của ghế theo hàng

Bảng 4 55: Đầu vào của api/Seat: Post

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 name String Khác null Tên ghế

2 price Int Khác null Đơn giá của ghế

3 roomId Int Khác null Mã phòng chiếu phim

4 row Int Khác null Vị trí của ghế theo cột

5 column Int Khác null Vị trí của ghế theo hàng

6 id Int Khác null Mã ghế

Bảng 4 56: Đầu vào của api/Seat/{id}: Put

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã ghế

Bảng 4 57: Đầu vào của api/Seat/{id}: Delete

SeatStatus

Tên thuộc tính Kiểu Ràng buộc Ghi chú

2 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

Bảng 4 58: Đầu vào của api/SeatStatus: Get

STT Tên thuộc tính Kiểu Ghi chú

1 data List Danh sách dữ liệu trả về

2 id Int Mã trạng thái của ghế

3 code String Code trạng thái

4 status String Tên trạng thái

5 totalItem Int Số lượng dữ liệu trả về

6 page Int Vị trí của trang

7 pageSize Int Số lượng dữ liệu trong một trang

Bảng 4 59: Đầu ra của api/SeatStatus: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 status String Khác null Tên trạng thái

2 code String Khác null Code trạng thái

Bảng 4 60: Đầu vào của api/SeatStatus: Post

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã ghế

Bảng 4 61: Đầu vào của api/SeatStatus/{id}: Get

STT Tên thuộc tính Kiểu Ghi chú

1 id Int Mã trạng thái của ghế

2 code String Code trạng thái

3 status String Tên trạng thái

Bảng 4 62: Đầu ra của api/SeatStatus/{id}: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã ghế

2 status String Khác null Tên trạng thái

Bảng 4 63: Đầu vào của api/SeatStatus/{id}: Put

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã ghế

Bảng 4 64: Đầu vào của api/SeatStatus/{id}: Delete

ShowTime

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 page Int Mặc định là 0 Vị trí của trang

2 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

Bảng 4 65: Đầu vào của api/ShowTime: Get

STT Tên thuộc tính Kiểu Ghi chú

1 data List Danh sách dữ liệu trả về

2 id Int Mã suất chiếu

3 roomName String Tên phòng chiếu phim

5 duration String Thời lượng của phim

6 image String Đường dẫn ảnh của phim

7 typeName String Tên thể loại phim

8 time Datetime Thời gian của suất chiếu

9 roomId Int Mã phòng chiếu phim

11 totalItem Int Số lượng dữ liệu trả về

12 page Int Vị trí của trang

13 pageSize Int Số lượng dữ liệu trong một trang

Bảng 4 66: Đầu ra của api/ShowTime: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

Khác null Thời gian của suất chiếu

2 roomId Int Khác null Mã phòng chiếu

3 filmId Int Khác null Mã phim

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã suất chiếu

Bảng 4 68: Đầu vào của api/ShowTime/{id}: Get

STT Tên thuộc tính Kiểu Ghi chú

1 id Int Mã suất chiếu

2 roomName String Tên phòng chiếu phim

4 duration String Thời lượng của phim

5 image String Đường dẫn ảnh của phim

6 typeName String Tên thể loại phim

7 time Datetime Thời gian của suất chiếu

8 roomId Int Mã phòng chiếu phim

Bảng 4 69: Đầu ra của api/ShowTime/{id}: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

Khác null Thời gian của suất chiếu

2 roomId Int Khác null Mã phòng chiếu

3 filmId Int Khác null Mã phim

4 id Int Khác null Mã suất chiếu

Bảng 4 70: Đầu vào của api/ShowTime/{id}: Put

1 id Int Khác null Mã suất chiếu

Bảng 4 71: Đầu vào của api/ShowTime/{id}: Delete

4.9.6 Api/ShowTime/{showTimeId}/seats: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 showTimeId Int Khác null Mã suất chiếu

Bảng 4 72: Đầu vào của api/ShowTime/{showTimeId}/seats: Get

STT Tên thuộc tính Kiểu Ghi chú

1 columnSeats List Danh sách dữ liệu trả về

2 column Int Vị trí hàng ghế

3 seatOfShowTimes List Danh sách ghế trả về theo hàng

4 status String Tên trạng thái

5 code String Code trạng thái

8 price Int Đơn giá của ghế

9 roomId Int Mã phòng chiếu phim

10 row Int Vị trí của ghế theo cột

11 column Int Vị trí của ghế theo hàng

Bảng 4 73: Đầu ra của api/ShowTime/{showTimeId}/seats: Get

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 page Int Mặc định là 0 Vị trí của trang

2 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

Khác null Ngày bắt đầu

Khác null Ngày kết thúc

STT Tên thuộc tính Kiểu Ghi chú

1 data List Danh sách dữ liệu trả về

2 id Int Mã suất chiếu

3 roomName String Tên phòng chiếu phim

5 duration String Thời lượng của phim

6 image String Đường dẫn ảnh của phim

7 typeName String Tên thể loại phim

8 time Datetime Thời gian của suất chiếu

9 roomId Int Mã phòng chiếu phim

11 totalItem Int Số lượng dữ liệu trả về

12 page Int Vị trí của trang

13 pageSize Int Số lượng dữ liệu trong một trang

Bảng 4 75: Đầu ra của api/ShowTime/ByDay: Get

Ticket

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 page Int Mặc định là 0 Vị trí của trang

2 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

Bảng 4 76: Đầu vào của api/Ticket: Get

STT Tên thuộc tính Kiểu Ghi chú

2 showTime Datetime Thời gian của suất chiếu

5 roomName String Tên phòng chiếu phim

6 price Int Đơn giá của ghế

7 roomId Int Mã phòng chiếu phim

9 showTimeId Int Mã suất chiếu phim

10 billId Int Mã hóa đơn

11 totalItem Int Số lượng dữ liệu trả về

12 page Int Vị trí của trang

13 pageSize Int Số lượng dữ liệu trong một trang

14 data List Danh sách dữ liệu trả về

Bảng 4 77: Đầu ra của api/Ticket: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã vé

Bảng 4 78: Đầu vào của api/Ticket/{id}: Get

STT Tên thuộc tính Kiểu Ghi chú

1 id Int Mã của vé

2 showTime Datetime Thời gian của suất chiếu

5 roomName String Tên phòng chiếu phim

6 price Int Đơn giá của ghế

7 roomId Int Mã phòng chiếu phim

9 showTimeId Int Mã suất chiếu phim

10 billId Int Mã hóa đơn

Bảng 4 79: Đầu ra của api/Ticket/{id}: Get

TypeOfFilm

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 page Int Mặc định là 0 Vị trí của trang

2 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

Bảng 4 80: Đầu vào của api/TypeOfFilm: Get

STT Tên thuộc tính Kiểu Ghi chú

1 data List Danh sách dữ liệu trả về

2 id Int Mã thể loại phim

3 name String Tên thể loại phim

4 totalItem Int Số lượng dữ liệu trả về

5 page Int Vị trí của trang

6 pageSize Int Số lượng dữ liệu trong một trang

Bảng 4 81: Đầu ra của api/TypeOfFilm: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 name String Khác null Tên thể loại phim

Bảng 4 82: Đầu ra của api/TypeOfFilm: Post

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã thể loại phim

Bảng 4 83: Đầu vào của api/TypeOfFilm/{id}: Get

STT Tên thuộc tính Kiểu Ghi chú

1 id Int Mã thể loại phim

2 name String Tên thể loại phim

Bảng 4 84: Đầu ra của api/TypeOfFilm/{id}: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã thể loại phim

2 name String Khác null Tên thể loại phim

Bảng 4 85: Đầu vào của api/TypeOfFilm/{id}: Put

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã thể loại phim

Bảng 4 86: Đầu vào của api/TypeOfFilm/{id}: Delete

4.11.6 Api/TypeOfFilm/{typeId}/films: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 typeId Int Khác null Mã thể loại phim

2 page Int Mặc định là 0 Vị trí của trang

3 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

Bảng 4 87: Đầu vào của api/TypeOfFilm/{typeId}/films: Get

STT Tên thuộc tính Kiểu Ghi chú

1 data List Danh sách dữ liệu trả về

3 typeName String Tên thể loại phim

5 openingDay Datetime Thời gian công chiếu

6 director String Tên đạo diễn

7 time String Thời lượng phim

8 image String Đường dẫn ảnh của phim

9 typeId Int Mã thể loại phim

10 description String Mô tả của phim

11 totalItem Int Số lượng dữ liệu trả về

12 page Int Vị trí của trang

13 pageSize Int Số lượng dữ liệu trong một trang

Bảng 4 88: Đầu ra của api/TypeOfFilm/{typeId}/films: Get

User

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 page Int Mặc định là 0 Vị trí của trang

2 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

STT Tên thuộc tính Kiểu Ghi chú

1 data List Danh sách dữ liệu người dùng trả về

2 id Int Mã người dùng

3 roles List Danh sách dữ liệu vai trò trả về

4 id Int Mã vai trò

5 name String Tên vai trò

6 userName String Tên đăng nhập

7 name String Tên người dùng

8 phone String Số điện thoại người dùng

10 address String Địa chỉ của người dùng

11 dateOfBirth Datetime Ngày sinh của người dùng

12 totalItem Int Số lượng dữ liệu người dùng trả về

13 page Int Vị trí của trang

14 pageSize Int Số lượng dữ liệu trong một trang

Bảng 4 90: Đầu ra của api/User: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 userName String Khác null Tên đăng nhập

2 name String Khác null Tên người dùng

3 phone String Khác null Số điện thoại người dùng

5 address String Khác null Địa chỉ của người dùng

Khác null Ngày sinh của người dùng

Bảng 4 91: Đầu vào của api/User: Post

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã người dùng

Bảng 4 92: Đầu vào của api/User/{id}: Get

STT Tên thuộc tính Kiểu Ghi chú

1 id Int Mã người dùng

2 roles List Danh sách dữ liệu vai trò trả về

3 id Int Mã vai trò

4 name String Tên vai trò

5 userName String Tên đăng nhập

6 name String Tên người dùng

7 phone String Số điện thoại người dùng

9 address String Địa chỉ của người dùng

10 dateOfBirth Datetime Ngày sinh của người dùng

Bảng 4 93: Đầu ra của api/User/{id}: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã người dùng

2 name String Khác null Tên người dùng

3 phone String Khác null Số điện thoại người dùng

4 password String Khác null Mật khẩu

5 address String Khác null Địa chỉ của người dùng

Khác null Ngày sinh của người dùng

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 id Int Khác null Mã người dùng

Bảng 4 95: Đầu vào của api/User/{id}: Delete

4.12.6 Api/User/{search}/users: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 search String Khác null Tên người dùng, địa chỉ, tên đăng nhập

2 page Int Mặc định là 0 Vị trí của trang

3 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

Bảng 4 96: Đầu vào của api/User/{search}/users: Get

STT Tên thuộc tính Kiểu Ghi chú

1 data List Danh sách dữ liệu người dùng trả về

2 id Int Mã người dùng

3 roles List Danh sách dữ liệu vai trò trả về

4 id Int Mã vai trò

5 name String Tên vai trò

6 userName String Tên đăng nhập

7 name String Tên người dùng

8 phone String Số điện thoại người dùng

10 address String Địa chỉ của người dùng

11 dateOfBirth Datetime Ngày sinh của người dùng

12 totalItem Int Số lượng dữ liệu người dùng trả về

13 page Int Vị trí của trang

Bảng 4 97: Đầu ra của api/User/{search}/users: Get

UserRole

Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 page Int Mặc định là 0 Vị trí của trang

2 pageSize Int Mặc định là 10 Số lượng dữ liệu trong một trang

Bảng 4 98: Đầu vào của api/UserRole: Get

STT Tên thuộc tính Kiểu Ghi chú

1 data List Danh sách dữ liệu trả về

2 userId Int Mã người dùng

3 roleId Int Mã vai trò người dùng

4 totalItem Int Số lượng dữ liệu người dùng trả về

5 page Int Vị trí của trang

6 pageSize Int Số lượng dữ liệu trong một trang

Bảng 4 99: Đầu ra của api/UserRole: Get

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 userId Int Khác null Mã người dùng

2 roleId Int Khác null Mã vai trò người dùng

Bảng 4 100: Đầu vào của api/UserRole: Post

STT Tên thuộc tính Kiểu Ràng buộc Ghi chú

1 userId Int Khác null Mã người dùng

2 roleId Int Khác null Mã vai trò người dùng

Bảng 4 101: Đầu vào của api/UserRole/DeleteUserRole: Delete

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

- Trong quá trình thực tập vừa qua em đã được học và tìm hiểu nhiều hơn về ngôn ngữ lập trình C# và ASP.NET Framework từ đó giúp em nắm được nhiều kiến thức hơn trong quá trình học tập và công việc sau này của mình.

- Nâng cao kỹ năng viết email, CV, kỹ năng làm việc nhóm, kỹ năng thuyết trình,…

- Vì thời gian thực tập ngắn chỉ trong vòng 2 tháng nên em vẫn chưa học tập được nhiều về ASP.NET Framework

- Về kiến thức thì em vẫn còn nhiều điều chưa biết và chỉ mới dừng lại ở những kiến thức cơ bản

- Trong tương lai, em sẽ cố gắng học hỏi thêm kiến thức để hoàn thiện một trang web có thể chạy được đầy đủ các chức năng cần có.

- Để làm được những điều đó, em sẽ xây dựng cho bản thân một lộ trình học hiệu quả, cố gắng trau dồi thêm kiến thức, học hỏi từ nhiều nguồn và nỗ lực nhiều hơn nữa Hiểu sâu cốt lõi dự án cần gì, làm như thế nào nhằm đáp ứng được nhu cầu của người dùng.

1 Get started with ASP.NET Core | Microsoft Learn

2 LINQ- Ngôn Ngữ Truy Vấn Tích Hợp Không Thể Không Biết (codelearn.io)

3 .NET Core REST API With Swagger (c-sharpcorner.com)

4 pokemon-review-api/PokemonReviewApp at master ã teddysmithdev/pokemon- review-api ã GitHub

5 freecousre-webapi-net5/MyWebApiApp/MyWebApiApp/Services/LoaiRepository.cs at 06_Filtering_Sorting_Paging ã hienlth-online/freecousre-webapi-net5 ã GitHub

Ngày đăng: 12/12/2023, 19:47

HÌNH ẢNH LIÊN QUAN

Hình 1. 1: Logo công ty TMA Solutions Bình Định - Website quản lý rạp chiếu phim
Hình 1. 1: Logo công ty TMA Solutions Bình Định (Trang 15)
Hỡnh 1. 2:  Giỏ trị cốt lừi của TMA Solutions - Website quản lý rạp chiếu phim
nh 1. 2: Giỏ trị cốt lừi của TMA Solutions (Trang 16)
Hình 3. 1: Sơ đồ use case quản lý rạp chiếu phim - Website quản lý rạp chiếu phim
Hình 3. 1: Sơ đồ use case quản lý rạp chiếu phim (Trang 26)
Hình 3. 2: Sơ đồ ERD - Website quản lý rạp chiếu phim
Hình 3. 2: Sơ đồ ERD (Trang 27)
Bảng 3. 3: Mô tả chi tiết bảng User - Website quản lý rạp chiếu phim
Bảng 3. 3: Mô tả chi tiết bảng User (Trang 29)
Bảng Customer - Website quản lý rạp chiếu phim
ng Customer (Trang 29)
Bảng 3. 5: Mô tả chi tiết bảng Bill - Website quản lý rạp chiếu phim
Bảng 3. 5: Mô tả chi tiết bảng Bill (Trang 30)
Bảng Ticket - Website quản lý rạp chiếu phim
ng Ticket (Trang 31)
Hình ảnh của phim - Website quản lý rạp chiếu phim
nh ảnh của phim (Trang 32)
Bảng 3. 9: Mô tả chi tiết bảng Seat - Website quản lý rạp chiếu phim
Bảng 3. 9: Mô tả chi tiết bảng Seat (Trang 33)
Bảng RefreshToken ST - Website quản lý rạp chiếu phim
ng RefreshToken ST (Trang 35)
Bảng 3. 18: Dto - Website quản lý rạp chiếu phim
Bảng 3. 18: Dto (Trang 39)
Bảng 4. 6: Đầu vào của api/Bill{id}: Delete - Website quản lý rạp chiếu phim
Bảng 4. 6: Đầu vào của api/Bill{id}: Delete (Trang 43)
Bảng 4. 19: Đầu ra của api/Customer/{id}/bills: Get - Website quản lý rạp chiếu phim
Bảng 4. 19: Đầu ra của api/Customer/{id}/bills: Get (Trang 49)
Bảng 4. 23: Đầu vào của api/Film/{id}: Get - Website quản lý rạp chiếu phim
Bảng 4. 23: Đầu vào của api/Film/{id}: Get (Trang 51)
Bảng 4. 26: Đầu vào của api/Film/{id}: Delete - Website quản lý rạp chiếu phim
Bảng 4. 26: Đầu vào của api/Film/{id}: Delete (Trang 52)
Bảng 4. 28: Đầu ra của api/Film/{name}/films: Get - Website quản lý rạp chiếu phim
Bảng 4. 28: Đầu ra của api/Film/{name}/films: Get (Trang 54)
Bảng 4. 38: Đầu vào của api/Role/{id}: Get - Website quản lý rạp chiếu phim
Bảng 4. 38: Đầu vào của api/Role/{id}: Get (Trang 59)
Bảng 4. 42: Đầu vào của api/Role/{id}/users: Get - Website quản lý rạp chiếu phim
Bảng 4. 42: Đầu vào của api/Role/{id}/users: Get (Trang 60)
Bảng 4. 59: Đầu ra của api/SeatStatus: Get - Website quản lý rạp chiếu phim
Bảng 4. 59: Đầu ra của api/SeatStatus: Get (Trang 67)
Bảng 4. 62: Đầu ra của api/SeatStatus/{id}: Get - Website quản lý rạp chiếu phim
Bảng 4. 62: Đầu ra của api/SeatStatus/{id}: Get (Trang 68)
Bảng 4. 65: Đầu vào của api/ShowTime: Get - Website quản lý rạp chiếu phim
Bảng 4. 65: Đầu vào của api/ShowTime: Get (Trang 69)
Bảng 4. 68: Đầu vào của api/ShowTime/{id}: Get - Website quản lý rạp chiếu phim
Bảng 4. 68: Đầu vào của api/ShowTime/{id}: Get (Trang 71)
Bảng 4. 69: Đầu ra của api/ShowTime/{id}: Get - Website quản lý rạp chiếu phim
Bảng 4. 69: Đầu ra của api/ShowTime/{id}: Get (Trang 72)
Bảng 4. 77: Đầu ra của api/Ticket: Get - Website quản lý rạp chiếu phim
Bảng 4. 77: Đầu ra của api/Ticket: Get (Trang 76)
Bảng 4. 80: Đầu vào của api/TypeOfFilm: Get - Website quản lý rạp chiếu phim
Bảng 4. 80: Đầu vào của api/TypeOfFilm: Get (Trang 77)
Bảng 4. 90: Đầu ra của api/User: Get - Website quản lý rạp chiếu phim
Bảng 4. 90: Đầu ra của api/User: Get (Trang 82)
Bảng 4. 93: Đầu ra của api/User/{id}: Get - Website quản lý rạp chiếu phim
Bảng 4. 93: Đầu ra của api/User/{id}: Get (Trang 84)
Bảng 4. 97: Đầu ra của api/User/{search}/users: Get - Website quản lý rạp chiếu phim
Bảng 4. 97: Đầu ra của api/User/{search}/users: Get (Trang 87)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w