public async Task <ApiResponseDto <bool> > UpdateTransactionPaymentStatus(long userId, long transactionId, bool isAdmin) { var transaction = await _transRepo.FindTransactionById(transactionId); if (transaction == null) { return(new ApiResponseDto <bool>(404, "Record not found", "Error updating record", false)); } if (transaction.Buyer.Id != userId || !isAdmin) { return(new ApiResponseDto <bool>(403, "User not authorized to carry out this operation", "Error updating record", false)); } transaction.HasPaid = true; _transRepo.UpdateTransaction(transaction); var isUpdated = await _transRepo.SaveChanges(); if (!isUpdated) { return(new ApiResponseDto <bool>(500, "An error occured while updating transaction", "Error updating transaction", false)); } await _mailingServices.sendNotificationOfPayment(transaction); return(new ApiResponseDto <bool>(200, "Transaction successfully updated", null, true)); }