コード例 #1
0
 private static void DeckChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
 {
     if (e.NewValue != null)
     {
         DataModel.Deck         deck    = e.NewValue as DataModel.Deck;
         DeckLastGamesIndicator control = d as DeckLastGamesIndicator;
         deck.PropertyChanged += delegate {
             RefreshLastGamesIndicator(deck, control);
         };
         RefreshLastGamesIndicator(deck, control);
     }
 }
コード例 #2
0
        private static void NumberOfColumnsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            DeckLastGamesIndicator control = d as DeckLastGamesIndicator;

            control.grid.ColumnDefinitions.Clear();
            for (int i = 0; i < (int)e.NewValue; i++)
            {
                control.grid.ColumnDefinitions.Add(new ColumnDefinition()
                {
                    Width = new GridLength(1, GridUnitType.Star)
                });
            }
            DataModel.Deck deck = d.GetValue(DeckProperty) as DataModel.Deck;
            if (deck != null)
            {
                RefreshLastGamesIndicator(deck, control);
            }
        }
コード例 #3
0
        private static void RefreshLastGamesIndicator(DataModel.Deck deck, DeckLastGamesIndicator control)
        {
            IEnumerable <bool> wins = deck.DeckGames
                                      .OrderByDescending(g => g.Date)
                                      .Take(control.GamesCount)
                                      .Reverse()
                                      .Select(g => g.Outcome == DataModel.Enums.GameOutcome.Victory)
                                      .ToList();
            int col = 0;

            control.grid.Children.Clear();
            foreach (bool win in wins)
            {
                Rectangle r = new Rectangle();
                r.Fill = win ? Brushes.SeaGreen : Brushes.Brown;
                r.SetValue(Grid.ColumnProperty, col++);
                r.Height = LAST_GAME_INDICATOR_HEIGHT;
                r.Margin = new Thickness(LAST_GAME_INDICATOR_MARGIN, 0, LAST_GAME_INDICATOR_MARGIN, 0);
                control.grid.Children.Add(r);
            }
        }
        public void IEditableObjectImplementation001_CancelEdit()
        {
            Mock <IDeckClassSelectorViewModel> deckClassSelector = new Mock <IDeckClassSelectorViewModel>();

            EditGameViewModel model = new EditGameViewModel();

            DataModel.Game game = new DataModel.Game();

            model.Game = game;

            model.Game.ClearEventInvocations("PropertyChanged");

            PopulateObject(game, StartProp);

            TestContext.WriteLine("Begin Edit");
            model.BeginEdit();

            PopulateObject(game, EditProp);

            TestContext.WriteLine("Cancel Edit");
            model.CancelEdit();

            foreach (PropertyInfo p in game.GetType().GetProperties())
            {
                if (p.CanWrite)
                {
                    if (p.Name == "DeckId")
                    {
                        //deck id is handled different way, depends on Deck
                        DataModel.Deck staringDeck = (DataModel.Deck)StartProp[typeof(DataModel.Deck)];
                        Assert.AreEqual(staringDeck.DeckId, p.GetValue(game), "Failed validation of prop {0} of type {1}", p.Name, p.PropertyType);
                    }
                    else
                    {
                        Assert.AreEqual(StartProp[p.PropertyType], p.GetValue(game), "Failed validation of prop {0} of type {1}", p.Name, p.PropertyType);
                    }
                }
            }
        }