Вы можете обернуть IActionResult
с помощью Task
и await
в следующих задачах.
public async Task<IActionResult> post()
{
var authtoken = await _salesForceService.GetTokenForSalesForce();
var response = await _salesForceService.GetOrderCountFromSalesForce(authtoken);
DashboardModel dashboardModel = //fill the object
return Ok(dashboardModel);
}
По крайней мере, это то, что вы просите, насколько я понимаю, если это еще одна проблема, дайте мне знать.
РЕДАКТИРОВАТЬ 1:
Это всего лишь мое предложение / мнение.
Лично мне не очень нравится, когда код везде упакован в try-catch, поэтому код может быть трудно читать и поддерживать. Вы действительно должны рассмотреть возможность централизованной обработки исключений в одном месте, у вас может быть базовый контроллер или просто промежуточное программное обеспечение, подобное этому:
public class ErrorHandlingMiddleware
{
private readonly RequestDelegate _next;
public ErrorHandlingMiddleware(RequestDelegate next)
{
this._next = next;
}
public async Task Invoke(HttpContext context, ILogger logger)
{
try
{
await _next(context);
}
catch (Exception ex)
{
await HandleExceptionAsync(context, ex, logger);
}
}
private static Task HandleExceptionAsync(HttpContext context, Exception exception, ILogger logger)
{
logger.Log(exception);
//do something
return context.Response.WriteAsync(... something ...); //Maybe some JSON message or something
}
}
Вы просто регистрируете его как промежуточное ПО в методе Configure
, как показано ниже:
app.UseMiddleware<ErrorHandlingMiddleware>();