85 lines
2.0 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 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, "Ошибка при получении программы");
}
}
}
}