85 lines
2.0 KiB
C#
Raw Normal View History

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using BankContracts.BindingModels;
using BankContracts.BusinessLogicsContracts;
using BankContracts.SearchModels;
using BankContracts.ViewModels;
using BankDatabaseImplement.Models;
using BankBusinessLogic.BusinessLogics;
namespace BankRestApi.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class ProgramController : Controller
{
private readonly ILogger _logger;
private readonly IProgramLogic _program;
public ProgramController(ILogger<ProgramController> logger, IProgramLogic program)
{
_logger = logger;
_program = program;
}
[HttpGet]
public IActionResult Create()
{
try
{
var programs = _program.ReadList(null);
ViewBag.Programs = programs;
return View();
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при загрузке формы создания клиента");
return StatusCode(500, "Ошибка при загрузке формы");
}
}
[HttpGet]
public List<ProgramViewModel> GetPrograms()
{
try
{
List<ProgramViewModel> res;
res = _program.ReadList(null);
return res;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения списка программ");
throw;
}
}
[HttpPost]
public bool CreateProgram(ProgramBindingModel model)
{
try
{
return _program.Create(model);
}
catch (Exception ex)
{
_logger.LogError(ex, "Не удалось создать программу");
throw;
}
}
[HttpGet("{id}")]
public IActionResult GetProgramById(int id)
{
try
{
var program = _program.GetProgramById(id);
if (program == null)
{
return NotFound($"Программа с ID {id} не найдена.");
}
return Ok(program);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при получении программы");
return StatusCode(500, "Ошибка при получении программы");
}
}
}
}