147 lines
3.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using BankContracts.BindingModels.Client;
using BankContracts.BusinessLogicsContracts.Client;
using BankContracts.SearchModels.Client;
using BankContracts.ViewModels.Client.ViewModels;
using Microsoft.AspNetCore.Mvc;
namespace BankRestAPI.Controllers
{
// Route будет строиться по наванию контроллера и по названию метода (два Post-метода)
[Route("api/[controller]/[action]")]
[ApiController]
public class ClientController : Controller
{
private readonly ILogger _logger;
private readonly IClientLogic _clientLogic;
private readonly IDebitingLogic _debitingLogic;
private readonly ICreditingLogic _creditingLogic;
// Конструктор
public ClientController(ILogger<ClientController> logger, IClientLogic clientLogic, IDebitingLogic debitingLogic, ICreditingLogic creditingLogic)
{
_logger = logger;
_clientLogic = clientLogic;
_debitingLogic = debitingLogic;
_creditingLogic = creditingLogic;
}
[HttpGet]
public ClientViewModel? Login(string login, string password)
{
try
{
// Попытка найти клиента (запись) по переданным логину и паролю
return _clientLogic.ReadElement(new ClientSearchModel
{
Email = login,
Password = password
});
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка входа в систему");
throw;
}
}
[HttpGet]
public List<ClientViewModel>? GetAllClients()
{
try
{
return _clientLogic.ReadList(null);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения пользователя");
throw;
}
}
[HttpGet]
public ClientViewModel? GetClient(int clientId)
{
try
{
// Попытка найти клиента
return _clientLogic.ReadElement(new ClientSearchModel
{
Id = clientId
});
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения пользователя");
throw;
}
}
[HttpPost]
public void Register(ClientBindingModel model)
{
try
{
// Создание клиента
_clientLogic.Create(model);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка регистрации");
throw;
}
}
[HttpPost]
public void UpdateData(ClientBindingModel model)
{
try
{
// Изменение данных о клиенте
_clientLogic.Update(model);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка обновления данных");
throw;
}
}
[HttpGet]
public List<DebitingViewModel>? getClientsDebitings(int clientId)
{
try
{
return _debitingLogic.ReadList(new DebitingSearchModel()
{
ClientId = clientId
});
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения пользователей");
throw;
}
}
[HttpGet]
public List<CreditingViewModel>? getClientsCreditings(int clientId)
{
try
{
return _creditingLogic.ReadList(new CreditingSearchModel()
{
ClientId = clientId
});
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения пользователей");
throw;
}
}
}
}