public void FromDB(CubeDraftPlayer player) { PlayerId = player.Id; PlayerName = player.MtgoLink.User.TwitchUsername; MtgoId = player.MtgoLink.MtgoId; MtgoUsername = player.MtgoLink.MtgoUsername; }
public Drafter(CubeDraft draft, CubeDraftPlayer player, int position, DraftCollection draftCollection) { QueuedPicks.Enqueue(draftCollection.GetNextPack().Cards.ToList()); DraftId = draft.Id; PlayerId = player.Id; UserId = player.MtgoLink.UserId; PlayerName = player.MtgoLink.User.TwitchUsername; Position = position; Packs = draftCollection; _isTimed = draft.Timed; }
public PlayerUpdatedModel(CubeDraftPlayer player, CubeDraft draft, bool trading = false) { if (player.MtgoLink == null) { throw new InvalidOperationException(); } Id = player.Id; UserId = player.MtgoLink.UserId; Username = player.MtgoLink.User.TwitchUsername; Confirmed = player.Confirmed; DeckBuilt = player.DeckBuilt; DeckStatus = "none"; Trading = trading; if (player.Confirmed) { MtgoUsername = player.MtgoLink.MtgoUsername; MtgoId = player.MtgoLink.MtgoId; RequireCollateral = player.RequireCollateral; var mtgoCount = draft.CubeDraftCards.Count(c => c.Location == player.MtgoLink.MtgoId); var pickCount = player.CubeDraftPicks.Count; if (pickCount > 0) { if (mtgoCount > 0 && mtgoCount < pickCount) { DeckStatus = "partial"; } else if (mtgoCount > 0 && mtgoCount >= pickCount) { DeckStatus = "full"; } } } else { RequireCollateral = 0; } }
public Drafter(CubeDraft draft, CubeDraftPlayer player, int position, DraftCollection draftCollection, List <Card> picks) { if (picks == null) { picks = new List <Card>(); } DraftId = draft.Id; PlayerId = player.Id; UserId = player.MtgoLink.UserId; PlayerName = player.MtgoLink.User.TwitchUsername; Position = position; _isTimed = draft.Timed; Packs = draftCollection; if (picks.Count == 0) { QueuedPicks.Enqueue(draftCollection.GetNextPack().Cards.ToList()); } Picks = picks; CurrentPick = picks.Count + 1; }
public int Signup(int draftId) { try { var userId = Context.User.GetUserId(); var user = _db.Users .Include("MtgoLinks") .Single(u => u.Id == userId); Log.DebugFormat("Signup from userId='{0}', user='******'", userId, user.TwitchUsername); var draft = _db.CubeDrafts .Include("CubeDraftCards") .Include("CubeDraftPlayers.CubeDraftPicks") .Include("CubeDraftPlayers.MtgoLink.User") .SingleOrDefault(d => d.Id == draftId); if (draft == null || draft.Status != CubeDraftStatus.PreStart) { Log.Debug("Draft not in PreStart"); return(0); } var dbUser = user.MtgoLinks.FirstOrDefault(); if (dbUser == null) { Log.Debug("No link found, sending 1"); return(1); } if (!dbUser.Confirmed) { Log.Debug("Link found, not confirmed, sending 2"); return(2); } var newPlayer = new CubeDraftPlayer { Confirmed = false, ProductGiven = false, MtgoLinkId = dbUser.Id, Position = 0, RequireCollateral = 0, Team = 0, DropRound = -1 }; try { draft.CubeDraftPlayers.Add(newPlayer); _db.SaveChanges(); } catch (Exception ex) { Log.Debug("Exception adding CubeDraftPlayer", ex); draft.CubeDraftPlayers.Remove(newPlayer); return(0); } Log.DebugFormat("Player Added: playerId='{0}', mtgoLinkId='{1}'. Sending 3", newPlayer.Id, newPlayer.MtgoLinkId); Clients.Group(String.Format("draft/{0}/clients", draftId)).playerUpdated(new PlayerUpdatedModel(newPlayer, draft)); return(3); } catch (Exception ex) { Log.Debug("Uncaught expcetion in Signup", ex); Log.DebugFormat("Inner Exception: {0}", ex.InnerException); throw; } }