Как загрузить объект потока памяти через angularJS и webaAPI2

У меня есть проект, где я используюNPOI создать документ Excel из моего приложения Angular. Мне звонят из моего углового сервиса на мой контроллер webapi следующим образом:

function exportReportToExcel(report) {
            return $http.post('reportlibrary/exportReport/', report, {
            }).then(function (response) {
                return response.data;
            });
        };

Внутри контроллера я делаю следующий звонок

[HttpPost]
public HttpResponseMessage ExportReport([FromBody]DTOs.Report report)
{
  try
     {
      IReportPersistenceManager manager = ContainerConfigurator.Instance.Resolve<IReportPersistenceManager>();

      MemoryStream ms = new MemoryStream();
 ,     //we have to pass to the NOPI assemble file type as well as file name 
     //since we only deal with excel for now we will set it but this could be configured later.
      long id = report.ReportId;
      string mimeType = "application/vnd.ms-excel";
      string filename = "unknown";
      manager.ExportDataToExcel(id, (name, mime) =>
      {
       mimeType = mime;
       filename = name;
       return ms;
      });
     ms.Position = 0;

    var response = new HttpResponseMessage();
    response.Content = new ByteArrayContent(ms.ToArray());
    response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.ms-excel");       
   return (response);
   }
   catch (Exception)
   {
   //error
   return new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest);
   }
}

Это миграция из приложения MVC, и ранее мне удалось вернуть объект с помощью System.IO.File, чтобы вернуть объект, а также закрыть поток.

Я никогда не делал этого с Angular, но из того, что я прочитал, видно, что я могу поместить объект потока памяти в массив byteArray и передать его обратно клиенту.

Если это правильный подход, как я могу распутать этот объект, как только он возвращается к угловому сервису и контроллеру.

Цель здесь - позволить пользователю загрузить ранее сохраненный отчет в виде файла Excel.

Я на правильном пути? Есть ли более эффективный способ загрузки объекта потока памяти? Как я могу передать этот контекст в браузер?

заранее спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос