Пример #1
0
        public void TestQueryEventsByNoPlayerOrTeam()
        {
            LMPlayer messi = new LMPlayer {
                Name = "Messi"
            };
            LMTimelineEvent evt = new LMTimelineEvent();

            evt.Players.Add(messi);
            storage.Store(evt);
            evt = new LMTimelineEvent();
            storage.Store(evt);

            QueryFilter filter     = new QueryFilter();
            LMPlayer    nullPlayer = null;
            LMTeam      nullTeam   = null;

            filter.Add("Player", nullPlayer);
            Assert.AreEqual(1, storage.Retrieve <LMTimelineEvent> (filter).Count());

            filter = new QueryFilter();
            filter.Add("Team", nullTeam);
            Assert.AreEqual(2, storage.Retrieve <LMTimelineEvent> (filter).Count());

            filter = new QueryFilter();
            QueryFilter teamsAndPlayersFilter = new QueryFilter {
                Operator = QueryOperator.Or
            };

            filter.Children.Add(teamsAndPlayersFilter);
            teamsAndPlayersFilter.Add("Team", nullTeam);
            teamsAndPlayersFilter.Add("Player", nullPlayer);
            filter.Operator = QueryOperator.Or;
            Assert.AreEqual(2, storage.Retrieve <LMTimelineEvent> (filter).Count());
        }
        public void ReloadStats(LMPlayer player)
        {
            PlayerStats playerStats;
            TreeIter    iter;
            TreePath    selected = null;

            playerStats = pstats.GetPlayerStats(player);

            treeview.Selection.GetSelected(out iter);
            if (store.IterIsValid(iter))
            {
                selected = store.GetPath(iter);
            }

            store.Clear();
            foreach (PlayerEventTypeStats petats in playerStats.PlayerEventStats)
            {
                store.AppendValues(petats, petats.EventType.Name);
            }

            /* Keep the selected category for when we reload the stats changing players */
            if (selected != null)
            {
                store.GetIter(out iter, selected);
            }
            else
            {
                store.GetIterFirst(out iter);
            }
            treeview.Selection.SelectIter(iter);
            categoryviewer.LoadStats(store.GetValue(iter, 0) as PlayerEventTypeStats);
        }
        public void ViewModelFactoryService_CreateLMPlayerVM()
        {
            var model = new LMPlayer();
            var vm    = factoryService.CreateViewModel <PlayerVM, Player> (model);

            Assert.IsTrue(vm is LMPlayerVM);
        }
Пример #4
0
        public static void RenderSubstitution(Color color, Time evt, LMPlayer playerIn, LMPlayer playerOut, bool selected,
                                              bool isExpanded, IDrawingToolkit tk, IContext context, Area backgroundArea,
                                              Area cellArea, CellState state)
        {
            Point  selectPoint, textPoint, imagePoint, circlePoint;
            Point  inPoint, imgPoint, outPoint, timePoint;
            double textWidth;

            if (subsImage == null)
            {
                subsImage = App.Current.ResourcesLocator.LoadImage(StyleConf.SubsIcon);
            }
            tk.Context = context;
            tk.Begin();

            RenderTimelineEventBase(color, null, selected, null, tk, context, backgroundArea, cellArea, state,
                                    out selectPoint, out textPoint, out imagePoint, out circlePoint, out textWidth);
            inPoint  = textPoint;
            imgPoint = new Point(textPoint.X + StyleConf.ListImageWidth + StyleConf.ListRowSeparator, textPoint.Y);
            outPoint = new Point(imgPoint.X + 20 + StyleConf.ListRowSeparator, imgPoint.Y);
            RenderPlayer(tk, playerIn, inPoint);
            tk.DrawImage(imgPoint, 20, cellArea.Height, subsImage, ScaleMode.AspectFit);
            RenderPlayer(tk, playerOut, outPoint);

            timePoint        = new Point(outPoint.X + StyleConf.ListImageWidth + StyleConf.ListRowSeparator, textPoint.Y);
            tk.FontSize      = 10;
            tk.FontWeight    = FontWeight.Normal;
            tk.StrokeColor   = App.Current.Style.PaletteSelected;
            tk.FontAlignment = FontAlignment.Left;
            tk.DrawText(timePoint, 100, cellArea.Height, evt.ToSecondsString());
            RenderSeparationLine(tk, context, backgroundArea);
            tk.End();
        }
Пример #5
0
        public void TestPlayingPlayers()
        {
            LMTeam   t = new LMTeam();
            LMPlayer p1, p2, p3;

            t.Name     = "test";
            t.TeamName = "team";

            Assert.AreEqual(t.CalledPlayersList.Count, 0);

            p1 = new LMPlayer {
                Name = "P1", Playing = true
            };
            p2 = new LMPlayer {
                Name = "P2", Playing = false
            };
            p3 = new LMPlayer {
                Name = "P3", Playing = true
            };
            t.List.Add(p1);
            Assert.AreEqual(t.CalledPlayersList.Count, 1);
            t.List.Add(p2);
            Assert.AreEqual(t.CalledPlayersList.Count, 1);
            t.List.Add(p3);
            Assert.AreEqual(t.CalledPlayersList.Count, 2);
            Assert.AreEqual(t.CalledPlayersList [0], p1);
            Assert.AreEqual(t.CalledPlayersList [1], p3);
        }
Пример #6
0
        public void TestToString()
        {
            LMPlayer player = new LMPlayer {
                Name = "andoni", LastName = "morales", Number = 1
            };

            Assert.AreEqual("1-andoni morales", player.ToString());
            player.NickName = "ylatuya";
            Assert.AreEqual("1-ylatuya", player.ToString());
        }
Пример #7
0
        void HandleCursorChanged(object sender, EventArgs e)
        {
            TreeIter iter;

            treeview1.Selection.GetSelected(out iter);
            current = store.GetValue(iter, 1) as LMPlayer;
            if (current != null)
            {
                categoriesviewer.ReloadStats(current);
            }
        }
Пример #8
0
        public void TestQueryEventsByPlayer()
        {
            LMPlayer andoni = new LMPlayer {
                Name = "Andoni"
            };
            LMPlayer jorge = new LMPlayer {
                Name = "Jorge"
            };
            LMPlayer victor = new LMPlayer {
                Name = "Victor"
            };
            LMPlayer josep = new LMPlayer {
                Name = "Josep"
            };
            LMPlayer davide = new LMPlayer {
                Name = "Davide"
            };
            LMPlayer messi = new LMPlayer {
                Name = "Messi"
            };
            LMPlayer ukelele = new LMPlayer {
                Name = "ukelele"
            };

            var players = new List <LMPlayer> {
                andoni, jorge, victor, josep, davide
            };

            foreach (LMPlayer player in players)
            {
                LMTimelineEvent evt = new LMTimelineEvent();
                evt.Players.Add(player);
                evt.Players.Add(messi);
                storage.Store(evt);
            }

            QueryFilter filter = new QueryFilter();

            filter.Add("Player", messi);
            Assert.AreEqual(5, storage.Retrieve <LMTimelineEvent> (filter).Count());

            filter.Add("Player", andoni);
            Assert.AreEqual(1, storage.Retrieve <LMTimelineEvent> (filter).Count());

            filter.Add("Player", andoni, jorge, josep);
            Assert.AreEqual(3, storage.Retrieve <LMTimelineEvent> (filter).Count());

            filter.Add("Player", victor, ukelele);
            Assert.AreEqual(1, storage.Retrieve <LMTimelineEvent> (filter).Count());

            filter.Add("Player", players);
            Assert.AreEqual(5, storage.Retrieve <LMTimelineEvent> (filter).Count());
        }
Пример #9
0
        static void RenderPlayer(IDrawingToolkit tk, LMPlayer p, Point imagePoint)
        {
            PlayerView po = App.Current.ViewLocator.Retrieve("PlayerView") as PlayerView;

            // FIXME: Remove it with everything is ported to MVVM
            po.Player = new LMPlayerVM {
                Model = p
            };
            po.Position = imagePoint;
            po.Size     = StyleConf.ListImageWidth - 2;
            po.Draw(tk, null);
            po.Dispose();
        }
Пример #10
0
        Image PlayerPhoto(LMPlayer p)
        {
            Image playerImage;

            if (p.Photo != null)
            {
                playerImage = p.Photo;
            }
            else
            {
                playerImage = App.Current.ResourcesLocator.LoadIcon("lm-player-pic", PLAYER_SIZE);
            }
            return(playerImage);
        }
Пример #11
0
        public void TestPhoto()
        {
            LMPlayer player = new LMPlayer {
                Name        = "andoni", Position = "runner",
                Number      = 5, Birthday = new DateTime(1984, 6, 11),
                Nationality = "spanish", Height = 1.73f, Weight = 70,
                Playing     = true
            };

            player.Photo = Utils.LoadImageFromFile();
            Utils.CheckSerialization(player);
            Assert.AreEqual(player.Photo.Width, 16);
            Assert.AreEqual(player.Photo.Height, 16);
        }
Пример #12
0
 public PlayerStats(LMProject project, EventsFilter filter, LMPlayer player)
 {
     this.project     = project;
     this.filter      = filter;
     this.Player      = player;
     PlayerEventStats = new List <PlayerEventTypeStats> ();
     foreach (EventType evtType in project.EventTypes)
     {
         if (!(evtType is SubstitutionEventType))
         {
             PlayerEventStats.Add(new PlayerEventTypeStats(project, filter, player, evtType));
         }
     }
     UpdateTimePlayed();
 }
Пример #13
0
        public Player AddDefaultItem(int i)
        {
            var p = new LMPlayer {
                Name     = "Player " + (i + 1).ToString(),
                Birthday = new DateTime(DateTime.Now.Year - 25, 6, 1),
                Height   = 1.80f,
                Weight   = 80,
                Number   = i + 1,
                Position = "",
                Photo    = null,
                Playing  = true,
            };

            List.Insert(i, p);
            return(p);
        }
Пример #14
0
        void TagPlayer()
        {
            int playerNumber;

            if (int.TryParse(this.playerNumber, out playerNumber))
            {
                LMTeam team = taggedTeam == TeamType.LOCAL ? openedProject.LocalTeamTemplate :
                              openedProject.VisitorTeamTemplate;
                LMPlayer player = team.Players.FirstOrDefault(p => p.Number == playerNumber);
                if (player != null)
                {
                    //analysisWindow.TagPlayer (player);
                }
            }
            inPlayerTagging   = false;
            this.playerNumber = "";
        }
Пример #15
0
        public void TestListPlayers()
        {
            foreach (string n in new [] { "andoni", "aitor", "xabi", "iñaki" })
            {
                foreach (string f in new [] { "gorriti", "zabala", "otegui" })
                {
                    foreach (string r in new [] { "cholo", "bobi", "tolai" })
                    {
                        LMPlayer p = new LMPlayer {
                            Name = n, LastName = f, NickName = r
                        };
                        storage.Store(p);
                    }
                }
            }

            IEnumerable <LMPlayer> players = storage.RetrieveAll <LMPlayer> ();

            Assert.AreEqual(36, players.Count());

            QueryFilter filter = new QueryFilter();

            filter.Add("Name", "andoni");
            players = storage.Retrieve <LMPlayer> (filter);
            Assert.AreEqual(9, players.Count());

            filter = new QueryFilter();
            filter.Add("Name", "andoni");
            filter.Add("LastName", "zabala");
            players = storage.Retrieve <LMPlayer> (filter);
            Assert.AreEqual(3, players.Count());

            filter = new QueryFilter();
            filter.Add("Name", "andoni", "aitor");
            players = storage.Retrieve <LMPlayer> (filter);
            Assert.AreEqual(18, players.Count());

            filter = new QueryFilter();
            filter.Add("Name", "andoni", "aitor");
            filter.Add("LastName", "zabala");
            players = storage.Retrieve <LMPlayer> (filter);
            Assert.AreEqual(6, players.Count());
        }
Пример #16
0
        protected override void UpdateSelection(TreeIter iter, bool active)
        {
            TreeStore store  = Model as TreeStore;
            LMPlayer  player = (LMPlayer)store.GetValue(iter, COL_VALUE);

            /* Check all children */
            if (player == localTeam || player == visitorTeam)
            {
                TreeIter child;
                store.IterChildren(out child, iter);

                filter.IgnoreUpdates = true;
                while (store.IterIsValid(child))
                {
                    LMPlayer childPlayer = (LMPlayer)store.GetValue(child, COL_VALUE);
                    filter.FilterPlayer(childPlayer, active);
                    store.SetValue(child, COL_ACTIVE, active);
                    store.IterNext(ref child);
                }
                filter.IgnoreUpdates = false;
            }
            else
            {
                filter.FilterPlayer(player, active);
                if (!active)
                {
                    TreeIter team;
                    /* Uncheck the team check button */
                    if (local.List.Contains(player))
                    {
                        team = localIter;
                    }
                    else
                    {
                        team = visitorIter;
                    }
                    store.SetValue(team, COL_ACTIVE, false);
                }
            }

            store.SetValue(iter, COL_ACTIVE, active);
            filter.Update();
        }
        public void AddEvent(LMTimelineEvent evt)
        {
            TreeIter piter;

            if (evt.Players == null)
            {
                return;
            }
            team.GetIterFirst(out piter);
            while (team.IterIsValid(piter))
            {
                LMPlayer player = team.GetValue(piter, 0) as LMPlayer;
                if (evt.Players.Contains(player))
                {
                    team.AppendValues(piter, evt);
                }
                team.IterNext(ref piter);
            }
        }
Пример #18
0
        public static void RenderPlayer(LMPlayer player, int count, bool isExpanded, IDrawingToolkit tk,
                                        IContext context, Area backgroundArea, Area cellArea)
        {
            Point  image, text;
            double textWidth;

            image = new Point(StyleConf.ListTextOffset, cellArea.Start.Y);
            text  = new Point(image.X + StyleConf.ListRowSeparator + StyleConf.ListImageWidth,
                              cellArea.Start.Y);
            textWidth = cellArea.Start.X + cellArea.Width - text.X;

            tk.Context = context;
            tk.Begin();
            RenderBackgroundAndText(isExpanded, tk, backgroundArea, text, textWidth, player.ToString());
            /* Photo */
            RenderPlayer(tk, player, image);
            RenderCount(isExpanded, player.Color, count, tk, backgroundArea, cellArea);
            RenderSeparationLine(tk, context, backgroundArea);
            tk.End();
        }
Пример #19
0
        public void TestTimelineEvent()
        {
            LMPlayer          p       = new LMPlayer();
            AnalysisEventType evtType = new AnalysisEventType();
            LMTimelineEvent   evt     = new LMTimelineEvent();

            Document             doc     = db.GetDocument(evt.ID.ToString());
            SerializationContext context = new SerializationContext(db, evt.GetType());

            context.Cache.AddReference(p);
            evt.Players.Add(p);
            evt.EventType = evtType;

            doc.Update((UnsavedRevision rev) => {
                JObject jo = DocumentsSerializer.SerializeObject(evt, rev, context);
                Assert.AreEqual(p.ID.ToString(), jo ["Players"] [0].Value <String> ());
                Assert.AreEqual(evtType.ID.ToString(), jo ["EventType"].Value <String> ());
                IDictionary <string, object> props = jo.ToObject <IDictionary <string, object> > ();
                rev.SetProperties(props);
                return(true);
            });

            /* LMPlayer has not been added to the db, as it was already referenced
             * by the IDReferenceResolver */
            Assert.AreEqual(2, db.DocumentCount);

            DocumentsSerializer.SaveObject(p, db);
            Assert.AreEqual(3, db.DocumentCount);

            LMTimelineEvent evt2 = storage.Retrieve <LMTimelineEvent> (evt.ID);

            Assert.IsNotNull(evt2.EventType);
            Assert.IsNotNull(evt2.DocumentID);

            storage.Delete(evt);
            Assert.AreEqual(3, db.DocumentCount);
            storage.Delete(p);
            Assert.AreEqual(2, db.DocumentCount);
            storage.Delete(evtType);
            Assert.AreEqual(1, db.DocumentCount);
        }
Пример #20
0
        void ClearPlayer()
        {
            ignoreChanges = true;

            playerframe.Sensitive = false;

            loadedPlayer = null;

            nameentry.Text         = "";
            lastnameentry.Text     = "";
            nicknameentry.Text     = "";
            positionentry.Text     = "";
            numberspinbutton.Value = 0;
            heightspinbutton.Value = 0;
            weightspinbutton.Value = 0;
            nationalityentry.Text  = "";
            bdaydatepicker.Date    = new DateTime();
            mailentry.Text         = "";
            playerimage.Image      = App.Current.ResourcesLocator.LoadIcon("lm-player-pic", PLAYER_SIZE);

            ignoreChanges = false;
        }
Пример #21
0
        void LoadPlayer(LMPlayer p)
        {
            ignoreChanges = true;

            loadedPlayer = p;

            nameentry.Text         = p.Name ?? "";
            lastnameentry.Text     = p.LastName ?? "";
            nicknameentry.Text     = p.NickName ?? "";
            positionentry.Text     = p.Position ?? "";
            numberspinbutton.Value = p.Number;
            heightspinbutton.Value = p.Height;
            weightspinbutton.Value = p.Weight;
            nationalityentry.Text  = p.Nationality ?? "";
            bdaydatepicker.Date    = p.Birthday;
            mailentry.Text         = p.Mail ?? "";
            playerimage.Image      = PlayerPhoto(p);

            playerframe.Sensitive = true;

            ignoreChanges = false;
        }
Пример #22
0
        public void TestPlayer()
        {
            LMPlayer player1 = new LMPlayer {
                Name        = "andoni", Position = "runner",
                Number      = 5, Birthday = new DateTime(1984, 6, 11),
                Nationality = "spanish", Height = 1.73f, Weight = 70,
                Playing     = true, Mail = "test@test", Color = Color.Red
            };

            player1.Photo = Utils.LoadImageFromFile();
            storage.Store(player1);
            Assert.AreEqual(2, db.DocumentCount);
            Assert.IsNotNull(db.GetExistingDocument(player1.ID.ToString()));
            LMPlayer player2 = storage.Retrieve <LMPlayer> (player1.ID);

            Assert.AreEqual(player1.ID, player2.ID);
            Assert.AreEqual(player1.ToString(), player2.ToString());
            Assert.AreEqual(player1.Photo.Width, player2.Photo.Width);
            Assert.IsNotNull(player2.DocumentID);
            storage.Delete(player1);
            Assert.AreEqual(1, db.DocumentCount);
        }
Пример #23
0
        public void TestSerialization()
        {
            LMPlayer player = new LMPlayer {
                Name        = "andoni", Position = "runner",
                Number      = 5, Birthday = new DateTime(1984, 6, 11),
                Nationality = "spanish", Height = 1.73f, Weight = 70,
                Playing     = true, Mail = "test@test", Color = Color.Red
            };

            Utils.CheckSerialization(player);

            LMPlayer newPlayer = Utils.SerializeDeserialize(player);

            Assert.AreEqual(player.Name, newPlayer.Name);
            Assert.AreEqual(player.Position, newPlayer.Position);
            Assert.AreEqual(player.Number, newPlayer.Number);
            Assert.AreEqual(player.Birthday, newPlayer.Birthday);
            Assert.AreEqual(player.Nationality, newPlayer.Nationality);
            Assert.AreEqual(player.Height, newPlayer.Height);
            Assert.AreEqual(player.Weight, newPlayer.Weight);
            Assert.AreEqual(player.Playing, newPlayer.Playing);
            Assert.AreEqual(player.Mail, newPlayer.Mail);
            Assert.IsNull(newPlayer.Color);
        }
Пример #24
0
        List <LMProject> CreateProjects()
        {
            LMPlayer andoni = new LMPlayer {
                Name = "Andoni"
            };
            LMPlayer jorge = new LMPlayer {
                Name = "Jorge"
            };
            LMPlayer victor = new LMPlayer {
                Name = "Victor"
            };
            LMPlayer josep = new LMPlayer {
                Name = "Josep"
            };
            LMPlayer davide = new LMPlayer {
                Name = "Davide"
            };
            LMPlayer saray = new LMPlayer {
                Name = "Saray"
            };
            LMPlayer ivan = new LMPlayer {
                Name = "Ivan"
            };
            LMPlayer adria = new LMPlayer {
                Name = "Adria"
            };
            LMTeam devteam = new LMTeam {
                Name = "DevTeam"
            };
            LMTeam qateam = new LMTeam {
                Name = "QA"
            };

            devteam.List.AddRange(new List <LMPlayer> {
                andoni,
                jorge,
                victor,
                josep,
                davide
            });
            qateam.List.AddRange(new List <LMPlayer> {
                saray,
                ivan,
                adria
            });
            LMDashboard dashbaord = LMDashboard.DefaultTemplate(5);
            var         projects  = new List <LMProject> ();

            for (int i = 0; i < 5; i++)
            {
                LMProject p = new LMProject();
                p.Dashboard           = dashbaord.Clone();
                p.LocalTeamTemplate   = devteam;
                p.VisitorTeamTemplate = qateam;
                p.Description         = new ProjectDescription();
                foreach (var player in devteam.List.Concat(qateam.List))
                {
                    foreach (var button in p.Dashboard.List.OfType <AnalysisEventButton> ())
                    {
                        LMTimelineEvent evt = p.AddEvent(button.EventType, new Time(0), new Time(10),
                                                         new Time(5), null) as LMTimelineEvent;
                        evt.Players.Add(player);
                        if (qateam.List.Contains(player))
                        {
                            evt.Teams.Add(qateam);
                        }
                        else
                        {
                            evt.Teams.Add(devteam);
                        }
                    }
                }
                projects.Add(p);
                storage.Store(p);
            }
            return(projects);
        }
Пример #25
0
 public PlayersFilterTreeView() : base()
 {
     visitorTeam    = new LMPlayer();
     localTeam      = new LMPlayer();
     HeadersVisible = false;
 }