using BankYouBankruptContracts.BindingModels; using BankYouBankruptContracts.BusinessLogicsContracts; using BankYouBankruptContracts.SearchModels; using BankYouBankruptContracts.ViewModels; using Microsoft.AspNetCore.Mvc; namespace BankYouBankruptRestApi.Controllers { //указание у контроллера, что Route будет строиться не только по наванию контроллера, но и по названию метода (так как у нас два Post-метода) [Route("api/[controller]/[action]")] [ApiController] public class AccountController : Controller { private readonly ILogger _logger; private readonly IAccountLogic _accountLogic; public AccountController(IAccountLogic accountLogic, ILogger logger) { _logger = logger; _accountLogic = accountLogic; } [HttpGet] public AccountViewModel? Login(string accountNumber, string passwordAccount) { try { //попытка найти запись по переданным номеру и паролю счёта return _accountLogic.ReadElement(new AccountSearchModel { AccountNumber = accountNumber, PasswordAccount = passwordAccount }); } catch (Exception ex) { _logger.LogError(ex, "Ошибка входа в систему"); throw; } } [HttpPost] public void Register(AccountBindingModel model) { try { //создание счёта _accountLogic.Create(model); } catch (Exception ex) { _logger.LogError(ex, "Ошибка регистрации"); throw; } } [HttpPost] public void UpdateData(AccountBindingModel model) { try { //изменение счёта _accountLogic.Update(model); } catch (Exception ex) { _logger.LogError(ex, "Ошибка обновления данных"); throw; } } [HttpGet] public List? SearchAllAccounts(int cashierId) { try { //попытка найти запись по переданным номеру и паролю счёта return _accountLogic.ReadList(new AccountSearchModel { CashierId = cashierId }); } catch (Exception ex) { _logger.LogError(ex, "Ошибка входа в систему"); throw; } } } }