public static async Task <IResult> BuyFromOffer(int buyerid, long quantity, int offerid, IOfferService offerService, IOptions <AppSettings> settings) { if (buyerid <= 0) { return(Results.BadRequest(new ApiError(string.Format(Strings.Invalid, "buyer id")))); } if (quantity <= 0) { return(Results.BadRequest(new ApiError(string.Format(Strings.Invalid, "quantity")))); } var oldestFirst = settings.Value.OldestFirst; var offer = await offerService.ReadAsync(offerid); if (offer is null) { return(Results.BadRequest(new ApiError(string.Format(Strings.ItemNotFound, "offer", "id", offerid)))); } var result = await offerService.BuyFromOfferAsync(buyerid, quantity, offer, oldestFirst); if (result.Successful) { return(Results.Ok()); } return(Results.BadRequest(new ApiError(result.ErrorMessage()))); }