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 })); }
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); }
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); }