public void GrantStructurePermissions(NWPlayer player, Guid pcBaseStructureID, params StructurePermission[] permissions) { var dbPermission = _data.GetAll <PCBaseStructurePermission>().SingleOrDefault(x => x.PCBaseStructureID == pcBaseStructureID && x.PlayerID == player.GlobalID); var action = DatabaseActionType.Update; if (dbPermission == null) { dbPermission = new PCBaseStructurePermission { PCBaseStructureID = pcBaseStructureID, PlayerID = player.GlobalID }; action = DatabaseActionType.Insert; } foreach (var permission in permissions) { switch (permission) { case StructurePermission.CanPlaceEditStructures: dbPermission.CanPlaceEditStructures = true; break; case StructurePermission.CanAccessStructureInventory: dbPermission.CanAccessStructureInventory = true; break; case StructurePermission.CanEnterBuilding: dbPermission.CanEnterBuilding = true; break; case StructurePermission.CanRetrieveStructures: dbPermission.CanRetrieveStructures = true; break; case StructurePermission.CanAdjustPermissions: dbPermission.CanAdjustPermissions = true; break; case StructurePermission.CanRenameStructures: dbPermission.CanRenameStructures = true; break; case StructurePermission.CanEditPrimaryResidence: dbPermission.CanEditPrimaryResidence = true; break; case StructurePermission.CanRemovePrimaryResidence: dbPermission.CanRemovePrimaryResidence = true; break; default: throw new ArgumentOutOfRangeException(); } } _data.SubmitDataChange(dbPermission, action); }
private void TogglePermission(NWPlayer player, StructurePermission permission) { var data = _base.GetPlayerTempData(GetPC()); var dbPermission = _data.SingleOrDefault <PCBaseStructurePermission>(x => x.PlayerID == player.GlobalID && x.PCBaseStructureID == data.StructureID); var action = DatabaseActionType.Update; if (dbPermission == null) { dbPermission = new PCBaseStructurePermission() { PCBaseStructureID = data.StructureID, PlayerID = player.GlobalID }; action = DatabaseActionType.Insert; } switch (permission) { case StructurePermission.CanPlaceEditStructures: dbPermission.CanPlaceEditStructures = !dbPermission.CanPlaceEditStructures; break; case StructurePermission.CanAccessStructureInventory: dbPermission.CanAccessStructureInventory = !dbPermission.CanAccessStructureInventory; break; case StructurePermission.CanEnterBuilding: dbPermission.CanEnterBuilding = !dbPermission.CanEnterBuilding; break; case StructurePermission.CanAdjustPermissions: dbPermission.CanAdjustPermissions = !dbPermission.CanAdjustPermissions; break; case StructurePermission.CanRetrieveStructures: dbPermission.CanRetrieveStructures = !dbPermission.CanRetrieveStructures; break; case StructurePermission.CanRenameStructures: dbPermission.CanRenameStructures = !dbPermission.CanRenameStructures; break; case StructurePermission.CanEditPrimaryResidence: dbPermission.CanEditPrimaryResidence = !dbPermission.CanEditPrimaryResidence; break; case StructurePermission.CanRemovePrimaryResidence: dbPermission.CanRemovePrimaryResidence = !dbPermission.CanRemovePrimaryResidence; break; default: throw new ArgumentOutOfRangeException(nameof(permission), permission, null); } _data.SubmitDataChange(dbPermission, action); }
public void GetByID_OneItem_ReturnsPCBaseStructurePermission() { // Arrange var id = Guid.NewGuid(); PCBaseStructurePermission entity = new PCBaseStructurePermission { ID = id }; // Act MessageHub.Instance.Publish(new OnCacheObjectSet <PCBaseStructurePermission>(entity)); // Assert Assert.AreNotSame(entity, _cache.GetByID(id)); }
public void GetByID_TwoItems_ReturnsCorrectObject() { // Arrange var id1 = Guid.NewGuid(); var id2 = Guid.NewGuid(); PCBaseStructurePermission entity1 = new PCBaseStructurePermission { ID = id1 }; PCBaseStructurePermission entity2 = new PCBaseStructurePermission { ID = id2 }; // Act MessageHub.Instance.Publish(new OnCacheObjectSet <PCBaseStructurePermission>(entity1)); MessageHub.Instance.Publish(new OnCacheObjectSet <PCBaseStructurePermission>(entity2)); // Assert Assert.AreNotSame(entity1, _cache.GetByID(id1)); Assert.AreNotSame(entity2, _cache.GetByID(id2)); }
public void GetByID_RemovedItem_ReturnsCorrectObject() { // Arrange var id1 = Guid.NewGuid(); var id2 = Guid.NewGuid(); PCBaseStructurePermission entity1 = new PCBaseStructurePermission { ID = id1 }; PCBaseStructurePermission entity2 = new PCBaseStructurePermission { ID = id2 }; // Act MessageHub.Instance.Publish(new OnCacheObjectSet <PCBaseStructurePermission>(entity1)); MessageHub.Instance.Publish(new OnCacheObjectSet <PCBaseStructurePermission>(entity2)); MessageHub.Instance.Publish(new OnCacheObjectDeleted <PCBaseStructurePermission>(entity1)); // Assert Assert.Throws <KeyNotFoundException>(() => { _cache.GetByID(id1); }); Assert.AreNotSame(entity2, _cache.GetByID(id2)); }
public void GetAllByPlayerID_ThreeItems_ShouldReturnSameItems() { // Arrange var playerID = Guid.NewGuid(); var id1 = Guid.NewGuid(); var id2 = Guid.NewGuid(); var id3 = Guid.NewGuid(); var id4 = Guid.NewGuid(); PCBaseStructurePermission entity1 = new PCBaseStructurePermission { ID = id1, PlayerID = playerID }; PCBaseStructurePermission entity2 = new PCBaseStructurePermission { ID = id2, PlayerID = playerID }; PCBaseStructurePermission entity3 = new PCBaseStructurePermission { ID = id3, PlayerID = playerID }; PCBaseStructurePermission entity4 = new PCBaseStructurePermission { ID = id4, PlayerID = playerID }; // Act MessageHub.Instance.Publish(new OnCacheObjectSet <PCBaseStructurePermission>(entity1)); MessageHub.Instance.Publish(new OnCacheObjectSet <PCBaseStructurePermission>(entity2)); MessageHub.Instance.Publish(new OnCacheObjectSet <PCBaseStructurePermission>(entity3)); MessageHub.Instance.Publish(new OnCacheObjectSet <PCBaseStructurePermission>(entity4)); MessageHub.Instance.Publish(new OnCacheObjectDeleted <PCBaseStructurePermission>(entity2)); // Assert var results = _cache.GetAllByPlayerID(playerID).ToList(); Assert.AreEqual(3, results.Count); Assert.AreEqual(entity1.ID, results.ElementAt(0).ID); Assert.AreEqual(entity3.ID, results.ElementAt(1).ID); Assert.AreEqual(entity4.ID, results.ElementAt(2).ID); }
private void TogglePermission(Guid playerID, StructurePermission permission, bool isPublicPermission) { var data = BaseService.GetPlayerTempData(GetPC()); var dbPermission = isPublicPermission ? DataService.SingleOrDefault <PCBaseStructurePermission>(x => x.PCBaseStructureID == data.StructureID && x.IsPublicPermission) : DataService.SingleOrDefault <PCBaseStructurePermission>(x => x.PlayerID == playerID && x.PCBaseStructureID == data.StructureID && !x.IsPublicPermission); var action = DatabaseActionType.Update; if (dbPermission == null) { dbPermission = new PCBaseStructurePermission() { PCBaseStructureID = data.StructureID, PlayerID = playerID, IsPublicPermission = isPublicPermission }; action = DatabaseActionType.Insert; } switch (permission) { case StructurePermission.CanPlaceEditStructures: dbPermission.CanPlaceEditStructures = !dbPermission.CanPlaceEditStructures; break; case StructurePermission.CanAccessStructureInventory: dbPermission.CanAccessStructureInventory = !dbPermission.CanAccessStructureInventory; break; case StructurePermission.CanEnterBuilding: dbPermission.CanEnterBuilding = !dbPermission.CanEnterBuilding; break; case StructurePermission.CanAdjustPermissions: dbPermission.CanAdjustPermissions = !dbPermission.CanAdjustPermissions; break; case StructurePermission.CanRetrieveStructures: dbPermission.CanRetrieveStructures = !dbPermission.CanRetrieveStructures; break; case StructurePermission.CanRenameStructures: dbPermission.CanRenameStructures = !dbPermission.CanRenameStructures; break; case StructurePermission.CanEditPrimaryResidence: dbPermission.CanEditPrimaryResidence = !dbPermission.CanEditPrimaryResidence; break; case StructurePermission.CanRemovePrimaryResidence: dbPermission.CanRemovePrimaryResidence = !dbPermission.CanRemovePrimaryResidence; break; case StructurePermission.CanChangeStructureMode: dbPermission.CanChangeStructureMode = !dbPermission.CanChangeStructureMode; break; case StructurePermission.CanAdjustPublicPermissions: dbPermission.CanAdjustPublicPermissions = !dbPermission.CanAdjustPublicPermissions; break; case StructurePermission.CanFlyStarship: dbPermission.CanFlyStarship = !dbPermission.CanFlyStarship; break; default: throw new ArgumentOutOfRangeException(nameof(permission), permission, null); } DataService.SubmitDataChange(dbPermission, action); }
public static void GrantStructurePermissions(NWPlayer player, Guid pcBaseStructureID, params StructurePermission[] permissions) { var dbPermission = DataService.PCBaseStructurePermission.GetPlayerPrivatePermissionOrDefault(player.GlobalID, pcBaseStructureID); var action = DatabaseActionType.Update; if (dbPermission == null) { dbPermission = new PCBaseStructurePermission { PCBaseStructureID = pcBaseStructureID, PlayerID = player.GlobalID }; action = DatabaseActionType.Insert; } foreach (var permission in permissions) { switch (permission) { case StructurePermission.CanPlaceEditStructures: dbPermission.CanPlaceEditStructures = true; break; case StructurePermission.CanAccessStructureInventory: dbPermission.CanAccessStructureInventory = true; break; case StructurePermission.CanEnterBuilding: dbPermission.CanEnterBuilding = true; break; case StructurePermission.CanRetrieveStructures: dbPermission.CanRetrieveStructures = true; break; case StructurePermission.CanAdjustPermissions: dbPermission.CanAdjustPermissions = true; break; case StructurePermission.CanRenameStructures: dbPermission.CanRenameStructures = true; break; case StructurePermission.CanEditPrimaryResidence: dbPermission.CanEditPrimaryResidence = true; break; case StructurePermission.CanRemovePrimaryResidence: dbPermission.CanRemovePrimaryResidence = true; break; case StructurePermission.CanChangeStructureMode: dbPermission.CanChangeStructureMode = true; break; case StructurePermission.CanAdjustPublicPermissions: dbPermission.CanAdjustPublicPermissions = true; break; case StructurePermission.CanFlyStarship: dbPermission.CanFlyStarship = true; break; default: throw new ArgumentOutOfRangeException(); } } DataService.SubmitDataChange(dbPermission, action); }