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