My code looks like this:
public async Task<IHttpActionResult> Delete(int id)
{
var userId = Int32.Parse(User.Identity.GetUserId());
UserTest userTest = await db.UserTests.FindAsync(id);
if (userTest == null)
{
return NotFound();
}
if (userTest.UserId != userId)
{
return Unauthorized();
}
db.UserTests.Remove(userTest);
await db.SaveChangesAsync();
return Ok();
}
I think everything up to the db.SaveChangesAsync is okay but how can I confirm if the db.SaveChangesAsync works before doing a return Ok() ? Ideally I think I should be checking for exceptions and things but I am not sure how I could fit that into this code block.
From msdn:
public virtual Task<int> SaveChangesAsync()
Return Value Type: System.Threading.Tasks.Task A task that represents the asynchronous save operation. The task result contains the number of objects written to the underlying database.
Check if the result is greater than 0:
if(await db.SaveChangesAsync() > 0)
{
.....
}
More info here
Another option is to wrap this with try ... catch
block:
try
{
await db.SaveChangesAsync();
return Ok();
}
catch (Exception ex)
{
return NotFound(ex.Message);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With