62 lines
1.7 KiB
C#
Raw Normal View History

using Microsoft.AspNetCore.Authorization;
2018-01-30 08:50:44 +00:00
using Microsoft.AspNetCore.Mvc;
using Microsoft.eShopOnContainers.WebMVC.Services;
using Microsoft.eShopOnContainers.WebMVC.ViewModels;
using Newtonsoft.Json;
using System.Net.Http;
2018-01-30 08:50:44 +00:00
using System.Threading.Tasks;
namespace WebMVC.Controllers
{
class TestPayload
{
public int CatalogItemId { get; set; }
2018-01-30 08:50:44 +00:00
public string BasketId { get; set; }
public int Quantity { get; set; }
}
[Authorize]
public class TestController : Controller
{
private readonly IHttpClientFactory _client;
2018-01-30 08:50:44 +00:00
private readonly IIdentityParser<ApplicationUser> _appUserParser;
public TestController(IHttpClientFactory client, IIdentityParser<ApplicationUser> identityParser)
2018-01-30 08:50:44 +00:00
{
_client = client;
_appUserParser = identityParser;
}
public async Task<IActionResult> Ocelot()
{
2018-02-15 17:30:39 +01:00
var url = "http://apigw/shopping/api/v1/basket/items";
2018-01-30 08:50:44 +00:00
var payload = new TestPayload()
{
CatalogItemId = 1,
Quantity = 1,
BasketId = _appUserParser.Parse(User).Id
};
var content = new StringContent(JsonConvert.SerializeObject(payload), System.Text.Encoding.UTF8, "application/json");
var response = await _client.CreateClient(nameof(IBasketService))
.PostAsync(url, content);
2018-01-30 08:50:44 +00:00
if (response.IsSuccessStatusCode)
{
var str = await response.Content.ReadAsStringAsync();
2018-01-30 08:50:44 +00:00
return Ok(str);
}
else
{
return Ok(new { response.StatusCode, response.ReasonPhrase });
}
}
}
}