У меня уже есть конечная точка следующего вида:
[Route("sampleroute/getxl")]
public async Task<IActionResult> GetXLTransactionSummaries()
{
var data = await _service.GetExcelFileByDateAndBranchCode();
return File(data, "application/octet-stream", sampleFilename);
}
Моя проблема в том, что я не знаю, как вызвать это из моего c# приложения. Я знаю, как вызывать API, возвращающие классы. При вызове API я получил следующий код:
using Newtonsoft.Json;
using RestSharp;
using System;
using System.Net;
......
public File SampleMethod(//I want a File return type
var client = new RestClient(BaseURL);
var request = new RestRequest($"{Endpoint}/sampleroute/getxl", Method.GET);
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
request.AddHeader("Authorization", "Bearer sample-bearer-08937249");
client.Proxy = WebRequest.DefaultWebProxy;
var response = client.Execute(request);
if (response.ErrorException != null) throw new Exception("", response.ErrorException);
if (response.StatusCode == HttpStatusCode.OK || response.StatusCode == HttpStatusCode.NoContent)
return response.Content; //not sure about this
else throw new Exception($"An error has occurred while calling the API: {response.Content}");//I am not sure about this either
}
Это моя кнопка, пытающаяся получить файл:
private void Sample_Click(object sender, RoutedEventArgs e)
{
File file = SampleMethod();
}
Каким должен быть правильный способ сделать это?