コード例 #1
0
ファイル: LotController.cs プロジェクト: Osipchik/AuctionMVC
        public async Task <IActionResult> Get(int lotId)
        {
            var lot = await _repository.Find(lotId);

            if (lot != null)
            {
                // lot.EndAt = lot.EndAt.AddMinutes(this.GetTimezoneOffset());

                var isOwner = HttpContext.User.Identity.IsAuthenticated &&
                              (lot.AppUserId == HttpContext.UserId() || User.IsInRole(Constants.AdminRole));

                if (lot.IsAvailable || isOwner)
                {
                    await _repository.LoadRates(lot);

                    ViewBag.Time       = lot.EndAt.AddMinutes(this.GetTimezoneOffset());
                    ViewData["UserId"] = HttpContext.UserId();
                    ViewData["Funded"] = lot.Rates?.OrderByDescending(c => c.CreatedAt).FirstOrDefault()?.Amount ?? 0m;
                    return(View(lot));
                }
            }

            ViewBag.Message = $"Lot with Id {lotId} not found";

            return(NotFound());
        }
コード例 #2
0
        public async Task Find_Rates_Test()
        {
            var lot = await repository.Find(1);

            Assert.Equal(Lots[0], lot);
            Assert.Equal(Lots[0].Id, lot.Id);

            await repository.LoadRates(lot);

            Assert.Equal(Rates, lot.Rates);
            Assert.Equal(Rates.Count, lot.Rates.Count);
        }
コード例 #3
0
ファイル: BetHub.cs プロジェクト: Osipchik/AuctionMVC
        private async Task <Rate> SaveBet(int lotId, decimal bet)
        {
            var lot = await _lotRepository.Find(lotId);

            if (lot != null)
            {
                await _lotRepository.LoadRates(lot);

                if ((lot.Rates.Count == 0 || bet > lot.Rates.Max(i => i.Amount)) && bet >= lot.MinPrice)
                {
                    var rate = new Rate
                    {
                        Amount    = bet,
                        CreatedAt = DateTime.UtcNow,
                        LotId     = lotId,
                        AppUserId = Context.UserIdentifier
                    };

                    return(await _repository.Add(rate));
                }
            }

            return(null);
        }