Ejemplo n.º 1
0
        public ActionResult <Contest> Post([FromBody] ContestViewModel contest)
        {
            var newContest = new Contest {
                Id = contest.Id, Description = contest.Description, IsOpen = true
            };

            rocketDbContext.Contests.Add(newContest);
            rocketDbContext.SaveChanges();

            return(CreatedAtAction(nameof(Post), new { id = newContest.Id }, newContest));
        }
Ejemplo n.º 2
0
        public ActionResult <Bet> Post([FromBody] BetViewModel bet)
        {
            var user    = rocketDbContext.Users.Find(bet.UserId);
            var contest = rocketDbContext.Contests.Find(bet.ContestId);

            if (user == null || contest == null)
            {
                throw new KeyNotFoundException();
            }
            if (contest.IsOpen == false)
            {
                throw new Exception("Contest is not open !");
            }

            var duplicateExists = rocketDbContext.Bets.Where(x => x.UserId == bet.UserId && x.ContestId == bet.ContestId).SingleOrDefault();

            if (duplicateExists != null)
            {
                throw new Exception("Duplicate found !");
            }

            var newBet = new Bet
            {
                Id        = bet.Id,
                User      = user,
                Contest   = contest,
                Amount    = bet.Amount,
                Outcome   = bet.Outcome,
                Timestamp = DateTimeOffset.Now
            };

            rocketDbContext.Bets.Add(newBet);
            var newTransaction = new Transaction
            {
                Type    = 1,
                Amount  = bet.Amount,
                Comment = $"Placed a bet of {bet.Amount}",
                UserId  = user.Id
            };

            rocketDbContext.Transactions.Add(newTransaction);
            rocketDbContext.SaveChanges();

            return(CreatedAtAction(nameof(Post), new { id = newBet.Id }, newBet));
        }
Ejemplo n.º 3
0
        public ActionResult <Models.Transaction> Post([FromBody] TransactionViewModel transaction)
        {
            var user           = rocketDbContext.Users.Find(transaction.UserId);
            var newTransaction = new Models.Transaction {
                Id      = transaction.Id,
                Type    = transaction.Type,
                Amount  = transaction.Amount,
                Comment = transaction.Comment,
                User    = user
            };

            rocketDbContext.Transactions.Add(newTransaction);
            rocketDbContext.SaveChanges();

            return(CreatedAtAction(nameof(Post), new { id = newTransaction.Id }, newTransaction));
        }