Change async methods to execute all tasks at once

Using of Task.WhenAll with collection of tasks to execute them all at once
(await all instead of awaiting them each separatly which was practially
sync call using async-await keywords.