private void DownloadModule(ModuleInfo moduleInfo)
{
Argument.IsNotNull("moduleInfo", moduleInfo);
Log.Info("Downloading module '{0}' from '{1}'", moduleInfo.ModuleName, GetModuleUri(moduleInfo));
ModuleDownloading.SafeInvoke(this, () => new ModuleEventArgs(moduleInfo));
var uri = GetModuleUri(moduleInfo);
var webClient = new WebClient();
webClient.OpenReadCompleted += OnDownloadModuleCompleted;
webClient.OpenReadAsync(uri, moduleInfo);
}