Skip to content

Commit b9d8f27

Browse files
author
breno.dev
committed
Asynchronous operations using Tasks (async, await)
1 parent b7b861b commit b9d8f27

File tree

3 files changed

+36
-33
lines changed

3 files changed

+36
-33
lines changed

SalesWebMvc/Controllers/SellersController.cs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,44 +22,44 @@ public SellersController(SellerService sellerService, DepartmentService departme
2222
_departmentService = departmentService;
2323
}
2424

25-
public IActionResult Index()
25+
public async Task<IActionResult> Index()
2626
{
27-
var list = _sellerService.FindAll();
27+
var list = await _sellerService.FindAllAsync();
2828
return View(list);
2929
}
3030

31-
public IActionResult Create()
31+
public async Task<IActionResult> Create()
3232
{
33-
var departments = _departmentService.FindAll();
33+
var departments = await _departmentService.FindAllAsync();
3434
var viewModel = new SellerFormViewModel { Departments = departments };
3535
return View(viewModel);
3636
}
3737

3838

3939
[HttpPost]
4040
[ValidateAntiForgeryToken]
41-
public IActionResult Create(Seller seller)
41+
public async Task <IActionResult> Create(Seller seller)
4242
{
4343
if (!ModelState.IsValid)
4444
{
45-
var departments = _departmentService.FindAll();
45+
var departments = await _departmentService.FindAllAsync();
4646
var viewModel = new SellerFormViewModel { Seller = seller, Departments = departments };
4747
return View(seller);
4848
}
4949

5050

51-
_sellerService.Insert(seller);
51+
await _sellerService.InsertAsync(seller);
5252
return RedirectToAction(nameof(Index));
5353
}
5454

55-
public IActionResult Delete(int? id)
55+
public async Task<IActionResult> Delete(int? id)
5656
{
5757
if ( id == null)
5858
{
5959
return RedirectToAction(nameof(Error), new { message = "Id not provided"});
6060
}
6161

62-
var obj = _sellerService.FindById(id.Value);
62+
var obj = await _sellerService.FindByIdAsync(id.Value);
6363
if (obj == null)
6464
{
6565
return RedirectToAction(nameof(Error), new { message = "Id not found" });
@@ -70,52 +70,52 @@ public IActionResult Delete(int? id)
7070

7171
[HttpPost]
7272
[AutoValidateAntiforgeryToken]
73-
public IActionResult Delete(int id)
73+
public async Task <IActionResult> Delete(int id)
7474
{
75-
_sellerService.Remove(id);
75+
await _sellerService.RemoveAsync(id);
7676
return RedirectToAction(nameof(Index));
7777
}
7878

79-
public IActionResult Details(int? id)
79+
public async Task <IActionResult> Details(int? id)
8080
{
8181
if (id == null)
8282
{
8383
return RedirectToAction(nameof(Error), new { message = "Id not provided" });
8484
}
8585

86-
var obj = _sellerService.FindById(id.Value);
86+
var obj = await _sellerService.FindByIdAsync(id.Value);
8787
if (obj == null)
8888
{
8989
return RedirectToAction(nameof(Error), new { message = "Id not found" });
9090
}
9191
return View(obj);
9292
}
9393

94-
public IActionResult Edit(int? id)
94+
public async Task <IActionResult> Edit(int? id)
9595
{
9696
if (id == null)
9797
{
9898
return RedirectToAction(nameof(Error), new { message = "Id not provided" });
9999
}
100100

101-
var obj = _sellerService.FindById(id.Value);
101+
var obj = await _sellerService.FindByIdAsync(id.Value);
102102
if (obj == null)
103103
{
104104
return RedirectToAction(nameof(Error), new { message = "Id not found" });
105105
}
106106

107-
List<Department> departments = _departmentService.FindAll();
107+
List<Department> departments = await _departmentService.FindAllAsync();
108108
SellerFormViewModel viewModel = new SellerFormViewModel { Seller = obj, Departments = departments };
109109
return View(viewModel);
110110
}
111111

112112
[HttpPost]
113113
[ValidateAntiForgeryToken]
114-
public IActionResult Edit(int id, Seller seller)
114+
public async Task <IActionResult> Edit(int id, Seller seller)
115115
{
116116
if (!ModelState.IsValid)
117117
{
118-
var departments = _departmentService.FindAll();
118+
var departments = await _departmentService.FindAllAsync();
119119
var viewModel = new SellerFormViewModel { Seller = seller, Departments = departments };
120120
return View(seller);
121121
}
@@ -127,7 +127,7 @@ public IActionResult Edit(int id, Seller seller)
127127

128128
try
129129
{
130-
_sellerService.Update(seller);
130+
await _sellerService.UpdateAsync(seller);
131131
return RedirectToAction(nameof(Index));
132132
}
133133
catch(NotFoundException e)

SalesWebMvc/Services/DepartmentService.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Collections.Generic;
44
using System.Linq;
55
using System.Threading.Tasks;
6+
using Microsoft.EntityFrameworkCore;
67

78
namespace SalesWebMvc.Services
89
{
@@ -15,9 +16,9 @@ public DepartmentService(SalesWebMvcContext context)
1516
_context = context;
1617
}
1718

18-
public List<Department> FindAll()
19+
public async Task<List<Department>> FindAllAsync()
1920
{
20-
return _context.Department.OrderBy(x => x.Name).ToList();
21+
return await _context.Department.OrderBy(x => x.Name).ToListAsync();
2122
}
2223
}
2324
}

SalesWebMvc/Services/SellerService.cs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,40 +17,42 @@ public SellerService(SalesWebMvcContext context)
1717
_context = context;
1818
}
1919

20-
public List<Seller> FindAll()
20+
public async Task<List<Seller>> FindAllAsync()
2121
{
22-
return _context.Seller.ToList();
22+
return await _context.Seller.ToListAsync();
2323
}
2424

25-
public void Insert(Seller obj)
25+
public async Task InsertAsync(Seller obj)
2626
{
2727
_context.Add(obj);
28-
_context.SaveChanges();
28+
await _context.SaveChangesAsync();
2929
}
3030

31-
public Seller FindById(int id)
31+
public async Task<Seller> FindByIdAsync(int id)
3232
{
33-
return _context.Seller.Include(obj => obj.Department).FirstOrDefault(obj => obj.Id == id);
33+
return await _context.Seller.Include(obj => obj.Department).FirstOrDefaultAsync(obj => obj.Id == id);
3434
}
3535

36-
public void Remove(int id)
36+
public async Task RemoveAsync(int id)
3737
{
38-
var obj = _context.Seller.Find(id);
38+
var obj = await _context.Seller.FindAsync(id);
3939
_context.Seller.Remove(obj);
40-
_context.SaveChanges();
40+
await _context.SaveChangesAsync();
4141
}
4242

43-
public void Update(Seller obj)
43+
public async Task UpdateAsync(Seller obj)
4444
{
45-
if (!_context.Seller.Any(x => x.Id == obj.Id))
45+
bool hasAny = await _context.Seller.AnyAsync(x => x.Id == obj.Id);
46+
47+
if (!hasAny)
4648
{
4749
throw new NotFoundException("Id not found");
4850
}
4951
try
5052
{
5153

5254
_context.Update(obj);
53-
_context.SaveChanges();
55+
await _context.SaveChangesAsync();
5456
}
5557
catch (DbUpdateConcurrencyException e)
5658
{

0 commit comments

Comments
 (0)