public bool UpdateAuctionDetails(AuctionEditRequestModel request) { ValidateAuctionUpdate(request); int loggedInUserId = m_permissionService.GetAndValidateUserId(); return(m_auctionsRepository.UpdateAuctionDetails(request, loggedInUserId)); }
/// <summary> /// Validate auction update permissions /// </summary> /// <param name="request"></param> private void ValidateAuctionUpdate(AuctionEditRequestModel request) { if (request.IsNotSpecified()) { throw new WebApiException(HttpStatusCode.BadRequest, AuctionErrorMessages.MissingAuctionsInformation); } if (request.AuctionId.IsNotSpecified()) { throw new WebApiException(HttpStatusCode.BadRequest, AuctionErrorMessages.MissingAuctionsInformation); } // todo: kke: add missing validation checks! }
public bool UpdateAuctionDetails(AuctionEditRequestModel request, int loggedInUserId) { var strategy = m_context.Database.CreateExecutionStrategy(); strategy.Execute(() => { try { using (var transaction = m_context.Database.BeginTransaction()) { Auction auctionForUpdate = m_context.Auctions.FirstOrDefault(auct => auct.AuctionId == request.AuctionId); if (auctionForUpdate.IsNotSpecified() == false) { auctionForUpdate.Name = request.AuctionName; auctionForUpdate.StartingPrice = request.AuctionStartingPrice; auctionForUpdate.StartDate = request.AuctionStartDate; auctionForUpdate.ApplyTillDate = request.AuctionApplyTillDate; auctionForUpdate.EndDate = request.AuctionEndDate; // todo: kke: add missing status change here! m_context.SaveChanges(); transaction.Commit(); } else { throw new WebApiException(HttpStatusCode.BadRequest, AuctionErrorMessages.CouldNotUpdateAuction); } } } catch (Exception ex) { throw new WebApiException(HttpStatusCode.BadRequest, AuctionErrorMessages.CouldNotUpdateAuction, ex); } }); return(true); }
[HasPermission(Permission.CreateAuction)] // TODO: KKE: Add correct permission! public IActionResult Edit([FromBody] AuctionEditRequestModel request) { return(Ok(m_auctionsService.UpdateAuctionDetails(request))); }