-
Notifications
You must be signed in to change notification settings - Fork 0
/
Controller.cs
107 lines (94 loc) · 2.98 KB
/
Controller.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using System.Net;
namespace SampleMySqlEfCore
{
[ApiController]
[Route("api/[controller]")]
public class BookController : ControllerBase
{
private readonly SampleDbContext mDbContext;
public BookController(SampleDbContext dbContext)
{
mDbContext = dbContext;
}
[HttpGet("GetBooks")]
public async Task<ActionResult<List<BookDTO>>> Get()
{
var list = await mDbContext.Books.Select(
s => new BookDTO
{
BookId = s.BookId,
Title = s.Title,
AuthorName = s.AuthorName,
PublicationDate = s.PublicationDate,
}
).ToListAsync();
if (list.Count < 0)
{
return NotFound();
}
else
{
return list;
}
}
[HttpGet("GetBookById")]
public async Task<ActionResult<BookDTO>> GetBookById(int bookId)
{
var book = await mDbContext.Books.Select(
s => new BookDTO
{
BookId = s.BookId,
Title = s.Title,
AuthorName = s.AuthorName,
PublicationDate = s.PublicationDate,
})
.FirstOrDefaultAsync(s => s.BookId == bookId);
if (book == null)
{
return NotFound();
}
else
{
return book;
}
}
[HttpPost("InsertBook")]
public async Task<HttpStatusCode> InsertBook(BookDTO book)
{
var entity = new Book()
{
BookId = book.BookId,
Title = book.Title,
AuthorName = book.AuthorName,
PublicationDate = book.PublicationDate,
};
mDbContext.Books.Add(entity);
await mDbContext.SaveChangesAsync();
return HttpStatusCode.OK;
}
[HttpPut("UpdateBook")]
public async Task<HttpStatusCode> UpdateBook(BookDTO book)
{
var entity = await mDbContext.Books.FirstOrDefaultAsync(s => s.BookId == book.BookId);
entity.Title = book.Title;
entity.AuthorName = book.AuthorName;
entity.PublicationDate = book.PublicationDate;
await mDbContext.SaveChangesAsync();
return HttpStatusCode.OK;
}
[HttpDelete("DeleteBook")]
public async Task<HttpStatusCode> DeleteBook(int bookId)
{
var entity = new Book()
{
BookId = bookId,
};
mDbContext.Books.Attach(entity);
mDbContext.Books.Remove(entity);
await mDbContext.SaveChangesAsync();
return HttpStatusCode.OK;
}
}
}