コード例 #1
0
        public async Task <int> AddRaiseToAuctionAsync(RaiseDto raise)
        {
            if (raise == null)
            {
                return(0);
            }
            using (var uow = UnitOfWorkProvider.Create())
            {
                if (await auctionService.GetAsync(raise.AuctionId, false) == null)
                {
                    return(0);
                }

                if (await userService.GetAsync(raise.UserId, false) == null)
                {
                    return(0);
                }

                var res = raiseService.Create(raise);
                await auctionService.RaiseForAuction(raise);

                await uow.Commit();

                return(res.Id);
            }
        }
コード例 #2
0
        public async Task <bool> RaiseForAuction(RaiseDto raiseDto)
        {
            if (raiseDto == null)
            {
                return(false);
            }

            var user = await userRepository.GetAsync(raiseDto.UserId);

            if (user == null)
            {
                return(false);
            }

            var auction = await Repository.GetAsync(raiseDto.AuctionId);

            if (auction.ActualPrice >= raiseDto.Amount)
            {
                throw new ArgumentException("Raise amount must be bigger than actual price");
            }
            if (auction.StartDate.CompareTo(raiseDto.DateTime) > 0 || auction.EndDate.CompareTo(raiseDto.DateTime) <= 0)
            {
                throw new ArgumentException("you cannot raiseDto for this auction, it hasn't started yet or has already finished. ");
            }


            auction.ActualPrice = raiseDto.Amount;
            Repository.Update(auction);
            return(true);
        }
コード例 #3
0
        public async Task <bool> RaiseForAuction(RaiseDto raise)
        {
            using (var uow = UnitOfWorkProvider.Create())
            {
                await auctionService.RaiseForAuction(raise);

                await uow.Commit();

                return(true);
            }
        }
コード例 #4
0
        public async Task <string> PostRaise([FromBody] RaiseDto raise)
        {
            if (raise == null || !ModelState.IsValid)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }
            var raiseId = await ModifyAuctionsFacade.AddRaiseToAuctionAsync(raise);

            if (raiseId == 0)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }
            return($"Created raise with id: {raiseId}.");
        }
コード例 #5
0
        public async Task <string> PutRaise(int id, [FromBody] RaiseDto raise)
        {
            if (!ModelState.IsValid)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }
            var success = await ModifyAuctionsFacade.UpdateRaiseAsync(raise);

            if (!success)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
            return($"Updated raise with id: {id}");
        }
コード例 #6
0
        public async Task <bool> UpdateRaiseAsync(RaiseDto raise)
        {
            if (raise == null)
            {
                return(false);
            }
            using (var uow = UnitOfWorkProvider.Create())
            {
                if (await raiseService.GetAsync(raise.Id) == null)
                {
                    return(false);
                }

                await raiseService.Update(raise);

                await uow.Commit();

                return(true);
            }
        }