public MonthlyBonusViewer(Dictionary <int, MonthlyBonus> bonus, int connectionnumber, int[] cards)
        {
            InitializeComponent();
            this.MaxHeight = SystemParameters.MaximizedPrimaryScreenHeight;
            cnumber        = connectionnumber;

            logger.Trace("{0} | {1} | {2}", bonus, connectionnumber, cards);

            foreach (var b in bonus)
            {
                logger.Trace("{0} {1}", b.Key, b.Value.Gift);
                BCA_MonthlyBonus widget = new BCA_MonthlyBonus(b.Value, b.Key, connectionnumber < b.Key, connectionnumber == b.Key);
                wp_bonus.Children.Add(widget);
            }
            current_bonus = bonus[connectionnumber];
            if (current_bonus.Type == BonusType.Booster)
            {
                current_bonus.Cards = cards;
            }

            btn_get.MouseLeftButtonDown += Btn_get_MouseLeftButtonDown;

            this.Loaded += MonthlyBonusViewer_Loaded;

            this.MouseDown += Window_MouseDown;
        }
        public BCA_MonthlyBonus(MonthlyBonus bonus, int day, bool isGray, bool isToday = false)
        {
            InitializeComponent();
            _isGray = isGray;
            try
            {
                switch (bonus.Type)
                {
                case BonusType.BP:
                    tb_left.Text     = bonus.Gift;
                    tb_right.Text    = "BPs";
                    img_bonus.Source = new BitmapImage(new Uri("pack://siteoforigin:,,,/Assets/Logo/BPLogo.png"));
                    break;

                case BonusType.PP:
                    tb_left.Text     = bonus.Gift;
                    tb_right.Text    = "PPs";
                    img_bonus.Source = new BitmapImage(new Uri("pack://siteoforigin:,,,/Assets/Logo/CoinPP.png"));
                    break;

                case BonusType.Avatar:
                    tb_left.Text     = "Avatar";
                    tb_right.Text    = bonus.Gift;
                    img_bonus.Source = FormExecution.AssetsManager.GetCustom(new Customization(CustomizationType.Avatar, Convert.ToInt32(bonus.Gift), false, ""));
                    break;

                case BonusType.Sleeve:
                    tb_left.Text     = "Sleeve";
                    tb_right.Text    = bonus.Gift;
                    img_bonus.Source = FormExecution.AssetsManager.GetCustom(new Customization(CustomizationType.Sleeve, Convert.ToInt32(bonus.Gift), false, ""));
                    break;

                case BonusType.Border:
                    tb_left.Text     = "Bordure";
                    tb_right.Text    = bonus.Gift;
                    img_bonus.Source = FormExecution.AssetsManager.GetCustom(new Customization(CustomizationType.Border, Convert.ToInt32(bonus.Gift), false, ""));
                    break;

                case BonusType.Partner:
                    tb_left.Text     = "Partenaire";
                    tb_right.Text    = bonus.Gift;
                    img_bonus.Source = FormExecution.AssetsManager.GetCustom(new Customization(CustomizationType.Partner, Convert.ToInt32(bonus.Gift), false, ""));
                    break;

                case BonusType.Title:
                    tb_left.Text     = "Titre";
                    tb_right.Text    = bonus.Gift;
                    img_bonus.Source = FormExecution.AssetsManager.GetPics(new string[] { "Assets", "Logo", "title_bonus.png" });
                    break;

                case BonusType.Card:
                    tb_left.Text     = "Carte";
                    tb_right.Text    = CardManager.GetCard(Convert.ToInt32(bonus.Gift)).Name;
                    img_bonus.Source = FormExecution.AssetsManager.GetPics(new string[] { "BattleCityAlpha", "pics", bonus.Gift + ".jpg" });
                    break;

                case BonusType.Booster:
                    tb_left.Text     = "Booster(s)";
                    tb_right.Text    = bonus.Gift;
                    img_bonus.Source = FormExecution.AssetsManager.GetImage(new string[] { "Booster", "pics", bonus.Gift + ".png" });
                    break;
                }
            }
            catch (Exception)
            {
                img_bonus.Source = FormExecution.AssetsManager.GetUnknownCardPic();
            }

            tb_day.Text = day.ToString();

            colorpic = img_bonus.Source as BitmapImage;
            if (isGray)
            {
                img_bonus.Source = GetGrayScalePic();
            }

            if (isToday)
            {
                bg_border.BorderThickness = new Thickness(5);
                bg_border.BorderBrush     = new SolidColorBrush(Colors.Red);
            }

            img_bonus.MouseEnter += Img_bonus_MouseEnter;
            img_bonus.MouseLeave += Img_bonus_MouseLeave;
        }