From f581786ec5fbfb103a49fe2672f219b3cd6d1154 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 6 Apr 2023 23:29:08 -0400 Subject: [PATCH] getting closer --- CardUtility.cs | 2 +- Controllers/HomeController.cs | 87 ++++++++++++++++++++++++++++++++++- Entities/Card.cs | 2 + Entities/DeckCard.cs | 2 + Entities/HandCard.cs | 4 +- Entities/Match.cs | 3 ++ Entities/MatchCard.cs | 10 ---- Entities/Player.cs | 2 + Entities/PlayerCard.cs | 4 +- 9 files changed, 100 insertions(+), 16 deletions(-) delete mode 100644 Entities/MatchCard.cs diff --git a/CardUtility.cs b/CardUtility.cs index 0682cca..5672613 100644 --- a/CardUtility.cs +++ b/CardUtility.cs @@ -9,7 +9,7 @@ public static class CardUtility [13] = "K" }; - public static ICollection GenerateDeck() + public static ICollection GenerateCards() { var cards = new List(); var suits = Enum.GetValues(); diff --git a/Controllers/HomeController.cs b/Controllers/HomeController.cs index 81d7d10..7aa8327 100644 --- a/Controllers/HomeController.cs +++ b/Controllers/HomeController.cs @@ -1,5 +1,7 @@ using System.Diagnostics; +using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; +using Sequence.Entities; using Sequence.Models; namespace Sequence.Controllers; @@ -7,10 +9,12 @@ namespace Sequence.Controllers; public class HomeController : Controller { private readonly ILogger _logger; + private readonly DbContext dbContext; - public HomeController(ILogger logger) + public HomeController(ILogger logger, DbContext dbContext) { _logger = logger; + this.dbContext = dbContext; } public IActionResult Index() @@ -18,6 +22,87 @@ public class HomeController : Controller return View(); } + public async Task CreateMatch([FromServices] UserManager userManager) + { + var userOne = new User + { + Name = "Krystle", + UserName = "krystle", + Email = "krystle@allwillynilly.com" + }; + + var userTwo = new User + { + Name = "Ryan", + UserName = "ryan", + Email = "ryan@binarydad.com" + }; + + var resultKrystle = await userManager.CreateAsync(userOne, "C0urtY@rd"); + var resultRyan = await userManager.CreateAsync(userTwo, "C0urtY@rd"); + + var playerOne = new Player + { + Id = Guid.NewGuid(), + Alias = "SwiggitySwooty", + UserId = resultKrystle + }; + + var playerTwo = new Player + { + Id = Guid.NewGuid(), + Alias = "BabeFoy", + UserId = Guid.Parse("08db3712-7c5f-430b-882e-44abd63b5324") + }; + + var players = new[] { playerOne, playerTwo }; + + var match = new Match + { + Id = Guid.NewGuid(), + Created = DateTime.Now, + CurrentTurnPlayerId = playerOne.Id, + PlayerOneId = playerOne.Id, + PlayerTwoId = playerTwo.Id + }; + + var deck = cards + .OrderBy(c => Guid.NewGuid()) + .Select(c => new DeckCard + { + CardId = c.Id, + MatchId = match.Id, + Id = Guid.NewGuid() + }) + .ToList(); + + var handCards = new List(); + + for (var i = 1; i <= 14; i += 2) + { + var deckCard = deck[i]; + var deckCard2 = deck[i + 1]; + + deck.Remove(deckCard); + + handCards.Add(new HandCard + { + DeckCardId = deckCard.Id, + PlayerId = playerOne.Id, + Id = Guid.NewGuid() + }); + + deck.Remove(deckCard2); + + handCards.Add(new HandCard + { + DeckCardId = deckCard2.Id, + PlayerId = playerTwo.Id, + Id = Guid.NewGuid() + }); + } + } + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] public IActionResult Error() { diff --git a/Entities/Card.cs b/Entities/Card.cs index 63aed6f..cb25797 100644 --- a/Entities/Card.cs +++ b/Entities/Card.cs @@ -5,4 +5,6 @@ public class Card public Guid Id { get; set; } public Suit Suit { get; set; } public string Value { get; set; } + public int PositionX { get; set; } + public int PositionY { get; set; } } diff --git a/Entities/DeckCard.cs b/Entities/DeckCard.cs index d0988c4..26cbe56 100644 --- a/Entities/DeckCard.cs +++ b/Entities/DeckCard.cs @@ -3,7 +3,9 @@ namespace Sequence.Entities; public class DeckCard { public Guid Id { get; set; } + public Guid MatchId { get; set; } public Match Match { get; set; } + public Guid CardId { get; set; } public Card Card { get; set; } public int Order { get; set; } } \ No newline at end of file diff --git a/Entities/HandCard.cs b/Entities/HandCard.cs index 3f6b8b7..69cf65f 100644 --- a/Entities/HandCard.cs +++ b/Entities/HandCard.cs @@ -3,6 +3,8 @@ namespace Sequence.Entities; public class HandCard { public Guid Id { get; set; } + public Guid PlayerId { get; set; } public Player Player { get; set; } - public Card Card { get; set; } + public Guid DeckCardId { get; set; } + public DeckCard DeckCard { get; set; } } \ No newline at end of file diff --git a/Entities/Match.cs b/Entities/Match.cs index d1d72c6..92575c1 100644 --- a/Entities/Match.cs +++ b/Entities/Match.cs @@ -4,7 +4,10 @@ public class Match { public Guid Id { get; set; } public DateTime Created { get; set; } + public Guid PlayerOneId { get; set; } public Player PlayerOne { get; set; } + public Guid PlayerTwoId { get; set; } public Player PlayerTwo { get; set; } + public Guid CurrentTurnPlayerId { get; set; } public ICollection Deck { get; set; } } \ No newline at end of file diff --git a/Entities/MatchCard.cs b/Entities/MatchCard.cs deleted file mode 100644 index bcb1004..0000000 --- a/Entities/MatchCard.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Sequence.Entities; - -public class MatchCard -{ - public Guid Id { get; set; } - public Match Match { get; set; } - public Card Card { get; set; } - public int PositionX { get; set; } - public int PositionY { get; set; } -} \ No newline at end of file diff --git a/Entities/Player.cs b/Entities/Player.cs index f6874d8..25c492c 100644 --- a/Entities/Player.cs +++ b/Entities/Player.cs @@ -3,7 +3,9 @@ namespace Sequence.Entities; public class Player { public Guid Id { get; set; } + public Guid UserId { get; set; } public User User { get; set; } + public string Alias { get; set; } public ICollection HandCards { get; set; } public ICollection PlayerCards { get; set; } } \ No newline at end of file diff --git a/Entities/PlayerCard.cs b/Entities/PlayerCard.cs index b38bae8..50feb56 100644 --- a/Entities/PlayerCard.cs +++ b/Entities/PlayerCard.cs @@ -4,7 +4,5 @@ public class PlayerCard { public Guid Id { get; set; } public Player Player { get; set; } - public Card Card { get; set; } - public int PositionX { get; set; } - public int PositionY { get; set; } + public DeckCard DeckCard { get; set; } }