public async Task <Response> MarkPaid(MarkPaidRequest request) { // TODO add validation that the marking user is the chosen supplier DbSet <ParticipancyEntity> participancies_db = _context.Set <ParticipancyEntity>(); var p = await participancies_db.FindAsync(request.BidId, request.BuyerId).ConfigureAwait(false); if (p == null) { return(new Response() { IsOperationSucceeded = false, SuccessOrFailureMessage = "participation not found" }); } p.HasPaid = request.HasPaid; try { participancies_db.Update(p); await _context.SaveChangesAsync().ConfigureAwait(false); } catch (Exception ex) { return(new Response() { IsOperationSucceeded = false, SuccessOrFailureMessage = ex.Message }); } return(new Response() { IsOperationSucceeded = true, SuccessOrFailureMessage = this.getSuccessMessage() }); }
public async Task <ActionResult> MarkPayment(MarkPaidRequest markPaidRequest) { if (!markPaidRequest.BidId.IsValidId() || !markPaidRequest.BuyerId.IsValidId()) { return(this.StatusCode(StatusCodes.Status400BadRequest, $"one of the following: bidId: {markPaidRequest.BidId}, buyerId: {markPaidRequest.BuyerId}")); } markPaidRequest.MarkingUserId = GetRequestUserId(); var authResult = await this.authorizationService.AuthorizeAsync(User, markPaidRequest.BidId, PolicyNames.ChosenSupplierPolicy).ConfigureAwait(false); if (!authResult.Succeeded) { return(this.StatusCode(StatusCodes.Status403Forbidden)); } Response response = await this.bidsManager.MarkPaid(markPaidRequest).ConfigureAwait(false); if (response.IsOperationSucceeded) { return(this.StatusCode(StatusCodes.Status200OK, response.SuccessOrFailureMessage)); } return(this.StatusCode(StatusCodes.Status405MethodNotAllowed, response.SuccessOrFailureMessage)); }