Пример #1
0
        public static void RetrieveImage(MagicCardBase card)
        {
            using (CardImagesDbContext context = new CardImagesDbContext(card.Edition))
            {
                var imageBytes = (from i in context.CardImages
                                  where i.uuid == card.uuid
                                  select i).FirstOrDefault()?.CardImageBytes;

                if (imageBytes != null)
                {
                    var img = ImageExtensions.FromByteArray(imageBytes);
                    EventManager.OnCardImageRetrieved(new CardImageRetrievedEventArgs {
                        uuid = card.uuid, CardImage = img
                    });
                }
                else
                {
                    string displayName;
                    if (card is FullInventoryCard fullInventoryCard)
                    {
                        displayName = fullInventoryCard.DisplayName;
                    }
                    else
                    {
                        displayName = card.DisplayName;
                    }
                    Globals.Forms.TasksForm.TaskManager.AddTask(new DownloadResourceTask {
                        AddFirst = true, Caption = $"Card Image: {displayName}", URL = $"http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid={card.multiverseId}&type=card", TaskObject = new BasicCardArgs {
                            uuid = card.uuid, MultiverseId = card.multiverseId, Edition = card.Edition
                        }, OnTaskCompleted = EventManager.ImageDownloadCompleted
                    });
                }
            }
        }
Пример #2
0
        public static void ImageDownloadCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            var args = e.Result as CardResourceArgs;

            try
            {
                using (CardImagesDbContext context = new CardImagesDbContext(args.Edition))
                {
                    context.Add(new DbCardImage {
                        uuid = args.uuid, CardImageBytes = args.Data
                    });
                    context.SaveChanges();
                }
                var img = ImageExtensions.FromByteArray(args.Data);
                OnCardImageRetrieved(new CardImageRetrievedEventArgs {
                    uuid = args.uuid, MultiverseId = args.MultiverseId, CardImage = img
                });
            }
            catch (Exception ex) { DebugOutput.WriteLine(ex.ToString()); }
        }