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); } }
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); }
public async Task <bool> RaiseForAuction(RaiseDto raise) { using (var uow = UnitOfWorkProvider.Create()) { await auctionService.RaiseForAuction(raise); await uow.Commit(); return(true); } }
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}."); }
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}"); }
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); } }