Difference between await & GetAwaiter()/GetResult()

I'm actually doing a simple task that checks if a role exists in the database and create it if the role doesn't exists.

Code:
if (!_roleManager.RoleExistsAsync(SD.Role_Customer).GetAwaiter().GetResult())
  {
    _roleManager.CreateAsync(new IdentityRole(SD.Role_User)).GetAwaiter().GetResult();
    _roleManager.CreateAsync(new IdentityRole(SD.Role_Moderator)).GetAwaiter().GetResult();
    _roleManager.CreateAsync(new IdentityRole(SD.Role_Admin)).GetAwaiter().GetResult();
    _roleManager.CreateAsync(new IdentityRole(SD.Role_Invited)).GetAwaiter().GetResult();
  }


Here's how it looks like with await:
if (!await _roleManager.RoleExistsAsync(SD.Role_Customer).GetAwaiter().GetResult())
  {
    await _roleManager.CreateAsync(new IdentityRole(SD.Role_User));
    await _roleManager.CreateAsync(new IdentityRole(SD.Role_Moderator));
    await _roleManager.CreateAsync(new IdentityRole(SD.Role_Admin));
    await _roleManager.CreateAsync(new IdentityRole(SD.Role_Invited));
  }
Was this page helpful?