98 lines
3.1 KiB
C#
98 lines
3.1 KiB
C#
using Core;
|
|
using Core.DTO;
|
|
using LiMan.APi.Data;
|
|
using LiMan.DB.DTO;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.Extensions.Logging;
|
|
using NLog;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace LiMan.APi.Controllers
|
|
{
|
|
/// <summary>
|
|
/// Controller livello TICKET
|
|
/// </summary>
|
|
[Route("api/ticket")]
|
|
[ApiController]
|
|
public class TicketController : ControllerBase
|
|
{
|
|
#region Private Fields
|
|
|
|
/// <summary>
|
|
/// Classe per logging
|
|
/// </summary>
|
|
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
|
|
|
#endregion Private Fields
|
|
|
|
#region Public Constructors
|
|
|
|
/// <summary>
|
|
/// Init generico
|
|
/// </summary>
|
|
/// <param name="DataService"></param>
|
|
public TicketController(ApiDataService DataService)
|
|
{
|
|
dataService = DataService;
|
|
Log.Info("Avviata classe TicketController");
|
|
}
|
|
|
|
#endregion Public Constructors
|
|
|
|
#region Protected Properties
|
|
|
|
/// <summary>
|
|
/// Dataservice x accesso DB
|
|
/// </summary>
|
|
protected ApiDataService dataService { get; set; }
|
|
|
|
#endregion Protected Properties
|
|
|
|
#region Public Methods
|
|
|
|
/// GET api/ticket/id
|
|
/// <summary>
|
|
/// Recupera elenco Ticket dato cliente / applicazione / chiave
|
|
/// </summary>
|
|
/// <param name="id">Codice cliente/Installazione</param>
|
|
/// <param name="CodApp">Codice Applicazione</param>
|
|
/// <param name="Chiave">Master Key</param>
|
|
/// <returns></returns>
|
|
[HttpGet("{id}")]
|
|
public async Task<List<TicketDTO>> Get(string id, string CodApp, string Chiave)
|
|
{
|
|
var result = await dataService.TicketByCliente(id, CodApp, Chiave);
|
|
await dataService.recordCall(id, CodApp, $"GET:api/ticket:{Chiave}");
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Richiesta di registrazione ticket supporto
|
|
/// </summary>
|
|
/// <param name="CurrRequest">Obj Richiesta</param>
|
|
// POST api/ticket/sendReq
|
|
[HttpPost("sendReq")]
|
|
public async Task<TicketDTO> sendReq([FromBody] SupportRequest CurrRequest)
|
|
{
|
|
TicketDTO result = new TicketDTO();
|
|
// controllo valori
|
|
if (CurrRequest.IsValid)
|
|
{
|
|
// registro richiesta
|
|
var insRes = await dataService.TicketAdd(CurrRequest);
|
|
}
|
|
// restituisco richieste aperte
|
|
var rawResult= await dataService.TicketByCliente(CurrRequest.CodInst, CurrRequest.CodApp, CurrRequest.MasterKey, 1);
|
|
result = rawResult.FirstOrDefault();
|
|
Log.Info($"Ticket generated: {result.IdxTicket} | CI: {CurrRequest.CodInst} | CA: {CurrRequest.CodApp}");
|
|
await dataService.recordCall(CurrRequest.CodInst, CurrRequest.CodApp, $"POST:api/ticket/sendReq:{CurrRequest.MasterKey}");
|
|
return result;
|
|
}
|
|
|
|
#endregion Public Methods
|
|
}
|
|
} |