Catel.Modules.DownloadingModuleCatalog.OnModuleCatalogXmlCompleted C# (CSharp) Метод

OnModuleCatalogXmlCompleted() приватный статический Метод

Called when the web client has finished downloading.
private static OnModuleCatalogXmlCompleted ( object sender, DownloadStringCompletedEventArgs e ) : void
sender object The sender.
e System.Net.DownloadStringCompletedEventArgs The instance containing the event data.
Результат void
        private static void OnModuleCatalogXmlCompleted(object sender, DownloadStringCompletedEventArgs e)
        {
            var webClient = (WebClient) sender;
            webClient.DownloadStringCompleted -= OnModuleCatalogXmlCompleted;

            var userState = (Tuple<ModuleCatalog, Action<ModuleCatalog>>) e.UserState;
            var moduleCatalog = userState.Item1;
            var completedCallback = userState.Item2;

            if (e.Error != null)
            {
                Log.Error(e.Error, "An error occurred when downloading the module catalog xml");
            }
            else
            {
                using (var memoryStream = new MemoryStream())
                {
                    using (var writer = new StreamWriter(memoryStream))
                    {
                        writer.Write(e.Result);
                        writer.Flush();

                        memoryStream.Position = 0L;

                        var tempModuleCatalog = CreateFromXaml(memoryStream);
                        foreach (var module in tempModuleCatalog.Modules)
                        {
                            moduleCatalog.AddModule(module);
                        }
                    }
                }
            }

            if (completedCallback != null)
            {
                completedCallback(moduleCatalog);
            }
        }