public void PlayerSupervisorsFactoryTest()
        {
            var player = new Arbiter.ConfigurationSvc.PlayerData()
            {
            };
            var team = new TeamMembership
            {
                Players = new List <Arbiter.ConfigurationSvc.PlayerData> {
                    player
                },
            };

            var membership = new GameMembership
            {
                Teams = new List <TeamMembership> {
                    team
                }
            };

            membershipManager.Setup(m => m.GetMembership()).Returns(membership);

            var client = new GameProvider(membershipManager.Object,
                                          timingManager.Object,
                                          statusMessageLogger.Object);
            var spv = client.SupervisorFactory(membership);

            Assert.That(spv, Is.Not.Null, "Collection of returned supervisors is null");
            Assert.That(spv, Is.Not.Empty, "Collection of returned supervisors is empty");
            Assert.That(spv.Count(), Is.EqualTo(1), "Collection of supervisors contains more than 1 supervisor");
            var supervisor = spv.ToArray()[0];
        }
        private async void JoinTeam()
        {
            TeamMembership team = await _dataService.JoinTeamAsync(this.TeamCode);

            _settingsService.MyTeamId   = team.Id;
            _settingsService.MyTeamName = team.Name;

            await _navigationService.NavigateToViewModelAsync <RaceSelectionViewModel>();
        }
Exemple #3
0
 private void Validate(TeamMembership teamMembership)
 {
     Assert.IsNotNull(teamMembership);
     Assert.IsNotNull(teamMembership.Id);
     Assert.IsNotNull(teamMembership.PersonId);
     Assert.IsNotNull(teamMembership.PersonEmail);
     Assert.IsNotNull(teamMembership.TeamId);
     Assert.IsNotNull(teamMembership.PersonDisplayName);
     Assert.IsNotNull(teamMembership.IsModerator);
 }
        public void StartWithOneTeam()
        {
            var gametimings = new GameTimings();
            var datetimenow = DateTime.Now.AddDays(10);

            gametimings.GameStartDate = datetimenow;
            timingManager.Setup(p => p.GetGameTimings()).Returns(gametimings);

            var player = new Arbiter.ConfigurationSvc.PlayerData()
            {
                Name            = "Player",
                MachineId       = 1,
                Width           = 10,
                Length          = 10,
                MarkerPositionX = 2,
                MarkerPositionY = 3,
                Marker          = new Color {
                    r = 100, g = 100, b = 100
                }
            };
            var team = new TeamMembership
            {
                TeamName = "Team1",

                TeamId      = 10,
                PlayerCount = 1,
                Players     = new List <Arbiter.ConfigurationSvc.PlayerData> {
                    player
                },
                ControlCenterCount = 0,
                ControlCenters     = new List <Arbiter.ConfigurationSvc.ControllCenterData>(),
                GateId             = 0
            };

            var membership = new GameMembership
            {
                TeamCount = 1,
                Teams     = new List <TeamMembership> {
                    team
                }
            };

            membershipManager.Setup(m => m.GetMembership()).Returns(membership);

            var client = new GameProvider(membershipManager.Object,
                                          timingManager.Object,
                                          statusMessageLogger.Object);

            client.StartGame();
            statusMessageLogger.Verify(m => m.ShowStatusMessage(It.IsAny <string>()));
            timingManager.Verify(t => t.GetGameTimings());
            membershipManager.Verify(m => m.GetMembership());
            client.EndGame();
            statusMessageLogger.Verify(m => m.ShowStatusMessage(It.IsAny <string>()));
        }
Exemple #5
0
        public override void Execute(RemoveUserFromTeamCommand command, ICommandAndQueryDispatcher dispatcher)
        {
            Team team = dispatcher.ExecuteQuery(new GetTeamByIdQuery(command.TeamId));

            if (CurrentUserIsAllowedToRemoveTargetUser(command, team))
            {
                TeamMembership membership = team.Members.SingleOrDefault(m => m.User.Id == command.UserId);
                if (membership != null)
                {
                    team.Members.Remove(membership);
                }

                db.SaveChanges();
            }
        }
        public override void Execute(UpdateMembershipStatusCommand command, ICommandAndQueryDispatcher dispatcher)
        {
            var  getTeamQuery = new GetTeamByIdQuery(command.TeamId);
            Team team         = dispatcher.ExecuteQuery(getTeamQuery);

            if (!team.Owner.IsCurrentUser())
            {
                throw new InvalidOperationException("Only the owner of the team can update the membership status");
            }

            TeamMembership teamMembership = team.Members.Single(m => m.User.Id == command.UserIdToUpdate);

            teamMembership.Status = command.NewStatus;
            db.SaveChanges();
        }
Exemple #7
0
        public void Handle(TeamJoinedEvent domainEvent)
        {
            LogToConsole(domainEvent);

            dynamic eventData = JsonConvert.DeserializeObject(domainEvent.JsonPayload);

            var     query = new GetUserQuery((Guid)eventData.UserId);
            dynamic user  = JsonConvert.DeserializeObject(_bus.PublishQuery(query));

            var newMembership = new TeamMembership
            {
                Id       = Guid.NewGuid(),
                Approved = false,
                TeamId   = domainEvent.AggregateId,
                UserId   = (Guid)eventData.UserId,
                UserName = (string)user.UserName
            };

            _teamMembershipRepository.Add(newMembership);
        }
 public bool Update(TeamMembership entity)
 {
     return(_teamMembershipRepository.Update(entity));
 }
        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);
        }