コード例 #1
0
    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())));
    }