예제 #1
0
        public void TestSerialization()
        {
            TeamTemplate t = new TeamTemplate();

            Utils.CheckSerialization(t);

            t.Name     = "test";
            t.TeamName = "team";
            t.List.Add(new Player {
                Name = "P1"
            });
            t.List.Add(new Player {
                Name = "P2"
            });
            t.List.Add(new Player {
                Name = "P3"
            });


            Utils.CheckSerialization(t);

            TeamTemplate newt = Utils.SerializeDeserialize(t);

            Assert.AreEqual(t.ID, newt.ID);
            Assert.AreEqual(t.Name, newt.Name);
            Assert.AreEqual(t.TeamName, newt.TeamName);
            Assert.AreEqual(t.List.Count, newt.List.Count);
            Assert.AreEqual(t.List[0].Name, newt.List[0].Name);
            Assert.AreEqual(t.List[1].Name, newt.List[1].Name);
            Assert.AreEqual(t.List[2].Name, newt.List[2].Name);
        }
예제 #2
0
        public void TestPlayingPlayers()
        {
            TeamTemplate t = new TeamTemplate();
            Player       p1, p2, p3;

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

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

            p1 = new Player {
                Name = "P1", Playing = true
            };
            p2 = new Player {
                Name = "P2", Playing = false
            };
            p3 = new Player {
                Name = "P3", Playing = true
            };
            t.List.Add(p1);
            Assert.AreEqual(t.PlayingPlayersList.Count, 1);
            t.List.Add(p2);
            Assert.AreEqual(t.PlayingPlayersList.Count, 1);
            t.List.Add(p3);
            Assert.AreEqual(t.PlayingPlayersList.Count, 2);
            Assert.AreEqual(t.PlayingPlayersList[0], p1);
            Assert.AreEqual(t.PlayingPlayersList[1], p3);
        }
예제 #3
0
        public TaggerDialog(Play play, TeamTemplate localTeamTemplate, TeamTemplate visitorTeamTemplate)
        {
            this.Build();

            tagsnotebook.Visible = false;

            this.localTeamTemplate = localTeamTemplate;
            this.visitorTeamTemplate = visitorTeamTemplate;

            taggerwidget1.SetData(play, localTeamTemplate.TeamName, visitorTeamTemplate.TeamName);

            /* Iterate over all subcategories, adding a widget only for the FastTag ones */
            foreach (var subcat in play.Category.SubCategories) {
                if (!subcat.FastTag)
                    continue;
                if (subcat is TagSubCategory) {
                    var tagcat = subcat as TagSubCategory;
                    AddTagSubcategory(tagcat, play.Tags);
                } else if (subcat is PlayerSubCategory) {
                    var tagcat = subcat as PlayerSubCategory;
                    AddPlayerSubcategory(tagcat, play.Players);
                } else if (subcat is TeamSubCategory) {
                    var tagcat = subcat as TeamSubCategory;
                    AddTeamSubcategory(tagcat, play.Teams,
                                       localTeamTemplate.TeamName,
                                       visitorTeamTemplate.TeamName);
                }
            }
        }
예제 #4
0
        public void SetTeam(TeamTemplate template, List <Play> plays)
        {
            TreeStore team;
            Dictionary <Player, TreeIter> playersDict = new Dictionary <Player, TreeIter>();

            Log.Debug("Updating teams models with template:" + template);
            team = new TreeStore(typeof(object));

            foreach (var player in template)
            {
                /* Add a root in the tree with the option name */
                var iter = team.AppendValues(player);
                playersDict.Add(player, iter);
                Log.Debug("Adding new player to the model: " + player);
            }

            foreach (var play in plays)
            {
                foreach (var player in play.Players.AllUniqueElements)
                {
                    if (playersDict.ContainsKey(player.Value))
                    {
                        team.AppendValues(playersDict[player.Value], new object[1] {
                            play
                        });
                        Log.Debug("Adding new play to player: " + player);
                    }
                }
            }
            playerstreeview.Model   = team;
            playerstreeview.Colors  = true;
            playerstreeview.Project = Project;
        }
예제 #5
0
 public Project()
 {
     _UUID               = System.Guid.NewGuid();
     timeline            = new List <Play>();
     Categories          = new Categories();
     LocalTeamTemplate   = new TeamTemplate();
     VisitorTeamTemplate = new TeamTemplate();
 }
예제 #6
0
 public override void SetFilter(PlaysFilter filter, Project project)
 {
     this.local       = project.LocalTeamTemplate;
     this.visitor     = project.VisitorTeamTemplate;
     localTeam.Name   = local.TeamName;
     visitorTeam.Name = visitor.TeamName;
     base.SetFilter(filter, project);
 }
예제 #7
0
 public Project()
 {
     _UUID = System.Guid.NewGuid();
     timeline = new List<Play>();
     Categories = new Categories();
     LocalTeamTemplate = new TeamTemplate();
     VisitorTeamTemplate = new TeamTemplate();
 }
예제 #8
0
        public void TagPlay(Play play, Categories categories, TeamTemplate local, TeamTemplate visitor, bool showAllTags)
        {
            TaggerDialog tg = new TaggerDialog(play, categories, local, visitor, showAllTags);

            tg.TransientFor = mainWindow as Gtk.Window;
            tg.Run();
            tg.Destroy();
        }
예제 #9
0
        public void TestCreateDefaultTemplate()
        {
            TeamTemplate t = TeamTemplate.DefaultTemplate(10);

            Assert.AreEqual(t.List.Count, 10);
            t.AddDefaultItem(8);
            Assert.AreEqual(t.List.Count, 11);
        }
예제 #10
0
        public static void ConvertTeamTemplate(string inputPath, string outputPath)
        {
            TeamTemplate team = SerializableObject.Load <TeamTemplate> (inputPath,
                                                                        SerializationType.Binary);
            var newteam = ConvertTeamTemplate(team, null);

            outputPath = FixPath(outputPath);
            LongoMatch.Core.Common.Serializer.Save(newteam, outputPath);
        }
예제 #11
0
        void MigrateTeamTemplates(TeamTemplate teamTemplate)
        {
            Version version = teamTemplate.Version;

            if (version == null || (version.Major == 2 && version.Minor == 0))
            {
                MigrateTeamTeamplate_2_0(teamTemplate);
            }
        }
예제 #12
0
        public void TestBenchPlayers()
        {
            TeamTemplate t = TeamTemplate.DefaultTemplate(15);

            t.FormationStr = "1-2-3-4";
            Assert.AreEqual(5, t.BenchPlayersList.Count);
            Assert.AreEqual(t.List[10], t.BenchPlayersList[0]);
            Assert.AreEqual(t.List[14], t.BenchPlayersList[4]);
        }
예제 #13
0
        public void TestStartingPlayers()
        {
            TeamTemplate t = TeamTemplate.DefaultTemplate(15);

            t.FormationStr = "1-2-3-4";
            Assert.AreEqual(10, t.StartingPlayersList.Count);
            Assert.AreEqual(t.List[0], t.StartingPlayersList[0]);
            Assert.AreEqual(t.List[9], t.StartingPlayersList[9]);
        }
예제 #14
0
        public PlayersTaggerWidget(PlayerSubCategory subcat, TeamTemplate local,
			TeamTemplate visitor, PlayersTagStore players)
        {
            this.Build ();
            CategoryLabel.Markup = "<b>" + subcat.Name + "</b>";
            tagger = new PlayersTagger();
            tagger.Load(subcat, local, visitor, players);
            tagger.Show();
            GtkAlignment.Add(tagger);
        }
 public PlayersTaggerWidget(PlayerSubCategory subcat, TeamTemplate local,
                            TeamTemplate visitor, PlayersTagStore players)
 {
     this.Build();
     CategoryLabel.Markup = "<b>" + subcat.Name + "</b>";
     tagger = new PlayersTagger();
     tagger.Load(subcat, local, visitor, players);
     tagger.Show();
     GtkAlignment.Add(tagger);
 }
예제 #16
0
        public void Load(PlayerSubCategory subcat, TeamTemplate local,
			TeamTemplate visitor, PlayersTagStore players)
        {
            this.subcat = subcat;
            this.local = local;
            this.visitor = visitor;
            this.players = players;
            SetPlayersInfo();
            UpdateSelectedPlayers();
        }
예제 #17
0
 public PlayersSelectionDialog(PlayerSubCategory subcat, TeamTemplate template,
                               PlayersTagStore players)
 {
     this.Build();
     this.subcat   = subcat;
     this.template = template;
     this.players  = players;
     SetPlayersInfo();
     UpdateSelectedPlayers();
 }
예제 #18
0
 public void Load(PlayerSubCategory subcat, TeamTemplate local,
                  TeamTemplate visitor, PlayersTagStore players)
 {
     this.subcat  = subcat;
     this.local   = local;
     this.visitor = visitor;
     this.players = players;
     SetPlayersInfo();
     UpdateSelectedPlayers();
 }
예제 #19
0
 public PlayersTaggerWidget(PlayerSubCategory subcat, TeamTemplate template,
                            PlayersTagStore players)
 {
     this.Build();
     this.subcat          = subcat;
     this.players         = players;
     this.template        = template;
     CategoryLabel.Markup = "<b>" + subcat.Name + "</b>";
     LoadTagsLabel();
     editbutton.Clicked += OnEditClicked;
 }
예제 #20
0
        public void When_a_request_is_called_User_Is_Added_To_Record_Team()
        {
            var context = new XrmFakedContext();

            var teamTemplate = new TeamTemplate
            {
                Id = Guid.NewGuid(),
                DefaultAccessRightsMask = (int)AccessRights.ReadAccess
            };

            var user = new SystemUser
            {
                Id = Guid.NewGuid()
            };

            var account = new Account
            {
                Id = Guid.NewGuid()
            };

            context.Initialize(new Entity[]
            {
                teamTemplate, user, account
            });

            var executor = new AddUserToRecordTeamRequestExecutor();

            var req = new AddUserToRecordTeamRequest
            {
                Record         = account.ToEntityReference(),
                SystemUserId   = user.Id,
                TeamTemplateId = teamTemplate.Id
            };

            executor.Execute(req, context);

            var team = context.CreateQuery <Team>().FirstOrDefault(p => p.TeamTemplateId.Id == teamTemplate.Id);

            Assert.NotNull(team);

            var teamMembership = context.CreateQuery <TeamMembership>().FirstOrDefault(p => p.SystemUserId == user.Id && p.TeamId == team.Id);

            Assert.NotNull(teamMembership);

            var poa = context.CreateQuery("principalobjectaccess").FirstOrDefault(p => (Guid)p["objectid"] == account.Id &&
                                                                                  (Guid)p["principalid"] == team.Id);

            Assert.NotNull(poa);

            var response = context.AccessRightsRepository.RetrievePrincipalAccess(account.ToEntityReference(),
                                                                                  user.ToEntityReference());

            Assert.Equal((AccessRights)teamTemplate.DefaultAccessRightsMask, response.AccessRights);
        }
예제 #21
0
        public void TestFormation()
        {
            TeamTemplate t = TeamTemplate.DefaultTemplate(1);

            t.FormationStr = "1-2-3-4";
            Assert.AreEqual(t.Formation.Length, 4);
            Assert.AreEqual(t.Formation[0], 1);
            Assert.AreEqual(t.Formation[1], 2);
            Assert.AreEqual(t.Formation[2], 3);
            Assert.AreEqual(t.Formation[3], 4);
        }
예제 #22
0
        public TaggerDialog(Play play,
		                    Categories categoriesTemplate,
		                    TeamTemplate localTeamTemplate,
		                    TeamTemplate visitorTeamTemplate,
		                    bool showAllSubcategories)
        {
            this.Build();

            firstExpose = false;
            tagsnotebook.Visible = false;

            this.localTeamTemplate = localTeamTemplate;
            this.visitorTeamTemplate = visitorTeamTemplate;

            taggerwidget1.SetData(categoriesTemplate, play,
                                  localTeamTemplate.TeamName,
                                  visitorTeamTemplate.TeamName);
            playersnotebook.Visible = false;

            /* Iterate over all subcategories, adding a widget only for the FastTag ones */
            foreach (var subcat in play.Category.SubCategories) {
                if (!subcat.FastTag && !showAllSubcategories)
                    continue;
                if (subcat is TagSubCategory) {
                    var tagcat = subcat as TagSubCategory;
                    AddTagSubcategory(tagcat, play.Tags);
                } else if (subcat is PlayerSubCategory) {
                    playersnotebook.Visible = false;
                    hbox.SetChildPacking(tagsnotebook, false, false, 0, Gtk.PackType.Start);
                    var tagcat = subcat as PlayerSubCategory;
                    AddPlayerSubcategory(tagcat, play.Players);
                } else if (subcat is TeamSubCategory) {
                    var tagcat = subcat as TeamSubCategory;
                    AddTeamSubcategory(tagcat, play.Teams,
                                       localTeamTemplate.TeamName,
                                       visitorTeamTemplate.TeamName);
                }
            }

            if (!play.Category.TagFieldPosition && !play.Category.TagHalfFieldPosition && !play.Category.TagGoalPosition) {
                coordstagger.Visible = false;
                (mainvbox[hbox] as Gtk.Box.BoxChild).Expand = true;
            } else {
                coordstagger.LoadBackgrounds (categoriesTemplate.FieldBackground,
                                              categoriesTemplate.HalfFieldBackground,
                                              categoriesTemplate.GoalBackground);
                coordstagger.LoadPlay (play);
            }

            if (subcategoryAdded || playersnotebook.Visible) {
                tagsnotebook.Visible = true;
            }
        }
예제 #23
0
 public void RemovePlayer(TeamTemplate template, Player player)
 {
     if (template.Count == 1)
     {
         throw new Exception("You can't remove the last Player");
     }
     template.Remove(player);
     foreach (var play in timeline)
     {
         play.Players.RemoveByPlayer(player);
     }
 }
예제 #24
0
 public void Load(string name)
 {
     if (name != null)
     {
         template = teamsTemplates.Load(name);
         if (template.Shield != null)
         {
             shieldimage.Pixbuf = template.Shield.Value;
         }
         namelabel.Text = template.TeamName;
         //teamtaggerwidget.Team = template;
     }
 }
예제 #25
0
        public void TestCase()
        {
            var assembly     = Assembly.GetExecutingAssembly();
            var resourceName = "default.ltt";

            using (Stream stream = assembly.GetManifestResourceStream(resourceName)) {
                TeamTemplate template = SerializableObject.Load <TeamTemplate> (stream, SerializationType.Binary);
                var          cstream  = new MemoryStream();
                SerializableObject.Save(template, cstream, SerializationType.Json);
                cstream.Seek(0, SeekOrigin.Begin);
                var jsonString = new StreamReader(cstream).ReadToEnd();
                Console.WriteLine(jsonString);
            }
        }
예제 #26
0
        void SetPlayersInfo(Table table, TeamTemplate template)
        {
            List <PlayerTag> playersList;
            int i = 0;

            playersList = template.PlayingPlayersList.Select(p => new PlayerTag {
                Value = p, SubCategory = subcat
            }).ToList();

            table.NRows    = (uint)(playersList.Count / DEFAULT_WIDTH);
            table.NColumns = (uint)DEFAULT_WIDTH;

            foreach (PlayerTag player in playersList)
            {
                CheckButton button;

                if (!subcat.AllowMultiple)
                {
                    if (firstRB == null)
                    {
                        button = firstRB = new RadioButton("");
                    }
                    else
                    {
                        button = new RadioButton(firstRB);
                    }
                }
                else
                {
                    button = new CheckButton();
                }
                button.Label    = player.Value.Number + "-" + player.Value.Name;
                button.Name     = i.ToString();
                button.Toggled += OnButtonToggled;
                button.Show();

                uint row_top    = (uint)(i / table.NColumns);
                uint row_bottom = (uint)row_top + 1;
                uint col_left   = (uint)i % table.NColumns;
                uint col_right  = (uint)col_left + 1;

                table.Attach(button, col_left, col_right, row_top, row_bottom);
                checkButtonsDict.Add(button, player);
                i++;
            }
        }
예제 #27
0
        public void AddPlayerSubcategory(PlayerSubCategory subcat, PlayersTagStore tags)
        {
            TeamTemplate local = null, visitor = null;

            /* the notebook starts invisible */
            playersnotebook.Visible = true;
            if (subcat.Contains(Team.LOCAL))
            {
                local = localTeamTemplate;
            }
            if (subcat.Contains(Team.VISITOR))
            {
                visitor = visitorTeamTemplate;
            }

            PlayersTaggerWidget widget = new PlayersTaggerWidget(subcat, local, visitor, tags);

            widget.Show();
            playersbox.PackStart(widget, true, true, 0);
        }
예제 #28
0
        /// <summary>
        /// Allows to overwrite some settings of the templates provisioned through JSON template
        /// </summary>
        /// <param name="parser">The PnP Token Parser</param>
        /// <param name="teamTemplate">The Team JSON template</param>
        /// <returns>The updated Team JSON template</returns>
        private static string OverwriteJsonTemplateProperties(TokenParser parser, TeamTemplate teamTemplate)
        {
            var jsonTemplate = parser.ParseString(teamTemplate.JsonTemplate);
            var team         = JToken.Parse(jsonTemplate);

            if (teamTemplate.DisplayName != null)
            {
                team["displayName"] = teamTemplate.DisplayName;
            }
            if (teamTemplate.Description != null)
            {
                team["description"] = teamTemplate.Description;
            }
            if (teamTemplate.Classification != null)
            {
                team["classification"] = teamTemplate.Classification;
            }
            team["visibility"] = teamTemplate.Visibility.ToString();

            return(team.ToString());
        }
예제 #29
0
        public void TestPlayingPlayers()
        {
            TeamTemplate t = new TeamTemplate();
            Player p1, p2, p3;

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

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

            p1 = new Player {Name="P1", Playing = true};
            p2 = new Player {Name="P2", Playing = false};
            p3 = new Player {Name="P3", Playing = true};
            t.List.Add (p1);
            Assert.AreEqual (t.PlayingPlayersList.Count, 1);
            t.List.Add (p2);
            Assert.AreEqual (t.PlayingPlayersList.Count, 1);
            t.List.Add (p3);
            Assert.AreEqual (t.PlayingPlayersList.Count, 2);
            Assert.AreEqual (t.PlayingPlayersList[0], p1);
            Assert.AreEqual (t.PlayingPlayersList[1], p3);
        }
예제 #30
0
        public TaggerDialog(Category cat, StringTagStore tags, PlayersTagStore players, TeamsTagStore teams,
                            TeamTemplate localTeamTemplate, TeamTemplate visitorTeamTemplate)
        {
            this.Build();

            tagsnotebook.Visible = false;

            this.localTeamTemplate   = localTeamTemplate;
            this.visitorTeamTemplate = visitorTeamTemplate;

            /* Iterate over all subcategories, adding a widget only for the FastTag ones */
            foreach (var subcat in cat.SubCategories)
            {
                if (!subcat.FastTag)
                {
                    continue;
                }
                if (subcat is TagSubCategory)
                {
                    var tagcat = subcat as TagSubCategory;
                    AddTagSubcategory(tagcat, tags);
                }
                else if (subcat is PlayerSubCategory)
                {
                    var tagcat = subcat as PlayerSubCategory;
                    AddPlayerSubcategory(tagcat, players);
                }
                else if (subcat is TeamSubCategory)
                {
                    var tagcat = subcat as TeamSubCategory;
                    AddTeamSubcategory(tagcat, teams,
                                       localTeamTemplate.TeamName,
                                       visitorTeamTemplate.TeamName);
                }
            }
        }
예제 #31
0
        public static LongoMatch.Core.Store.Templates.Team ConvertTeamTemplate(TeamTemplate team,
                                                                               Dictionary <Player, LongoMatch.Core.Store.Player> teamsDict)
        {
            var newteam = new LongoMatch.Core.Store.Templates.Team();

            newteam.Name     = team.Name;
            newteam.TeamName = team.TeamName;
            newteam.Shield   = ConvertImage(team.Shield);
            newteam.ID       = team.UUID;

            foreach (Player p in team)
            {
                var newplayer = ConvertPlayer(p);
                newteam.List.Add(newplayer);
                if (teamsDict != null)
                {
                    if (!teamsDict.ContainsKey(p))
                    {
                        teamsDict.Add(p, newplayer);
                    }
                }
            }
            return(newteam);
        }
예제 #32
0
 public void TagPlay(Play play, TeamTemplate local, TeamTemplate visitor)
 {
     TaggerDialog tg = new TaggerDialog(play, local, visitor);
     tg.TransientFor = mainWindow as Gtk.Window;
     tg.Run();
     tg.Destroy();
 }
예제 #33
0
        /// <summary>
        /// Creates a Team starting from a JSON template
        /// </summary>
        /// <param name="scope">The PnP Provisioning Scope</param>
        /// <param name="parser">The PnP Token Parser</param>
        /// <param name="teamTemplate">The Team JSON template</param>
        /// <param name="accessToken">The OAuth 2.0 Access Token</param>
        /// <returns>The provisioned Team as a JSON object</returns>
        private static JToken CreateTeamFromJsonTemplate(PnPMonitoredScope scope, TokenParser parser, TeamTemplate teamTemplate, string accessToken)
        {
            HttpResponseHeaders responseHeaders;

            try
            {
                var content = OverwriteJsonTemplateProperties(parser, teamTemplate);
                responseHeaders = HttpHelper.MakePostRequestForHeaders($"{GraphHelper.MicrosoftGraphBaseURI}beta/teams", content, "application/json", accessToken);
            }
            catch (Exception ex)
            {
                scope.LogError(CoreResources.Provisioning_ObjectHandlers_Teams_TeamTemplate_ProvisioningError, ex.Message);
                return(null);
            }

            try
            {
                var teamId = responseHeaders.Location.ToString().Split('\'')[1];
                var team   = HttpHelper.MakeGetRequestForString($"{GraphHelper.MicrosoftGraphBaseURI}v1.0/groups/{teamId}", accessToken);
                return(JToken.Parse(team));
            }
            catch (Exception ex)
            {
                scope.LogError(CoreResources.Provisioning_ObjectHandlers_Teams_TeamTemplate_FetchingError, ex.Message);
            }

            return(null);
        }
예제 #34
0
        void SetPlayersInfo(Table table, TeamTemplate template)
        {
            List<PlayerTag> playersList;
            int i=0;

            playersList = template.PlayingPlayersList.Select(p => new PlayerTag {Value=p, SubCategory=subcat}).ToList();

            table.NRows =(uint)(playersList.Count/DEFAULT_WIDTH);
            table.NColumns =(uint) DEFAULT_WIDTH;

            foreach(PlayerTag player in playersList) {
                CheckButton button;

                if (!subcat.AllowMultiple) {
                    if (firstRB == null)
                        button = firstRB = new RadioButton("");
                    else
                        button = new RadioButton(firstRB);
                } else {
                    button = new CheckButton();
                }
                button.Label = player.Value.Number + "-" + player.Value.Name;
                button.Name = i.ToString();
                button.Toggled += OnButtonToggled;
                button.Show();

                uint row_top =(uint)(i / table.NColumns);
                uint row_bottom = (uint) row_top + 1 ;
                uint col_left = (uint) i % table.NColumns;
                uint col_right = (uint) col_left + 1 ;

                table.Attach(button,col_left,col_right,row_top,row_bottom);
                checkButtonsDict.Add(button, player);
                i++;
            }
        }
예제 #35
0
파일: Project.cs 프로젝트: GNOME/longomatch
 public void RemovePlayer(TeamTemplate template, Player player)
 {
     if(template.Count == 1)
         throw new Exception("You can't remove the last Player");
     template.Remove(player);
     foreach (var play in timeline) {
         play.Players.RemoveByPlayer(player);
     }
 }
예제 #36
0
 public EntityViewItem(TeamTemplate TeamTemplate, string entityName)
 {
     this.TeamTemplate = TeamTemplate;
     this.EntityName   = entityName;
 }
예제 #37
0
        public void TestSerialization()
        {
            TeamTemplate t = new TeamTemplate();

            Utils.CheckSerialization(t);

            t.Name = "test";
            t.TeamName = "team";
            t.List.Add (new Player {Name="P1"});
            t.List.Add (new Player {Name="P2"});
            t.List.Add (new Player {Name="P3"});

            Utils.CheckSerialization (t);

            TeamTemplate newt = Utils.SerializeDeserialize(t);

            Assert.AreEqual (t.ID, newt.ID);
            Assert.AreEqual (t.Name, newt.Name);
            Assert.AreEqual (t.TeamName, newt.TeamName);
            Assert.AreEqual (t.List.Count, newt.List.Count);
            Assert.AreEqual (t.List[0].Name, newt.List[0].Name);
            Assert.AreEqual (t.List[1].Name, newt.List[1].Name);
            Assert.AreEqual (t.List[2].Name, newt.List[2].Name);
        }
        public void SetTeam(TeamTemplate template, List<Play> plays)
        {
            TreeStore team;
            Dictionary<Player, TreeIter> playersDict = new Dictionary<Player, TreeIter>();

            Log.Debug("Updating teams models with template:" + template);
            team = new TreeStore(typeof(object));

            foreach(var player in template) {
                /* Add a root in the tree with the option name */
                var iter = team.AppendValues(player);
                playersDict.Add(player, iter);
                Log.Debug("Adding new player to the model: " + player);
            }

            foreach (var play in plays) {
                foreach (var player in play.Players.AllUniqueElements) {
                    if (playersDict.ContainsKey(player.Value)) {
                        team.AppendValues(playersDict[player.Value], new object[1] {play});
                        Log.Debug("Adding new play to player: " + player);
                    }
                }
            }
            playerstreeview.Model = team;
        }
        public void When_a_request_is_called_User_Is_Removed_From_Record_Team()
        {
            var context = new XrmFakedContext();

            var teamTemplate = new TeamTemplate
            {
                Id = Guid.NewGuid(),
                DefaultAccessRightsMask = (int)AccessRights.ReadAccess
            };

            var team = new Team
            {
                Id             = Guid.NewGuid(),
                TeamTemplateId = teamTemplate.ToEntityReference()
            };

            var user = new SystemUser
            {
                Id = Guid.NewGuid()
            };

            var teamMembership = new TeamMembership
            {
                Id = Guid.NewGuid(),
                ["systemuserid"] = user.Id,
                ["teamid"]       = team.Id
            };

            var account = new Account
            {
                Id = Guid.NewGuid()
            };

            context.Initialize(new Entity[]
            {
                teamTemplate, team, teamMembership, user, account
            });

            var executor = new RemoveUserFromRecordTeamRequestExecutor();

            var req = new RemoveUserFromRecordTeamRequest
            {
                Record         = account.ToEntityReference(),
                SystemUserId   = user.Id,
                TeamTemplateId = teamTemplate.Id
            };

            context.AccessRightsRepository.GrantAccessTo(account.ToEntityReference(), new PrincipalAccess
            {
                Principal  = user.ToEntityReference(),
                AccessMask = AccessRights.ReadAccess
            });

            executor.Execute(req, context);

            var retrievedTeamMembership = context.CreateQuery <TeamMembership>().FirstOrDefault(p => p.SystemUserId == user.Id && p.TeamId == team.Id);

            Assert.Null(retrievedTeamMembership);

            var response = context.AccessRightsRepository.RetrievePrincipalAccess(account.ToEntityReference(),
                                                                                  user.ToEntityReference());

            Assert.Equal(AccessRights.None, response.AccessRights);
        }
예제 #40
0
 public void Load(string name)
 {
     if (name != null) {
         template = teamsTemplates.Load (name);
         if (template.Shield != null) {
             shieldimage.Pixbuf = template.Shield.Value;
         }
         namelabel.Text = template.TeamName;
         //teamtaggerwidget.Team = template;
     }
 }
예제 #41
0
        public TaggerDialog(Play play,
                            Categories categoriesTemplate,
                            TeamTemplate localTeamTemplate,
                            TeamTemplate visitorTeamTemplate,
                            bool showAllSubcategories)
        {
            this.Build();

            firstExpose          = false;
            tagsnotebook.Visible = false;

            this.localTeamTemplate   = localTeamTemplate;
            this.visitorTeamTemplate = visitorTeamTemplate;

            taggerwidget1.SetData(categoriesTemplate, play,
                                  localTeamTemplate.TeamName,
                                  visitorTeamTemplate.TeamName);
            playersnotebook.Visible = false;

            /* Iterate over all subcategories, adding a widget only for the FastTag ones */
            foreach (var subcat in play.Category.SubCategories)
            {
                if (!subcat.FastTag && !showAllSubcategories)
                {
                    continue;
                }
                if (subcat is TagSubCategory)
                {
                    var tagcat = subcat as TagSubCategory;
                    AddTagSubcategory(tagcat, play.Tags);
                }
                else if (subcat is PlayerSubCategory)
                {
                    playersnotebook.Visible = false;
                    hbox.SetChildPacking(tagsnotebook, false, false, 0, Gtk.PackType.Start);
                    var tagcat = subcat as PlayerSubCategory;
                    AddPlayerSubcategory(tagcat, play.Players);
                }
                else if (subcat is TeamSubCategory)
                {
                    var tagcat = subcat as TeamSubCategory;
                    AddTeamSubcategory(tagcat, play.Teams,
                                       localTeamTemplate.TeamName,
                                       visitorTeamTemplate.TeamName);
                }
            }

            if (!play.Category.TagFieldPosition && !play.Category.TagHalfFieldPosition && !play.Category.TagGoalPosition)
            {
                coordstagger.Visible = false;
                (mainvbox[hbox] as Gtk.Box.BoxChild).Expand = true;
            }
            else
            {
                coordstagger.LoadBackgrounds(categoriesTemplate.FieldBackground,
                                             categoriesTemplate.HalfFieldBackground,
                                             categoriesTemplate.GoalBackground);
                coordstagger.LoadPlay(play);
            }

            if (subcategoryAdded || playersnotebook.Visible)
            {
                tagsnotebook.Visible = true;
            }
        }
예제 #42
0
 void MigrateTeamTeamplate_2_0(TeamTemplate template)
 {
     Log.Information("Migrating team template " + template.Name + " to 2.1");
     template.Version = new Version(2, 1);
     templates.TeamTemplateProvider.Update(template);
 }