Rule of thumb: just await / async from top to down.
To deeply understand async await in .NET Core , please follow the following resources:
1. https://channel9.msdn.com/Events/TechDays/Techdays-2014-the-Netherlands/Async-programming-deep-dive – to gain inner knowledge about what code is async / await
2. Read https://blog.stephencleary.com/2012/02/async-and-await.html to have started into async await
3. Read MSDN for a better understanding : https://msdn.microsoft.com/en-us/magazine/jj991977.aspx?f=255&MSPPError=-2147217396
4. Common pitfalls in ASP.NET Framework( not in console! ) with async await: https://blog.stephencleary.com/2012/07/dont-block-on-async-code.html
5. No problem in ASP.NET Core: https://blog.stephencleary.com/2017/03/aspnetcore-synchronization-context.html
Happy reading !