public void JoinAdventure(string adventureName) { //check list if players in adventure has same name as joining player //if same name, dont do anything. //if not, add the user to the adventure. UserClient client = new UserClient(); try { User user = client.Find(User.Identity.Name); Adventure adventure = adventureClient.Find(adventureName); if (adventure.Players.Count >= adventure.MaxPlayers) { ModelState.AddModelError("", "This adventure is not available for joining."); } if (adventure.Players.FirstOrDefault(x => x.UserName == user.UserName) == null) { adventure.Players.Add(user); int a = adventureClient.Update(adventure); Adventure Adventure2 = adventureClient.Find(adventure.Name); } else { ModelState.AddModelError("", "You are already on that adventure."); } } catch (Exception Ex) { ModelState.AddModelError("", "Failed to join adventure, no open spots."); } }
public void CreateAdventureTest() { Adventure adventure = new Adventure() { Active = true, Date = DateTime.Now, Logbook = "The war has yet to end, and will be continued in the next mission", MaxPlayers = 3, Name = "War At The Riverside" }; adventureClient.Create(adventure); Assert.AreEqual(adventure.Name, adventureClient.Find(adventure.Name).Name); }