Создайте общий сервис для повторного использования логики:
public class MyAccountService{
private AppDbContext _context;
public MyAccountService(AppDbContext context){
this._context = context;
}
public int GetTotal(int AccountId){
Account account=this._context.Accounts.FirstOrDefault(s=>s.Id=AccountId);
return account.Sum(s=>s.Amount);
}
}
зарегистрируйте его как сервис с определенными областями.
services.AddDbContext<AppDbContext>(options =>options.UseSqlServer(Configuration.GetConnectionString("AppDbContext")))
services.AddScoped<MyAccountService>();
И добавьте эту услугу в свои контроллеры так, как вам нужно:
public class A1Controler :{
private AccountService _accountService
public A1Controller(MyAccountService accountService){
this._accountService=accountService;
}
[HttpPost]
public ActionResult GetTotal(int AccountId)
{
var theTotal=this._accountService.GetTotal(AccountId);
return Json(theTotal);
}
}
Если у вас есть еще A2Controller
, просто сделайте то же самое.