Ejemplo n.º 1
0
        public async Task <IActionResult> Create([FromBody] BidModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest());
            }

            var bet = this.bettingService.GetById(model.BettingId);

            if (bet != null && bet.Status == BettingStatus.Continue)
            {
                model.Date          = DateTime.Now;
                model.UserId        = (await this.userManager.FindByNameAsync(this.User.Identity.Name)).Id;
                model.Coefficient   = BettingHelper.GetTimeCoefficient(bet.StartDate, bet.FinishDate, model.Date);
                model.PaymentStatus = PaymentStatus.None;


                var result = this.bidService.Create(model);
                model.PaymentAddress = this.bitcoinWalletService.GetAddressById(model.BidId).ToString();
                this.bidService.Update(model);

                if (result)
                {
                    return(this.Ok(new { result = true, bid = model }));
                }
            }

            return(this.Ok(new { result = false }));
        }
Ejemplo n.º 2
0
        public void GetTimeCoefficient_InvalidParams_ExpectCoeffOne()
        {
            var start  = DateTime.MaxValue;
            var finish = DateTime.Now.Date;
            var curr   = DateTime.MinValue;

            var coefficient = BettingHelper.GetTimeCoefficient(start, finish, curr);

            Assert.AreEqual(coefficient, 1M);
        }
Ejemplo n.º 3
0
        public void GetTimeCoefficient_ValidParams_ExpectCoeffTwo()
        {
            var offset = TimeSpan.FromSeconds(1000);
            var start  = DateTime.Now.Date;
            var finish = DateTime.Now.Date.Add(offset);
            var curr   = start;

            var coefficient = BettingHelper.GetTimeCoefficient(start, finish, curr);

            Assert.AreEqual(coefficient, 2M);
        }