public void Init() { deckRepo = new MongoDeckRepository("mongodb://localhost"); UserId = Guid.NewGuid(); Deck deck = new Deck(); List <DeckCard> cards = new List <DeckCard>(); cards.Add(new DeckCard() { MultiverseId = 1, Amount = 2 }); List <DeckCard> sideBoard = new List <DeckCard>(); sideBoard.Add(new DeckCard() { MultiverseId = 34, Amount = 3 }); deck.Cards = cards; deck.SideBoard = sideBoard; deck.Description = "This is a test deck."; deck.IsPublic = true; deck.Name = "Test Deck"; deck.CreatedAt = DateTime.Now; deck.UserId = UserId; deck = deckRepo.AddDeck(deck); DeckId = deck.Id; }
public void Add_deck() { Deck deck = new Deck(); List <DeckCard> cards = new List <DeckCard>(); cards.Add(new DeckCard() { MultiverseId = 1, Amount = 2 }); List <DeckCard> sideBoard = new List <DeckCard>(); sideBoard.Add(new DeckCard() { MultiverseId = 34, Amount = 3 }); deck.Cards = cards; deck.SideBoard = sideBoard; deck.Description = "This is a test deck 2"; deck.IsPublic = true; deck.Name = "Test Deck 2"; deck.CreatedAt = DateTime.Now; deck.UserId = this.UserId; deck = deckRepo.AddDeck(deck); Assert.NotNull(deck); }
public DeckViewerModule() { Get["/decks/viewer/{deckId?}"] = parameters => { DeckModel model = new DeckModel(); model.ActiveMenu = "mydecks"; model.Planeswalker = (Planeswalker)this.Context.CurrentUser; model.Title = "M:tgDb - Simple Deck Viewer"; if (parameters.deckId != null) { Guid id; if (Guid.TryParse((string)parameters.deckId, out id)) { model.Deck = deckbuilder.GetDeck(id); if (model.Deck != null) { model.Name = model.Deck.Name; model.Description = model.Description; model.DeckFile = MtgFile.ExportDec(model.Deck); } } } return(View["Deck/Deck", model]); }; Post["/decks/viewer/{deckId?}"] = parameters => { DeckModel model = this.Bind <DeckModel>(); model.ActiveMenu = "mydecks"; model.Planeswalker = (Planeswalker)this.Context.CurrentUser; model.Title = "M:tgDb - Simple Deck Viewer"; var result = this.Validate(model); if (!result.IsValid) { model.Errors = ErrorUtility.GetValidationErrors(result); return(View["Deck/Deck", model]); } byte[] byteArray = Encoding.ASCII.GetBytes(model.DeckFile); MemoryStream stream = new MemoryStream(byteArray); try { model.Deck = MtgFile.ImportDec(stream); if (model.Deck.Cards.Count == 0) { model.Errors.Add("Deck file contains no valid cards."); return(View["Deck/Deck", model]); } } catch (Exception exc) { model.Errors.Add(exc.Message); return(View["Deck/Deck", model]); } if (parameters.deckId != null) { Guid id; if (Guid.TryParse((string)parameters.deckId, out id)) { Deck deck = null; try { deck = deckbuilder.GetDeck(id); } catch (Exception exc) { model.Errors.Add(exc.Message); } if (deck != null) { model.Deck.UserId = deck.UserId; model.Deck.Id = deck.Id; model.Deck.CreatedAt = deck.CreatedAt; } } } if (Request.Form.Save != null) { if (model.Deck.Id != Guid.Empty && model.Planeswalker.Id == model.Deck.UserId) { model.Deck.UserId = model.Planeswalker.Id; model.Deck.Name = model.Name; model.Deck.Description = model.Description; try { model.Deck = deckbuilder.UpdateDeck(model.Deck); } catch (Exception exc) { model.Errors.Add(exc.Message); } } else { if (model.Planeswalker != null) { model.Deck.UserId = model.Planeswalker.Id; } model.Deck.Name = model.Name; model.Deck.Description = model.Description; try { model.Deck = deckbuilder.AddDeck(model.Deck); } catch (Exception exc) { model.Errors.Add(exc.Message); } if (model.Deck.UserId == Guid.Empty && !string.IsNullOrEmpty(model.Email)) { try { Email.Send(model.Email, "M:tgDb - You created an anonymous deck!", string.Format("Deck link: https://www.mtgdb.info/decks/viewer/{0}", model.Deck.Id)); } catch (Exception exc) { model.Errors.Add(exc.Message); } } } return(Response.AsRedirect(string.Format("/decks/viewer/{0}", model.Deck.Id.ToString()))); } return(View["Deck/Deck", model]); }; }