inizializzazione

This commit is contained in:
Marco Audiffredi 2025-03-24 14:50:54 +01:00
parent 62cad651f3
commit 3f6efcbc7f
96 changed files with 25901 additions and 0 deletions

25
ApiPolo.sln Normal file
View File

@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.1.32319.34
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ApiPolo", "ApiPolo\ApiPolo.csproj", "{FCB070A4-CB11-48F7-8245-A609151A95F7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FCB070A4-CB11-48F7-8245-A609151A95F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FCB070A4-CB11-48F7-8245-A609151A95F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FCB070A4-CB11-48F7-8245-A609151A95F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FCB070A4-CB11-48F7-8245-A609151A95F7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {F4BB9AEC-7FFE-4101-8B36-F1CD5AF0DCDB}
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,12 @@
{
"version": 1,
"isRoot": true,
"tools": {
"dotnet-ef": {
"version": "7.0.0",
"commands": [
"dotnet-ef"
]
}
}
}

35
ApiPolo/ApiPolo.csproj Normal file
View File

@ -0,0 +1,35 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Cronos" Version="0.7.1" />
<PackageReference Include="FirebaseAdmin" Version="2.3.0" />
<PackageReference Include="Google.Apis.Auth" Version="1.68.0" />
<PackageReference Include="Google.Apis.FirebaseCloudMessaging.v1" Version="1.68.0.3603" />
<PackageReference Include="Microsoft.AspNet.Mvc" Version="5.2.9" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Negotiate" Version="6.0.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.5">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Nancy" Version="2.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="RestSharp" Version="112.1.0" />
<PackageReference Include="SSH.NET" Version="2020.0.2" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.3.1" />
</ItemGroup>
<ItemGroup>
<Folder Include="wwwroot\VIRTU\" />
</ItemGroup>
<ProjectExtensions><VisualStudio><UserProperties appsettings_1json__JsonSchema="" /></VisualStudio></ProjectExtensions>
</Project>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,791 @@
using ApiPolo.Interfaces;
using ApiPolo.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using System.IdentityModel.Tokens.Jwt;
using System.Text;
using static ApiPolo.Controllers.PoloController;
namespace ApiPolo.Controllers
{
/// <summary></summary>
public class TestController : Controller
{
//interfaccia con tutti i possibili dbset
private readonly ITenantDbContextFactory _dbContextFactory;
//DI con ITenantDbContextFactory
/// <summary></summary>
private DbSet<Chiamate>? _chiamate;
public TestController(ITenantDbContextFactory dbContextFactory)
{
_dbContextFactory = dbContextFactory;
}
//ATTENZIONE - CONFLITTO TRA Compo_Impia_Table e
#region GET_BY_TENANT
private DbSet<Tecnici> getTecniciByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Tecnici; // Use Set<T>() to handle different DbContexts
}
private DbSet<Rapp_New> getRappNewByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Rapps; // Use Set<T>() to handle different DbContexts
}
private DbSet<Chiamate> getChiamateByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Chiamate; // Use Set<T>() to handle different DbContexts
}
private DbSet<Chiusure>? getChiusureByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Chiusure;
}
private DbSet<Manprog> getManutenzioniByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Manutenzioni; // Use Set<T>() to handle different DbContexts
}
private DbSet<Prese> getPreseByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Prese; // Use Set<T>() to handle different DbContexts
}
private DbSet<Sto_Rapp> getSto_RappByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.StoRapp; // Use Set<T>() to handle different DbContexts
}
private DbSet<Anag> getClientiByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Clienti; // Use Set<T>() to handle different DbContexts
}
private DbSet<Caus_Rapp> getCausaliRappByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Causali; // Use Set<T>() to handle different DbContexts
}
private DbSet<Pagam> getPagamentiByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Pagamenti; // Use Set<T>() to handle different DbContexts
}
private DbSet<Saldiart> getSaldiartByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Saldi; // Use Set<T>() to handle different DbContexts
}
/// <summary>
/// CONFLITTO CON Compo_Impia_Table
/// </summary>
/*
private DbSet<Compo_Impia_Table> getComponentiByTenant(string tenant)
{ // IN CONFLITTO CON Compo_Impia_Table
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Componen; // Use Set<T>() to handle different DbContexts
}*/
private DbSet<Compo_Impia_Table> getComponentiTableByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Componen; // Use Set<T>() to handle different DbContexts
}
private DbSet<Magazzini> getMagazziniByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Magaz; // Use Set<T>() to handle different DbContexts
}
private DbSet<Mag_New> getMag_NewByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Mag; // Use Set<T>() to handle different DbContexts
}
private DbSet<Impianto> getImpiantiByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Impia; // Use Set<T>() to handle different DbContexts
}
private DbSet<Commessa> getCommesseByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Commesse; // Use Set<T>() to handle different DbContexts
}
private DbSet<Timbratura> getTimbratureByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Timbr; // Use Set<T>() to handle different DbContexts
}
private DbSet<Sto_Imp> getStoricoImpiantoByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.StoImp; // Use Set<T>() to handle different DbContexts
}
private DbSet<AziendaRif> getAziendeRifByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Azi; // Use Set<T>() to handle different DbContexts
}
private DbSet<Sostituzione> getSostituzioneByTenant(string tenant)
{
var dbContext = _dbContextFactory.GetDbContext(tenant);
return dbContext.Sost; // Use Set<T>() to handle different DbContexts
}
#endregion
#region utility
private string getClaimValueByToken(string token, string claimName)
{
string t = string.Empty;
var handler = new JwtSecurityTokenHandler();
var jwtSecurityToken = handler.ReadJwtToken(token);
if (jwtSecurityToken != null)
{
var id = jwtSecurityToken.Claims.First(claim => claim.Type == claimName).Value;
t = id;
}
return t;
}
private Chiamate_out fillChiamateOut(Chiamate i, string tenant)
{
Chiamate_out o = new Chiamate_out();
o.chcodazi = i.chcodazi;
o.chserial = i.chserial;
o.chstato = i.chstato;
o.chtchiam = i.chtchiam;
o.chdtapp = i.chdtapp;
o.choraaPI = i.choraaPI;
o.chminapi = i.chminapi;
o.chnote = i.chnote;
o.chcodimp = i.chcodimp;
o.csdescr = i.csdescr;
o.antelefo = i.antelefo;
o.andescri = i.andescri;
o.imindiri1 = i.imindiri1;
o.imindiri2 = i.imindiri2;
o.imindiri3 = i.imindiri3;
o.imindiri4 = i.imindiri4;
o.imindiri5 = i.imindiri5;
o.imlocali = i.imlocali;
o.imrefref = i.imrefref;
//costruisco il campo indirizzo
StringBuilder sb = new StringBuilder();
string chiamataIndStampa = string.Empty;
switch (tenant)
{
case Clienti.Marrocco:
#region marrocco
chiamataIndStampa = formattaIndirizzoStampaMarrocco(i);
#endregion
break;
case Clienti.Gitoga:
#region gitoga
chiamataIndStampa = formattaIndirizzoStampaMarrocco(i);
#endregion
break;
case Clienti.Lifta:
#region lifta
chiamataIndStampa = formattaIndirizzoStampaMarrocco(i);
#endregion
break;
case Clienti.Discovery:
#region Discovery
chiamataIndStampa = formattaIndirizzoStampaDiscovery(i);
#endregion
break;
case Clienti.Siet:
//ragione sociale cliente
sb.Append("<b>SPETT.LE :</b>");
sb.Append(!string.IsNullOrEmpty(i.andescri) ? i.andescri + " " : string.Empty);
sb.Append("<br>");
//indirizzo
sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty);
sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() : string.Empty);
chiamataIndStampa = sb.ToString();
break;
default:
sb.Append("<b>SPETT.LE :</b>");
if (!string.IsNullOrEmpty(i.andescri))
{
sb.Append(!string.IsNullOrEmpty(i.andescri) ? i.andescri + " " : string.Empty);
sb.Append("<br>");
}
sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty);
sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() : string.Empty);
chiamataIndStampa = sb.ToString();
break;
}
o.indirizzo_stampa = chiamataIndStampa;
sb.Clear();
string chiamataItemList = string.Empty;
switch (tenant)
{
case Clienti.Marrocco:
#region marrocco
chiamataItemList = formattaItemChiamateMarrocco(i);
#endregion
break;
case Clienti.Gitoga:
#region gitoga
chiamataItemList = formattaItemChiamateMarrocco(i);
#endregion
break;
case Clienti.Lifta:
#region lifta
chiamataItemList = formattaItemChiamateMarrocco(i);
#endregion
break;
case Clienti.Tedesco:
#region Tedesco
chiamataItemList = formattaItemChiamateTedesco(i);
#endregion
break;
case Clienti.VT:
chiamataItemList = formattaItemChiamateVT(i);
break;
default:
#region default
sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty);
sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imcodcap) ? " " + i.imcodcap.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imlocali) ? " " + i.imlocali.Trim() + " " : string.Empty);
if (!string.IsNullOrEmpty(i.chcodimp))
{
sb.Append("<br>");
sb.Append("<b>Impianto</b> : " + i.chcodimp.Trim());
}
chiamataItemList = sb.ToString();
break;
#endregion
}
o.impianto_list = chiamataItemList;
sb.Clear();
string rif_impianto = string.Empty;
switch (tenant)
{
case Clienti.Marrocco:
#region marrocco
rif_impianto = formattaRiferimentoImpiantoMarrocco(i);
#endregion
break;
case Clienti.Gitoga:
#region gitoga
rif_impianto = formattaRiferimentoImpiantoMarrocco(i);
#endregion
break;
case Clienti.Lifta:
#region lifta
rif_impianto = formattaRiferimentoImpiantoMarrocco(i);
#endregion
break;
case Clienti.Discovery:
#region discovery
rif_impianto = formattaRiferimentoImpiantoDiscovery(i);
#endregion
break;
case Clienti.Ferrari:
#region ferrari
rif_impianto = formattaRiferimentoImpiantoFerrari(i);
#endregion
break;
case Clienti.Siet:
#region SIET
sb.AppendLine("<b>N. Impianto: </b> " + i.chcodimp);
if (!string.IsNullOrEmpty(i.imubicaz))
{
sb.AppendLine("<b>Ubicazione: </b> " + i.imubicaz);
}
if (!string.IsNullOrEmpty(i.chrifer))
{
string comm = getCommessaSietBySerial(i.chrifer);
if (!string.IsNullOrEmpty(comm))
{
sb.AppendLine("<b>Commessa: </b> " + comm);
}
}
rif_impianto = sb.ToString();
#endregion
break;
default:
sb.AppendLine("<b>N. Impianto: </b> " + i.chcodimp);
if (!string.IsNullOrEmpty(i.imubicaz))
sb.AppendLine("<b>Ubicazione: </b> " + i.imubicaz);
rif_impianto = sb.ToString();
break;
}
o.riferimento_impianto = rif_impianto;
sb.Clear();
o.imcodcap = i.imcodcap;
o.imcomune = i.imcomune;
o.improvin = i.improvin;
o.imcodnaz = i.imcodnaz;
o.immatric = i.immatric;
o.imnumimp = i.imnumimp;
o.imubicaz = i.imubicaz;
o.tcdescri = i.tcdescri;
o.tccodice = i.tccodice;
o.ser_rapp_ic = i.ser_rapp_ic;
o.tipo_rapp_ic = i.tipo_rapp_ic;
o.ic = i.ic;
o.ser_rapp_rif = i.ser_rapp_rif;
o.tipo_rapp_rif = i.tipo_rapp_rif;
o.rif = i.rif;
o.ser_rapp_chiu = i.ser_rapp_chiu;
o.tipo_rapp_chiu = i.tipo_rapp_chiu;
o.ser_buono_chiu = i.ser_buono_chiu;
o.err_title = i.err_title;
o.err_detail = i.err_detail;
o.err_status_code = i.err_status_code;
o.ancodice = i.ancodice;
o.chiamata = i.chiamata;
o.spe_viaggio = i.spe_viaggio;
o.chnumero = i.chnumero;
Dictionary<string, string> dic = new Dictionary<string, string>();
switch (tenant)
{
case Clienti.Marrocco:
#region marrocco
dic.Add("Esercizio ", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("REF ", !string.IsNullOrEmpty(i.imrefref) ? i.imrefref : String.Empty);
dic.Add("Riferimento:", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Telefono rif.:", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
#endregion
break;
case Clienti.Gitoga:
#region gitoga
dic.Add("Esercizio ", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("REF ", !string.IsNullOrEmpty(i.imrefref) ? i.imrefref : String.Empty);
dic.Add("Riferimento:", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Telefono rif.:", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
#endregion
break;
case Clienti.Lifta:
#region lifta
dic.Add("Esercizio ", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("REF ", !string.IsNullOrEmpty(i.imrefref) ? i.imrefref : String.Empty);
dic.Add("Riferimento:", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Telefono rif.:", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
#endregion
break;
case Clienti.Ferrari:
#region ferrari
dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty);
dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty);
dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty);
dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty);
dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty);
dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty);
dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty);
dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty);
dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty);
dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty);
dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty);
dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty);
dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty);
dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty);
dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty);
dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty);
dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty);
dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty);
dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty);
dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty);
dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty);
dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty);
dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty);
dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty);
dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty);
dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty);
dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty);
dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty);
dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty);
dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty);
dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty);
dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty);
dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty);
dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty);
dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty);
dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty);
dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty);
dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty);
dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty);
dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty);
dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty);
dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty);
dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty);
dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty);
dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty);
dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty);
dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty);
dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty);
dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty);
dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty);
dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty);
dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty);
#endregion
break;
case Clienti.Sicilia:
#region sicilia
dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty);
dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty);
dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty);
dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty);
dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty);
dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty);
dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty);
dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty);
dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty);
dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty);
dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty);
dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty);
dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty);
dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty);
dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty);
dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty);
dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty);
dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty);
dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty);
dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty);
dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty);
dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty);
dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty);
dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty);
dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty);
dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty);
dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty);
dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty);
dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty);
dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty);
dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty);
dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty);
dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty);
dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty);
dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty);
dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty);
dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty);
dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty);
dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty);
dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty);
dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty);
dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty);
dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty);
dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty);
dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty);
dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty);
dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty);
dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty);
dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty);
dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty);
dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty);
dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty);
#endregion
break;
case Clienti.Discovery:
#region discovery
dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty);
dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty);
dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty);
dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty);
dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty);
dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty);
dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty);
dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty);
dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty);
dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty);
dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty);
dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty);
dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty);
dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty);
dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty);
dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty);
dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty);
dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty);
dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty);
dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty);
dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty);
dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty);
dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty);
dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty);
dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty);
dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty);
dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty);
dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty);
dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty);
dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty);
dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty);
dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty);
dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty);
dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty);
dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty);
dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty);
dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty);
dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty);
dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty);
dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty);
dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty);
dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty);
dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty);
dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty);
dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty);
dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty);
dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty);
dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty);
dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty);
dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty);
dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty);
dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty);
#endregion
break;
case Clienti.Sarom:
#region Sarom
dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty);
dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty);
dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty);
dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty);
dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty);
dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty);
dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty);
dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty);
dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty);
dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty);
dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty);
dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty);
dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty);
dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty);
dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty);
dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty);
dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty);
dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty);
dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty);
dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty);
dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty);
dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty);
dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty);
dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty);
dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty);
dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty);
dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty);
dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty);
dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty);
dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty);
dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty);
dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty);
dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty);
dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty);
dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty);
dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty);
dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty);
dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty);
dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty);
dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty);
dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty);
dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty);
dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty);
dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty);
dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty);
dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty);
dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty);
dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty);
dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty);
dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty);
dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty);
dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty);
#endregion
break;
default:
break;
}
o.altri = dic;
o.imazirif = i.imazirif;
o.imrefref = i.imrefref;
return o;
}
private string getCommessaSietBySerial(string seriale)
{
string commessa = string.Empty;
try
{
//_commDescSiet = _Siet_commDesc.Commdesc;
//var c = _commDescSiet.Where(c => c.laserial.Equals(seriale)).First();
//if (c != null && !string.IsNullOrEmpty(c.lacodcom))
//{
// commessa = c.lacodcom.Trim();
// if (!string.IsNullOrEmpty(c.lacodcen))
// {
// commessa = commessa + " - " + c.lacodcen.Trim();
// }
//}
}
catch
{
Console.WriteLine(string.Format("*********** {1} Errore Chiamata al metodo getCommessaSietBySerial: seriale:{0} ", seriale, DateTime.Now.ToString()));
}
return commessa;
}
#endregion
/// <summary>chiamatetest</summary>
[HttpGet("chiamatetest")]
public async Task<ActionResult<IEnumerable<Chiamate_out>>> chiamate(string token)
{
try
{
List<Chiamate_out> ilist = new List<Chiamate_out>();
string ten = getClaimValueByToken(token, "tenant");
string ten2 = getClaimValueByToken(token, "tenant2");
string tenOut = getClaimValueByToken(token, "tenant");
string tecnico = getClaimValueByToken(token, "tccodice");
string tenConf = getClaimValueByToken(token, "tenantConfigurazioni");
if (string.IsNullOrEmpty(ten))
{
ten = tenConf;
}
_chiamate = getChiamateByTenant(ten);
var calltec = await _chiamate.Where(
t => t.tccodice == tecnico
&& t.chcodazi == ten
).OrderByDescending(t => t.chdtapp).ToListAsync();
foreach (Chiamate ch in calltec)
{
Chiamate_out o = new Chiamate_out();
o = fillChiamateOut(ch, ten);
ilist.Add(o);
}
// cerco le chiamate che devo fare per sostituzioni SE funzione abilitata
//bool cerca_sostituzioni = false;
//cerca_sostituzioni = checkSostituzioneAbilitata(ten);
//if (cerca_sostituzioni)
//{
// //step 1 : trovo tutte le MIE sostituzioni
// _sostituzione = getSostituzioneByTenant(ten);
// var s = _sostituzione.Where(t => t.tscodazi.Equals(ten) && t.tscodsos.Trim().Equals(tecnico));
// foreach (Sostituzione ss in s)
// {
// string tecnico_sostituito = string.Empty;
// tecnico_sostituito = ss.tscodtec != null ? ss.tscodtec : string.Empty;
// //2023-03-13: cancellato il filtro sulla zona perchè il tecnico che sostituisce spesso è di un'altra zona
// //string zona = string.Empty;
// //zona = ss.tscodzon != null ? ss.tscodzon : "zonavuota";
// //step 2 : trovo tutte le chiamate del tecnico che sto sostitutendo e le aggiungo alla mie
// var calltecSost = await _chiamate.Where(
// t => t.tccodice == tecnico_sostituito
// && t.chcodazi == ten
// //&& t.imzonchi.Equals(zona)
// ).OrderByDescending(t => t.chdtapp).ToListAsync();
// foreach (Chiamate ch in calltecSost)
// {
// Chiamate_out o = new Chiamate_out();
// if (tenOut.Equals(Clienti.VT))
// {
// o = fillChiamateOutVT(ch, ten);
// }
// else
// {
// o = fillChiamateOut(ch, ten);
// }
// ilist.Add(o);
// }
// }
//}
IEnumerable<Chiamate_out> enumerable = ilist as IEnumerable<Chiamate_out>;
//return StatusCode(StatusCodes.Status200OK, enumerable.Take(100));
return StatusCode(StatusCodes.Status200OK, enumerable);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
}
}

View File

@ -0,0 +1,176 @@
using ApiPolo.Interfaces;
using ApiPolo.Models;
using ApiPolo.Models.Security_dbcontext;
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Data
{
/// <summary></summary>
public class Maras_DbContext : DbContext,ITenantDbContext
{
#region PROPERTIES
public DbSet<Caus_Rapp>? Causali { get; set; }
public DbSet<Chiusure>? Chiusure { get; set; }
public DbSet<AziendaRif>? Azi { get; set; }
public DbSet<CC_CI>? ccci { get; set; }
public DbSet<CC_CIWiev>? ccciWiev { get; set; }
public DbSet<Chiamate>? Chiamate { get; set; }
public DbSet<Anag>? Clienti { get; set; }
public DbSet<Compo_Impia_Table>? Componen { get; set; } // IN CONFLITTO CON Compo_Impia
//public DbSet<Compo_Impia>? Componen { get; set; } //CAMBIARE NOME!!!
public DbSet<Impianto>? Impia { get; set; }
public DbSet<Mag_New>? Mag { get; set; }
public DbSet<Magazzini>? Magaz { get; set; }
public DbSet<Manprog>? Manutenzioni { get; set; }
public DbSet<Pagam>? Pagamenti { get; set; }
public DbSet<Prese>? Prese { get; set; }
public DbSet<Rapp_New>? Rapps { get; set; }
public DbSet<Rappmast>? rapp { get; set; }
public DbSet<Sostituzione>? Sost { get; set; }
public DbSet<Saldiart>? Saldi { get; set; }
public DbSet<Sto_Rapp>? StoRapp { get; set; }
public DbSet<Tecnici>? Tecnici { get; set; }
public DbSet<Sto_Imp>? StoImp { get; set; }
public DbSet<Timbratura>? Timbr { get; set; }
public DbSet<Commessa>? Commesse { get; set; }
#endregion
/// <summary></summary>
public Maras_DbContext(DbContextOptions<Maras_DbContext> options) : base(options)
{
}
/// <summary></summary>
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
void TryConfigureEntity(Action<ModelBuilder> configure, string entityName)
{
try
{
configure(modelBuilder);
}
catch (Exception ex)
{
Console.WriteLine($"Warning: Skipping entity '{entityName}' due to error: {ex.Message}");
}
}
TryConfigureEntity(mb => mb.Entity<Caus_Rapp>().ToView("API_CAUS_RAPP"), "API_CAUS_RAPP");
TryConfigureEntity(mb => mb.Entity<Chiusure>().ToView("API_CHIUSURE"), "API_CHIUSURE");
TryConfigureEntity(mb =>
{
mb.Entity<AziendaRif>().ToTable("PIAZIRIF");
mb.Entity<AziendaRif>().HasKey(table => new
{
table.piazihoc,
table.picodtec,
table.pirifazi
});
}, "PIAZIRIF");
TryConfigureEntity(mb =>
{
mb.Entity<CC_CI>().ToTable("PIASSCHIU");
mb.Entity<CC_CI>().HasKey(table => new
{
table.picodazi,
table.picodint,
table.picodchi
});
}, "PIASSCHIU");
TryConfigureEntity(mb => mb.Entity<CC_CIWiev>().ToView("API_ASSCHIU"), "API_ASSCHIU");
TryConfigureEntity(mb => mb.Entity<Chiamate>().ToView("API_CHIAMATE"), "API_CHIAMATE");
TryConfigureEntity(mb => mb.Entity<Anag>().ToView("API_CLIENTI"), "API_CLIENTI");
TryConfigureEntity(mb =>
{
mb.Entity<Compo_Impia_Table>().ToTable("DISCOMICOMIMP");
mb.Entity<Compo_Impia_Table>().HasKey(table => new
{
table.cocodimp,
table.cprownum,
table.cocodazi
});
}, "DISCOMICOMIMP");
TryConfigureEntity(mb => mb.Entity<Compo_Impia>().ToView("API_MICOMIMP"), "API_MICOMIMP");
TryConfigureEntity(mb => mb.Entity<Impianto>().ToView("API_IMPIANTI"), "API_IMPIANTI");
TryConfigureEntity(mb =>
{
mb.Entity<Mag_New>().ToTable("DISCOMAG_NEW");
mb.Entity<Mag_New>().HasKey(table => new
{
table.seriale_rapportino,
table.riga
});
}, "DISCOMAG_NEW");
TryConfigureEntity(mb => mb.Entity<Magazzini>().ToTable("DISCOMAGAZZIN"), "DISCOMAGAZZIN");
TryConfigureEntity(mb => mb.Entity<Manprog>().ToView("API_MANPROG"), "API_MANPROG");
TryConfigureEntity(mb => mb.Entity<Pagam>().ToView("API_PAGAMENTI"), "API_PAGAMENTI");
TryConfigureEntity(mb =>
{
mb.Entity<Prese>().ToTable("PIPRESA");
mb.Entity<Prese>().HasKey(table => new
{
table.picodazi,
table.pimpianto,
table.picodint,
table.pidatman
});
}, "PIPRESA");
TryConfigureEntity(mb => mb.Entity<Rapp_New>().ToTable("RAPP_NEW"), "RAPP_NEW");
TryConfigureEntity(mb => mb.Entity<Rappmast>().ToView("API_RAPPORTINI"), "API_RAPPORTINI");
TryConfigureEntity(mb => mb.Entity<Saldiart>().ToView("API_SALDIART_PREZZI"), "API_SALDIART_PREZZI");
TryConfigureEntity(mb => mb.Entity<Sostituzione>().ToView("API_SOSTITUZIONI"), "API_SOSTITUZIONI");
TryConfigureEntity(mb => mb.Entity<Sto_Rapp>().ToView("API_STO_RAPP"), "API_STO_RAPP");
TryConfigureEntity(mb => mb.Entity<Tecnici>().ToView("API_TECNICI"), "API_TECNICI");
TryConfigureEntity(mb => mb.Entity<Timbratura>().ToTable("TIMBRATURE"), "TIMBRATURE");
TryConfigureEntity(mb => mb.Entity<Commessa>().ToView("API_COMMESSE"), "API_COMMESSE");
TryConfigureEntity(mb => mb.Entity<Sto_Imp>().ToView("API_STO_IMP"), "API_STO_IMP");
}
}
}

View File

@ -0,0 +1,32 @@
using Microsoft.EntityFrameworkCore;
using ApiPolo.Models;
namespace ApiPolo.Interfaces
{
public interface ITenantDbContext
{
DbSet<Caus_Rapp>? Causali { get; set; }
DbSet<Commessa>? Commesse { get; set; }
DbSet<Chiusure>? Chiusure { get; set; }
DbSet<AziendaRif>? Azi { get; set; }
DbSet<CC_CI>? ccci { get; set; }
DbSet<CC_CIWiev>? ccciWiev { get; set; }
DbSet<Chiamate>? Chiamate { get; set; }
DbSet<Anag>? Clienti { get; set; }
DbSet<Compo_Impia_Table>? Componen { get; set; }
DbSet<Impianto>? Impia { get; set; }
DbSet<Mag_New>? Mag { get; set; }
DbSet<Magazzini>? Magaz { get; set; }
DbSet<Manprog>? Manutenzioni { get; set; }
DbSet<Pagam>? Pagamenti { get; set; }
DbSet<Prese>? Prese { get; set; }
DbSet<Rapp_New>? Rapps { get; set; }
DbSet<Rappmast>? rapp { get; set; }
DbSet<Sostituzione>? Sost { get; set; }
DbSet<Saldiart>? Saldi { get; set; }
DbSet<Sto_Rapp>? StoRapp { get; set; }
DbSet<Tecnici>? Tecnici { get; set; }
DbSet<Timbratura>? Timbr { get; set; }
DbSet<Sto_Imp>? StoImp { get; set; }
}
}

View File

@ -0,0 +1,9 @@
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Interfaces
{
public interface ITenantDbContextFactory
{
ITenantDbContext GetDbContext(string tenant);
}
}

View File

@ -0,0 +1,28 @@
using ApiPolo.Data;
using ApiPolo.Interfaces;
using static ApiPolo.Controllers.PoloController;
public class TenantDbContextFactory : ITenantDbContextFactory
{
private readonly IServiceProvider _serviceProvider;
public TenantDbContextFactory(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
}
public ITenantDbContext GetDbContext(string tenant)
{
// Create a scope to resolve DbContext
var scope = _serviceProvider.CreateScope();
return tenant switch
{
Clienti.Maras => scope.ServiceProvider.GetRequiredService<Maras_DbContext>(),
Clienti.Marrocco => scope.ServiceProvider.GetRequiredService<Marro_DbContext>(),
// Add other tenants as needed
// Clienti.AnotherTenant => scope.ServiceProvider.GetRequiredService<AnotherTenant_DbContext>(),
_ => throw new KeyNotFoundException($"No DbContext found for tenant: {tenant}")
};
}
}

46
ApiPolo/Models/Anag.cs Normal file
View File

@ -0,0 +1,46 @@
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary>
/// Contiene i campi di SALDIART
/// </summary>
[Keyless]
public class Anag
{
/// <summary>tipo </summary>
public string? antipcon { get; set; }
/// <summary>codice</summary>
public string? ancodice { get; set; }
/// <summary>email</summary>
public string? an_email { get; set; }
/// <summary>codice fiscale</summary>
public string? ancodfis { get; set; }
/// <summary>partita iva</summary>
public string? anpariva { get; set; }
/// <summary>indirizzo</summary>
public string? anindiri { get; set; }
/// <summary>telefono</summary>
public string? antelefo { get; set; }
/// <summary>cellulare</summary>
public string? annumcel { get; set; }
/// <summary>pec</summary>
public string? an_empec { get; set; }
/// <summary>descrizione </summary>
public string? andescri { get; set; }
/// <summary>listino cliente </summary>
public string? annumlis { get; set; }
}
}

View File

@ -0,0 +1,15 @@
namespace ApiPolo.Models
{
/// <summary></summary>
public class AnagCommImp
{
/// <summary></summary>
public AnagTable? cli { get; set; }
/// <summary></summary>
public CommesseVT_Table? comm { get; set; }
/// <summary></summary>
public ImpiantoTable? imp { get; set; }
}
}

View File

@ -0,0 +1,50 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary></summary>
public class AnagTable
{
/// <summary>tipo </summary>
[Key]
public string? antipcon { get; set; }
/// <summary>codice</summary>
[Key]
public string? ancodice { get; set; }
/// <summary>codice azienda</summary>
[Key]
public string? ancodazi { get; set; }
/// <summary>email</summary>
public string? an_email { get; set; }
/// <summary>codice fiscale</summary>
public string? ancodfis { get; set; }
/// <summary>partita iva</summary>
public string? anpariva { get; set; }
/// <summary>indirizzo</summary>
public string? anindiri { get; set; }
/// <summary>telefono</summary>
public string? antelefo { get; set; }
/// <summary>cellulare</summary>
public string? annumcel { get; set; }
/// <summary>pec</summary>
public string? an_empec { get; set; }
/// <summary>descrizione </summary>
public string? andescri { get; set; }
/// <summary>listino cliente </summary>
public string? annumlis { get; set; }
/// <summary> cliente eliminato </summary>
public DateTime? andtobso { get; set; }
}
}

50
ApiPolo/Models/AnagVT.cs Normal file
View File

@ -0,0 +1,50 @@
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary>
/// Contiene i campi di API_CLIENTI
/// </summary>
[Keyless]
public class AnagVT
{
/// <summary>tipo </summary>
public string? antipcon { get; set; }
/// <summary>codice</summary>
public string? ancodice { get; set; }
/// <summary>email</summary>
public string? an_email { get; set; }
/// <summary>codice fiscale</summary>
public string? ancodfis { get; set; }
/// <summary>partita iva</summary>
public string? anpariva { get; set; }
/// <summary>indirizzo</summary>
public string? anindiri { get; set; }
/// <summary>telefono</summary>
public string? antelefo { get; set; }
/// <summary>cellulare</summary>
public string? annumcel { get; set; }
/// <summary>pec</summary>
public string? an_empec { get; set; }
/// <summary>descrizione </summary>
public string? andescri { get; set; }
/// <summary>listino cliente </summary>
public string? annumlis { get; set; }
/// <summary> cliente eliminato </summary>
public DateTime? andtobso { get; set; }
/// <summary>azienda (tenant2)</summary>
public string? ancodazi { get; set; }
}
}

View File

@ -0,0 +1,37 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
public class Articoli
{
[Key]
public string Azienda { get; set; }
[Key]
public string SlCodice { get; set; }
public string? ArDesArt { get; set; }
public string? SlCodMag { get; set; }
[Column(TypeName = "decimal(13,3)")]
public decimal? SlQtAper { get; set; }
public string? AmCodice { get; set; }
public string? LoCodice { get; set; }
public string? LiCodLis { get; set; }
public string? LiCodArt { get; set; }
public DateTime? LiDatAtt { get; set; }
[Column(TypeName = "decimal(12,3)")]
public decimal? LiQuanti { get; set; }
[Column(TypeName = "decimal(18,5)")]
public decimal? LiPrezzo { get; set; }
[Column(TypeName = "decimal(6,2)")]
public decimal? LiScont1 { get; set; }
[Column(TypeName = "decimal(6,2)")]
public decimal? LiScont2 { get; set; }
[Column(TypeName = "decimal(6,2)")]
public decimal? LiScont3 { get; set; }
[Column(TypeName = "decimal(6,2)")]
public decimal? LiScont4 { get; set; }
public string? Gest_Matr { get; set; }
public string? Gest_Lotti { get; set; }
public string? Desc_sup { get; set; }
public DateTime? DataObso { get; set; }
}
}

View File

@ -0,0 +1,16 @@
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary>
/// Azienda prsente
/// </summary>
[Keyless]
public class AziendaPres
{
/// <summary>
/// Azienda tecnico
/// </summary>
public string? tccodazi { get; set; }
}
}

View File

@ -0,0 +1,29 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary>Azienda collegata all'azienda principale</summary>
public class AziendaRif
{
/// <summary>azienda</summary>
[Key]
public string? piazihoc { get; set; }
/// <summary>tecnico</summary>
[Key]
public string? picodtec { get; set; }
/// <summary>tecnico</summary>
[Key]
public string? pirifazi { get; set; }
/// <summary>Nome azienda collegata</summary>
public string? pinomede { get; set; }
/// <summary>url logo</summary>
public string? pilogurl { get; set; }
/// <summary>Testo rapportino</summary>
public string? pitextin { get; set; }
}
}

22
ApiPolo/Models/Buoni.cs Normal file
View File

@ -0,0 +1,22 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary>buoni rapportini</summary>
public class Buoni
{
/// <summary>azienda</summary>
[Key]
public string? azienda { get; set; }
/// <summary>seriale buono</summary>
[Key]
public string? ser_buono { get; set; }
/// <summary>immagine</summary>
public byte[]? immagine { get; set; }
/// <summary>data inserimento</summary>
public DateTime? dt_ins { get; set; }
}
}

22
ApiPolo/Models/BuoniLW.cs Normal file
View File

@ -0,0 +1,22 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary>Buono per Lift web</summary>
public class BuoniLW
{
/// <summary>azienda</summary>
[Key]
public string? azienda { get; set; }
/// <summary>seriale buono</summary>
[Key]
public string? ser_buono { get; set; }
/// <summary>immagine</summary>
public string? immagine { get; set; }
/// <summary>data inserimento</summary>
public DateTime? dt_ins { get; set; }
}
}

20
ApiPolo/Models/CC_CI.cs Normal file
View File

@ -0,0 +1,20 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary></summary>
public class CC_CI
{
/// <summary>codice azienda </summary>
[Key]
public string? picodazi { get; set; }
/// <summary>codice di chiusura</summary>
[Key]
public string? picodchi { get; set; }
/// <summary>codice intervento</summary>
[Key]
public string? picodint { get; set; }
}
}

View File

@ -0,0 +1,24 @@
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary>Oggetto Vista abbinamento codice chiusura-codice intervento</summary>
[Keyless]
public class CC_CIWiev
{
/// <summary>Azienda</summary>
public string? picodazi { get; set; }
/// <summary>codice di chiusura PIASSCHIU</summary>
public string? picodchi { get; set; }
/// <summary>codice intervento PIASSCHIU</summary>
public string? picodint { get; set; }
/// <summary>codice intervento CODINTE</summary>
public string? cicodice { get; set; }
/// <summary>descrizione intervento CODINTE</summary>
public string? cidescri { get; set; }
}
}

View File

@ -0,0 +1,20 @@
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary>
/// Causali rapportino
/// </summary>
[Keyless]
public class Caus_Rapp
{
/// <summary>codice causale</summary>
public string? crcodice { get; set; }
/// <summary>descrizione causale</summary>
public string? crdescri { get; set; }
/// <summary>flag fatturazione</summary>
public string? crrifatt { get; set; }
}
}

View File

@ -0,0 +1,18 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary></summary>
public class ChiamataSeriale
{
/// <summary></summary>
[Key]
public string? piditta { get; set; }
/// <summary></summary>
public string? pinumero { get; set; }
/// <summary></summary>
public string? cpccchk { get; set; }
}
}

View File

@ -0,0 +1,24 @@
namespace ApiPolo.Models
{
/// <summary></summary>
public class ChiamataSeriale_out
{
/// <summary></summary>
public string? piditta { get; set; }
/// <summary></summary>
public string? pinumero { get; set; }
/// <summary></summary>
public string? cpccchk { get; set; }
/// <summary> errore titolo</summary>
public string? err_title { get; set; }
/// <summary>errore dettaglio</summary>
public string? err_detail { get; set; }
/// <summary>errore status code (200, 500)</summary>
public string? err_status_code { get; set; }
}
}

410
ApiPolo/Models/Chiamate.cs Normal file
View File

@ -0,0 +1,410 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary>ViSTA Chiamate</summary>
[Keyless]
public class Chiamate
{
/// <summary>Azienda</summary>
public string? chcodazi { get; set; }
/// <summary>
/// Seriale Chiamata
/// </summary>
public string? chserial { get; set; }
/// <summary>
/// Stato chiamata
/// </summary>
public string? chstato { get; set; }
/// <summary>
/// Codice Chiamatista assegnato
/// </summary>
public string? chtchiam { get; set; }
/// <summary>
/// Data appuntamento chiamata
/// </summary>
public DateTime? chdtapp { get; set; }
/// <summary>
/// Ora appuntamento inizio
/// </summary>
public int? choraaPI { get; set; }
/// <summary>
/// Minuti appuntamento inizio
/// </summary>
public int? chminapi { get; set; }
/// <summary>
/// Note appuntamento
/// </summary>
public string? chnote { get; set; }
/// <summary>
/// Codice Impianto chiamata
/// </summary>
public string? chcodimp { get; set; }
/// <summary>
/// Descrizione codice segnalazione
/// </summary>
public string? csdescr { get; set; }
/// <summary>
/// Telefono cliente
/// </summary>
public string? antelefo { get; set; }
/// <summary>
/// descrizione cliente
/// </summary>
public string? andescri { get; set; }
/// <summary>
/// Indirizzo impianto tipo
/// </summary>
/// <example>Via,Piazza,</example>
public string? imindiri1 { get; set; }
/// <summary>
/// Indirizzo impianto nome
/// </summary>
public string? imindiri2 { get; set; }
/// <summary>
/// Indirizzo impianto numero
/// </summary>
public int? imindiri3 { get; set; }
/// <summary>
/// Indirizzo impianto sottonumero
/// </summary>
public string? imindiri4 { get; set; }
/// <summary>
/// Indirizzo impianto Scala
/// </summary>
public string? imindiri5 { get; set; }
/// <summary>
/// Indirizzo impianto località
/// </summary>
public string? imlocali { get; set; }
/// <summary>
/// Indirizzo impianto Cap
/// </summary>
public string? imcodcap { get; set; }
/// <summary>
/// Indirizzo impianto comune
/// </summary>
public string? imcomune { get; set; }
/// <summary>
/// Indirizzo impianto provincia
/// </summary>
public string? improvin { get; set; }
/// <summary>
/// Indirizzo impianto nazione
/// </summary>
public string? imcodnaz { get; set; }
/// <summary>
/// MANPROG: matricola impianto
/// </summary>
public string? immatric { get; set; }
/// <summary>
/// MANPROG: numero impianto
/// </summary>
public string? imnumimp { get; set; }
/// <summary>
/// MANPROG: ubicazione impianto
/// </summary>
public string? imubicaz { get; set; }
/// <summary>
/// Tecnico descrizione
/// </summary>
public string? tcdescri { get; set; }
/// <summary>
/// Tecnico codice
/// </summary>
public string? tccodice { get; set; }
/*campi di RAPP_NEW*/
/// <summary>
/// RAPP_NEW: seriale rapp_new preso in carico
/// </summary>
public string? ser_rapp_ic { get; set; }
/// <summary>
/// RAPP_NEW: tipo rapp_new preso in carico (valore vuoto)
/// </summary>
public string? tipo_rapp_ic { get; set; }
/// <summary>
/// RAPP_NEW: preso in carico (S o NULL)
/// </summary>
public string? ic { get; set; }
/// <summary>
/// RAPP_NEW: seriale rapp_new rifiutata
/// </summary>
public string? ser_rapp_rif { get; set; }
/// <summary>
/// RAPP_NEW: tipo rapp rifiutata (valore vuoto)
/// </summary>
public string? tipo_rapp_rif { get; set; }
/// <summary>
/// RAPP_NEW: rifiutato (S o null)
/// </summary>
public string? rif { get; set; }
/// <summary>
/// RAPP_NEW: seriale chiamata chiusa
/// </summary>
public string? ser_rapp_chiu { get; set; }
/// <summary>
/// RAPP_NEW: tipo chiamata chiusa (3 o null)
/// </summary>
public string? tipo_rapp_chiu { get; set; }
/// <summary>
/// RAPP_NEW: seriale buono chiamata chiusa
/// </summary>
public string? ser_buono_chiu { get; set; }
/// <summary>
/// errore titolo
/// </summary>
public string? err_title { get; set; }
/// <summary>
/// errore dettaglio
/// </summary>
public string? err_detail { get; set; }
/// <summary>
/// errore status code (200, 500)
/// </summary>
public string? err_status_code { get; set; }
//ALTRI
/// <summary>Esercizio </summary>
public string? chcodese { get; set; }
/// <summary>Tipo </summary>
public string? chtipo { get; set; }
/// <summary>numero chiamata </summary>
[Column(TypeName = "decimal(10, 0)")]
public decimal? chnumero { get; set; }
/// <summary>Data inserimento chiamata</summary>
public DateTime? chdata { get; set; }
/// <summary>Ora inserimento chiamata</summary>
public int? chora { get; set; }
/// <summary>Minuti inserimento chiamata</summary>
public int? chmin { get; set; }
/// <summary>operatore assegnazione </summary>
public int? chopass { get; set; }
/// <summary>operatore di chiusura </summary>
public int? chopchi { get; set; }
/// <summary>azienda impianto </summary>
public string? chaziimp { get; set; }
/// <summary>ora appuntamento fine </summary>
public int? choraapf { get; set; }
/// <summary>minuto appuntamento fine </summary>
public int? chminapf { get; set; }
/// <summary>Riferimento chiamata </summary>
public string? chrifer { get; set; }
/// <summary>telefono riferimento </summary>
public string? chtelef { get; set; }
/// <summary>tcodice segnalazione </summary>
public string? chcodseg { get; set; }
/// <summary>Fermo impianto S/N </summary>
public string? chstopi { get; set; }
/// <summary>Data assegnazione chiamata </summary>
public DateTime? chdtass { get; set; }
/// <summary>Ora assegnazione chiamata </summary>
public int? chorass { get; set; }
/// <summary>Min assegnazione chiamata </summary>
public int? chminass { get; set; }
/// <summary>Data chiusura chiamata </summary>
public DateTime? chdtchi { get; set; }
/// <summary>Ora chiusura chiamata </summary>
public int? chorachi { get; set; }
/// <summary>Min chiusura chiamata </summary>
public int? chminchi { get; set; }
/// <summary>Data inizio intervento </summary>
public DateTime? chdtlin { get; set; }
/// <summary>Ora inizio intervento </summary>
public int? chorali { get; set; }
/// <summary>Min inizio intervento </summary>
public int? chminli { get; set; }
/// <summary>Data fine intervento </summary>
public DateTime? chdtlfi { get; set; }
/// <summary>Ora fine intervento </summary>
public int? choralf { get; set; }
/// <summary>Min fine intervento </summary>
public int? chminlf { get; set; }
/// <summary>Numero 1 rapportino futuro </summary>
public int? chnrap1 { get; set; }
/// <summary>Serie 1 rapportino futuro </summary>
public string? chsrap1 { get; set; }
/// <summary>Numero 2 rapportino futuro </summary>
public int? chnrap2 { get; set; }
/// <summary>Modalità raccolta chiamata </summary>
public string? chmodrac { get; set; }
/// <summary>Numero chiamata per impianto per anno </summary>
public int? chprgann { get; set; }
/// <summary>Importo manodopera </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? chimpman { get; set; }
/// <summary>Percentuale manodopera </summary>
[Column(TypeName = "decimal(6, 2)")]
public decimal? chperman { get; set; }
/// <summary>Stampa manodopera </summary>
public string? chflstim { get; set; }
/// <summary>Chiusura da remoto </summary>
public string? chfleste { get; set; }
/// <summary>Riferimento seriale importazione </summary>
public string? chserext { get; set; }
/// <summary>Descrizione </summary>
public string? imdescri { get; set; }
/// <summary>Tipo impianto</summary>
public string? imtipoim { get; set; }
/// <summary>Ultimo amministratore </summary>
public string? imultamm { get; set; }
/// <summary>Descrizione Ult. Amministratore </summary>
public string? imultdam { get; set; }
/// <summary>Telefono Ult. Amministratore </summary>
public string? imulttam { get; set; }
/// <summary>Zona manutenzione </summary>
public string? imzonman { get; set; }
/// <summary>Pubblico/privato</summary>
public string? imflpupr { get; set; }
/// <summary>Zona chiamate </summary>
public string? imzonchi { get; set; }
/// <summary>Zona supervisione </summary>
public string? imzonsup { get; set; }
/// <summary>Data inizio manutenzione </summary>
public DateTime? imdainma { get; set; }
/// <summary>Data fine manutenzione </summary>
public DateTime? imdafima { get; set; }
/// <summary>Data costruzione </summary>
public DateTime? imdatcos { get; set; }
/// <summary>Numero telesoccorso </summary>
public string? imteleso { get; set; }
/// <summary>Email cliente</summary>
public string? an_email { get; set; }
/// <summary>Ultimo cliente </summary>
public string? imultcli { get; set; }
/// <summary>codice cliente </summary>
public string? ancodice { get; set; }
/// <summary>tipo anagrafica </summary>
public string? antipcon { get; set; }
/// <summary>costo chiamata </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? chiamata { get; set; }
/// <summary>spese viaggio </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? spe_viaggio { get; set; }
/// <summary>costo orario ordinario </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? costo_ordinario { get; set; }
/// <summary>costo orario notturno </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? costo_notturno { get; set; }
/// <summary>costo orario straordinario </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? costo_straordinario { get; set; }
/// <summary>costo orario festivo </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? costo_festivo { get; set; }
/// <summary>Azienda di riferimento associata all'impianto (gestione loghi differenti)</summary>
public string? imazirif { get; set; }
/// <summary>riferimento impianto (va su rapportino)</summary>
public string? imrefref { get; set; }
}
}

View File

@ -0,0 +1,211 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary>Tabella CHIAMATE (insert da app)</summary>
public class ChiamateTable
{
/// <summary></summary>
[Key]
public string? chcodazi { get; set; }
/// <summary></summary>
[Key]
public string? chserial { get; set; }
/// <summary></summary>
public string? chcodese { get; set; }
/// <summary></summary>
public string? chtipo { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(10, 0)")]
public decimal? chnumero { get; set; }
/// <summary></summary>
public DateTime? chdata { get; set; }
/// <summary></summary>
public int? chora { get; set; }
/// <summary></summary>
public int? chmin { get; set; }
/// <summary></summary>
public int? chopins { get; set; }
/// <summary></summary>
public int? chopass { get; set; }
/// <summary></summary>
public int? chopchi { get; set; }
/// <summary></summary>
public string? chcodimp { get; set; }
/// <summary></summary>
public string? chaziimp { get; set; }
/// <summary></summary>
public string? chtchiam { get; set; }
/// <summary></summary>
public string? chtmanut { get; set; }
/// <summary></summary>
public string? chstato { get; set; }
/// <summary></summary>
public DateTime? chdtapp { get; set; }
/// <summary></summary>
public int? choraapi { get; set; }
/// <summary></summary>
public int? chminapi { get; set; }
/// <summary></summary>
public int? choraapf { get; set; }
/// <summary></summary>
public int? chminapf { get; set; }
/// <summary></summary>
public string? chrifer { get; set; }
/// <summary></summary>
public string? chtelef { get; set; }
/// <summary></summary>
public string? chcodseg { get; set; }
/// <summary></summary>
public string? chstopi { get; set; }
/// <summary></summary>
public string? chnote { get; set; }
/// <summary></summary>
public DateTime? chdtass { get; set; }
/// <summary></summary>
public int? chorass { get; set; }
/// <summary></summary>
public int? chminass { get; set; }
/// <summary></summary>
public DateTime? chdtchi { get; set; }
/// <summary></summary>
public int? chorachi { get; set; }
/// <summary></summary>
public int? chminchi { get; set; }
/// <summary></summary>
public DateTime? chdtlin { get; set; }
/// <summary></summary>
public int? chorali { get; set; }
/// <summary></summary>
public int? chminli { get; set; }
/// <summary></summary>
public DateTime? chdtlfi { get; set; }
/// <summary></summary>
public int? choralf { get; set; }
/// <summary></summary>
public int? chminlf { get; set; }
/// <summary></summary>
public string? chvalfat { get; set; }
/// <summary></summary>
public string? cpccchk { get; set; }
/// <summary></summary>
public int? chnrap1 { get; set; }
/// <summary></summary>
public string? chsrap1 { get; set; }
/// <summary></summary>
public int? chnrap2 { get; set; }
/// <summary></summary>
public string? chsrap2 { get; set; }
/// <summary></summary>
public string? chmodrac { get; set; }
/// <summary></summary>
public int? chprgann { get; set; }
/// <summary></summary>
public string? chserchi { get; set; }
/// <summary></summary>
public string? chdesfat { get; set; }
/// <summary></summary>
public string? chdessup { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? chimpofa { get; set; }
/// <summary></summary>
public string? chserdoc { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? chimpmat { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? chimpman { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(6, 2)")]
public decimal? chperman { get; set; }
/// <summary></summary>
public string? chflstim { get; set; }
/// <summary></summary>
public string? chfleste { get; set; }
/// <summary></summary>
public string? chserext { get; set; }
/// <summary></summary>
public string? chrifiutata { get; set; }
///// <summary></summary>
//public string? chincarico { get; set; }
///// <summary></summary>
//public string? chserweb { get; set; }
///// <summary></summary>
//public string? chinlinea { get; set; }
///// <summary></summary>
//public string? chpreinc { get; set; }
///// <summary></summary>
//public string? chtelesan { get; set; }
}
}

View File

@ -0,0 +1,212 @@

namespace ApiPolo.Models
{
/// <summary>Tabella CHIAMATE (insert da app) - Output</summary>
public class ChiamateTableOut
{
/// <summary></summary>
public string? chcodazi { get; set; }
/// <summary></summary>
public string? chserial { get; set; }
/// <summary></summary>
public string? chcodese { get; set; }
/// <summary></summary>
public string? chtipo { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(10, 0)")]
public decimal? chnumero { get; set; }
/// <summary></summary>
public DateTime? chdata { get; set; }
/// <summary></summary>
public int? chora { get; set; }
/// <summary></summary>
public int? chmin { get; set; }
/// <summary></summary>
public int? chopins { get; set; }
/// <summary></summary>
public int? chopass { get; set; }
/// <summary></summary>
public int? chopchi { get; set; }
/// <summary></summary>
public string? chcodimp { get; set; }
/// <summary></summary>
public string? chaziimp { get; set; }
/// <summary></summary>
public string? chtchiam { get; set; }
/// <summary></summary>
public string? chtmanut { get; set; }
/// <summary></summary>
public string? chstato { get; set; }
/// <summary></summary>
public DateTime? chdtapp { get; set; }
/// <summary></summary>
public int? choraapi { get; set; }
/// <summary></summary>
public int? chminapi { get; set; }
/// <summary></summary>
public int? choraapf { get; set; }
/// <summary></summary>
public int? chminapf { get; set; }
/// <summary></summary>
public string? chrifer { get; set; }
/// <summary></summary>
public string? chtelef { get; set; }
/// <summary></summary>
public string? chcodseg { get; set; }
/// <summary></summary>
public string? chstopi { get; set; }
/// <summary></summary>
public string? chnote { get; set; }
/// <summary></summary>
public DateTime? chdtass { get; set; }
/// <summary></summary>
public int? chorass { get; set; }
/// <summary></summary>
public int? chminass { get; set; }
/// <summary></summary>
public DateTime? chdtchi { get; set; }
/// <summary></summary>
public int? chorachi { get; set; }
/// <summary></summary>
public int? chminchi { get; set; }
/// <summary></summary>
public DateTime? chdtlin { get; set; }
/// <summary></summary>
public int? chorali { get; set; }
/// <summary></summary>
public int? chminli { get; set; }
/// <summary></summary>
public DateTime? chdtlfi { get; set; }
/// <summary></summary>
public int? choralf { get; set; }
/// <summary></summary>
public int? chminlf { get; set; }
/// <summary></summary>
public string? chvalfat { get; set; }
/// <summary></summary>
public string? cpccchk { get; set; }
/// <summary></summary>
public int? chnrap1 { get; set; }
/// <summary></summary>
public string? chsrap1 { get; set; }
/// <summary></summary>
public int? chnrap2 { get; set; }
/// <summary></summary>
public string? chsrap2 { get; set; }
/// <summary></summary>
public string? chmodrac { get; set; }
/// <summary></summary>
public int? chprgann { get; set; }
/// <summary></summary>
public string? chserchi { get; set; }
/// <summary></summary>
public string? chdesfat { get; set; }
/// <summary></summary>
public string? chdessup { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? chimpofa { get; set; }
/// <summary></summary>
public string? chserdoc { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? chimpmat { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? chimpman { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(6, 2)")]
public decimal? chperman { get; set; }
/// <summary></summary>
public string? chflstim { get; set; }
/// <summary></summary>
public string? chfleste { get; set; }
/// <summary></summary>
public string? chserext { get; set; }
/// <summary></summary>
public string? chrifiutata { get; set; }
/// <summary></summary>
public string? chincarico { get; set; }
/// <summary></summary>
public string? chserweb { get; set; }
/// <summary></summary>
public string? chinlinea { get; set; }
/// <summary></summary>
public string? chpreinc { get; set; }
/// <summary></summary>
public string? chtelesan { get; set; }
/// <summary>errore titolo</summary>
public string? err_title { get; set; }
/// <summary>errore dettaglio</summary>
public string? err_detail { get; set; }
/// <summary>errore status code (200, 500)</summary>
public string? err_status_code { get; set; }
}
}

View File

@ -0,0 +1,212 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary>Tabella CHIAMATE (insert da app) per le installazioni di TaskManager</summary>
public class ChiamateTableTaskManager
{
/// <summary></summary>
[Key]
public string? chcodazi { get; set; }
/// <summary></summary>
[Key]
public string? chserial { get; set; }
/// <summary></summary>
public string? chcodese { get; set; }
/// <summary></summary>
public string? chtipo { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(10, 0)")]
public decimal? chnumero { get; set; }
/// <summary></summary>
public DateTime? chdata { get; set; }
/// <summary></summary>
public int? chora { get; set; }
/// <summary></summary>
public int? chmin { get; set; }
/// <summary></summary>
public int? chopins { get; set; }
/// <summary></summary>
public int? chopass { get; set; }
/// <summary></summary>
public int? chopchi { get; set; }
/// <summary></summary>
public string? chcodimp { get; set; }
/// <summary></summary>
public string? chaziimp { get; set; }
/// <summary></summary>
public string? chtchiam { get; set; }
/// <summary></summary>
public string? chtmanut { get; set; }
/// <summary></summary>
public string? chstato { get; set; }
/// <summary></summary>
public DateTime? chdtapp { get; set; }
/// <summary></summary>
public int? choraapi { get; set; }
/// <summary></summary>
public int? chminapi { get; set; }
/// <summary></summary>
public int? choraapf { get; set; }
/// <summary></summary>
public int? chminapf { get; set; }
/// <summary></summary>
public string? chrifer { get; set; }
/// <summary></summary>
public string? chtelef { get; set; }
/// <summary></summary>
public string? chcodseg { get; set; }
/// <summary></summary>
public string? chstopi { get; set; }
/// <summary></summary>
public string? chnote { get; set; }
/// <summary></summary>
public DateTime? chdtass { get; set; }
/// <summary></summary>
public int? chorass { get; set; }
/// <summary></summary>
public int? chminass { get; set; }
/// <summary></summary>
public DateTime? chdtchi { get; set; }
/// <summary></summary>
public int? chorachi { get; set; }
/// <summary></summary>
public int? chminchi { get; set; }
/// <summary></summary>
public DateTime? chdtlin { get; set; }
/// <summary></summary>
public int? chorali { get; set; }
/// <summary></summary>
public int? chminli { get; set; }
/// <summary></summary>
public DateTime? chdtlfi { get; set; }
/// <summary></summary>
public int? choralf { get; set; }
/// <summary></summary>
public int? chminlf { get; set; }
/// <summary></summary>
public string? chvalfat { get; set; }
/// <summary></summary>
public string? cpccchk { get; set; }
/// <summary></summary>
public int? chnrap1 { get; set; }
/// <summary></summary>
public string? chsrap1 { get; set; }
/// <summary></summary>
public int? chnrap2 { get; set; }
/// <summary></summary>
public string? chsrap2 { get; set; }
/// <summary></summary>
public string? chmodrac { get; set; }
/// <summary></summary>
public int? chprgann { get; set; }
/// <summary></summary>
public string? chserchi { get; set; }
/// <summary></summary>
public string? chdesfat { get; set; }
/// <summary></summary>
public string? chdessup { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? chimpofa { get; set; }
/// <summary></summary>
public string? chserdoc { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? chimpmat { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? chimpman { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(6, 2)")]
public decimal? chperman { get; set; }
/// <summary></summary>
public string? chflstim { get; set; }
/// <summary></summary>
public string? chfleste { get; set; }
/// <summary></summary>
public string? chserext { get; set; }
/// <summary></summary>
public string? chrifiutata { get; set; }
///// <summary></summary>
//public string? chincarico { get; set; }
///// <summary></summary>
//public string? chserweb { get; set; }
///// <summary></summary>
//public string? chinlinea { get; set; }
///// <summary></summary>
//public string? chpreinc { get; set; }
/// <summary>campo cliente su tabella chiamate di TaskManager </summary>
public string? cliente { get; set; }
}
}

View File

@ -0,0 +1,305 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary>ViSTA Chiamate</summary>
[Keyless]
public class Chiamate_out
{
/// <summary>Azienda</summary>
public string? chcodazi { get; set; }
/// <summary>
/// Seriale Chiamata
/// </summary>
public string? chserial { get; set; }
/// <summary>
/// Stato chiamata
/// </summary>
public string? chstato { get; set; }
/// <summary>
/// Codice Chiamatista assegnato
/// </summary>
public string? chtchiam { get; set; }
/// <summary>
/// Data appuntamento chiamata
/// </summary>
public DateTime? chdtapp { get; set; }
/// <summary>
/// Ora appuntamento inizio
/// </summary>
public int? choraaPI { get; set; }
/// <summary>
/// Minuti appuntamento inizio
/// </summary>
public int? chminapi { get; set; }
/// <summary>
/// Note appuntamento
/// </summary>
public string? chnote { get; set; }
/// <summary>
/// Codice Impianto chiamata
/// </summary>
public string? chcodimp { get; set; }
/// <summary>
/// Descrizione codice segnalazione
/// </summary>
public string? csdescr { get; set; }
/// <summary>
/// Telefono cliente
/// </summary>
public string? antelefo { get; set; }
/// <summary>
/// descrizione cliente
/// </summary>
public string? andescri { get; set; }
/// <summary>
/// Indirizzo impianto tipo
/// </summary>
/// <example>Via,Piazza,</example>
public string? imindiri1 { get; set; }
/// <summary>
/// Indirizzo impianto nome
/// </summary>
public string? imindiri2 { get; set; }
/// <summary>
/// Indirizzo impianto numero
/// </summary>
public int? imindiri3 { get; set; }
/// <summary>
/// Indirizzo impianto sottonumero
/// </summary>
public string? imindiri4 { get; set; }
/// <summary>
/// Indirizzo impianto Scala
/// </summary>
public string? imindiri5 { get; set; }
/// <summary>
/// Indirizzo impianto località
/// </summary>
public string? imlocali { get; set; }
/// <summary>
/// Indirizzo impianto Cap
/// </summary>
public string? imcodcap { get; set; }
/// <summary>
/// Indirizzo impianto comune
/// </summary>
public string? imcomune { get; set; }
/// <summary>
/// Indirizzo impianto provincia
/// </summary>
public string? improvin { get; set; }
/// <summary>
/// Indirizzo impianto nazione
/// </summary>
public string? imcodnaz { get; set; }
/// <summary>
/// matricola impianto
/// </summary>
public string? immatric { get; set; }
/// <summary>
/// numero impianto
/// </summary>
public string? imnumimp { get; set; }
/// <summary>
/// ubicazione impianto
/// </summary>
public string? imubicaz { get; set; }
/// <summary>
/// Tecnico descrizione
/// </summary>
public string? tcdescri { get; set; }
/// <summary>
/// Tecnico codice
/// </summary>
public string? tccodice { get; set; }
/*campi di RAPP_NEW*/
/// <summary>
/// RAPP_NEW: seriale rapp_new preso in carico
/// </summary>
public string? ser_rapp_ic { get; set; }
/// <summary>
/// RAPP_NEW: tipo rapp_new preso in carico (valore vuoto)
/// </summary>
public string? tipo_rapp_ic { get; set; }
/// <summary>
/// RAPP_NEW: preso in carico (S o NULL)
/// </summary>
public string? ic { get; set; }
/// <summary>
/// RAPP_NEW: seriale rapp_new rifiutata
/// </summary>
public string? ser_rapp_rif { get; set; }
/// <summary>
/// RAPP_NEW: tipo rapp rifiutata (valore vuoto)
/// </summary>
public string? tipo_rapp_rif { get; set; }
/// <summary>
/// RAPP_NEW: rifiutato (S o null)
/// </summary>
public string? rif { get; set; }
/// <summary>
/// RAPP_NEW: seriale chiamata chiusa
/// </summary>
public string? ser_rapp_chiu { get; set; }
/// <summary>
/// RAPP_NEW: tipo chiamata chiusa (3 o null)
/// </summary>
public string? tipo_rapp_chiu { get; set; }
/// <summary>
/// RAPP_NEW: seriale buono chiamata chiusa
/// </summary>
public string? ser_buono_chiu { get; set; }
/// <summary>
/// errore titolo
/// </summary>
public string? err_title { get; set; }
/// <summary>
/// errore dettaglio
/// </summary>
public string? err_detail { get; set; }
/// <summary>
/// errore status code (200, 500)
/// </summary>
public string? err_status_code { get; set; }
/// <summary>
/// altri dati chiamata
/// </summary>
/// <summary>Esercizio </summary>
public string? chcodese { get; set; }
/// <summary>Tipo </summary>
public string? chtipo { get; set; }
/// <summary>numero chiamata </summary>
[Column(TypeName = "decimal(10, 0)")]
public decimal? chnumero { get; set; }
/// <summary>Data inserimento chiamata</summary>
public DateTime? chdata { get; set; }
/// <summary>Ora inserimento chiamata</summary>
public int? chora { get; set; }
/// <summary>Minuti inserimento chiamata</summary>
public int? chmin { get; set; }
/// <summary>operatore assegnazione </summary>
public int? chopass { get; set; }
/// <summary>operatore di chiusura </summary>
public int? chopchi { get; set; }
/// <summary>azienda impianto </summary>
public string? chaziimp { get; set; }
/// <summary>ora appuntamento fine </summary>
public int? choraapf { get; set; }
/// <summary>minuto appuntamento fine </summary>
public int? chminapf { get; set; }
/// <summary>Riferimento chiamata </summary>
public string? chrifer { get; set; }
/// <summary>telefono riferimento </summary>
public string? chtelef { get; set; }
/// <summary>tcodice segnalazione </summary>
public string? chcodseg { get; set; }
/// <summary>altri campi </summary>
public Dictionary<string,string>? altri { get; set; }
/// <summary>Codice cliente </summary>
public string? ancodice { get; set; }
/// <summary>costo chiamata </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? chiamata { get; set; }
/// <summary>spese viaggio </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? spe_viaggio { get; set; }
/// <summary>costo orario ordinario </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? costo_ordinario { get; set; }
/// <summary>costo orario notturno </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? costo_notturno { get; set; }
/// <summary>costo orario straordinario </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? costo_straordinario { get; set; }
/// <summary>costo orario festivo </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? costo_festivo { get; set; }
/// <summary>Azienda di riferimento associata all'impianto (gestione loghi differenti)</summary>
public string? imazirif { get; set; }
/// <summary>riferimento impianto (va su rapportino)</summary>
public string? imrefref { get; set; }
/// <summary>indirizzo stampa (html) su buono</summary>
public string? indirizzo_stampa { get; set; }
/// <summary>impianto per lista (html)</summary>
public string? impianto_list { get; set; }
/// <summary>riferimento impianto (html) su buono</summary>
public string? riferimento_impianto { get; set; }
}
}

View File

@ -0,0 +1,35 @@
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary>Chiusure</summary>
[Keyless]
public class Chiusure
{
/// <summary>codice chiusura</summary>
public string? cccodice { get; set; }
/// <summary>descrizione</summary>
public string? ccdescr { get; set; }
/// <summary>ccrapabi</summary>
public int ccrapabi { get; set; }
/// <summary>obbligatoria</summary>
public int ccrapobb { get; set; }
/// <summary>ccchiint</summary>
public string? ccchiint { get; set; }
/// <summary>azienda</summary>
public string? cccodazi { get; set; }
/// <summary>Descrizione supplementare da mettere sul rapportino</summary>
public string? ccdessup { get; set; }
/// <summary>Contiena la lista di tipologie di manutenzione associate a quel codice</summary>
public List<string>? tipologieMan { get; set; }
}
}

View File

@ -0,0 +1,80 @@
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary>
/// (Virtual Task) Contiene i campi di CCHIUSA
/// </summary>
public class ChiusureTable
{
/// <summary></summary>
[Key]
public string? cccodazi { get; set; }
/// <summary></summary>
[Key]
public string? cccodice { get; set; }
/// <summary></summary>
public string? ccdescr { get; set; }
/// <summary></summary>
public string? ccflfatt { get; set; }
/// <summary></summary>
public string? ccflrep { get; set; }
/// <summary></summary>
public string? ccdessup { get; set; }
/// <summary></summary>
public string? cctipcod { get; set; }
/// <summary></summary>
public string? ccgruppo { get; set; }
/// <summary></summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? ccimpint { get; set; }
/// <summary></summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? ccimpman { get; set; }
/// <summary></summary>
public string? ccserint { get; set; }
/// <summary></summary>
public string? ccserman { get; set; }
/// <summary></summary>
[Column(TypeName = "decimal(4, 1)")]
public decimal? ccnumore { get; set; }
/// <summary></summary>
[Column(TypeName = "decimal(6, 2)")]
public decimal? ccperman { get; set; }
/// <summary></summary>
[Column(TypeName = "decimal(4, 1)")]
public decimal? corecom { get; set; }
/// <summary></summary>
public DateTime? codtobso { get; set; }
/// <summary></summary>
public int? ccrapabi { get; set; }
/// <summary></summary>
public int? ccrapobb { get; set; }
/// <summary></summary>
public string? ccriapre { get; set; }
/// <summary></summary>
public string? ccchiint { get; set; }
}
}

View File

@ -0,0 +1,59 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary>ViSTA API_COMMESSE</summary>
[Keyless]
public class Commessa
{
/// <summary>seriale Commessa</summary>
public string? laserial { get; set; }
/// <summary>Codice Commessa</summary>
public string? lacodcom { get; set; }
/// <summary>Fase Commessa </summary>
public string? ladeslav { get; set; }
/// <summary>data fine validita Commessa</summary>
public DateTime? ladatchi { get; set; }
/// <summary>tipo </summary>
public string? latipcli { get; set; }
/// <summary>codice cliente</summary>
public string? lacodcli { get; set; }
/// <summary>descrizione cliente</summary>
public string? andescri { get; set; }
/// <summary>impianto</summary>
public string? imcodimp { get; set; }
/// <summary>tipo ind </summary>
public string? imindiri1 { get; set; }
/// <summary>indirizzo </summary>
public string? imindiri2 { get; set; }
/// <summary>numero </summary>
public int? imindiri3 { get; set; }
/// <summary>lettera</summary>
public string? imindiri4 { get; set; }
/// <summary>scala</summary>
public string? imindiri5 { get; set; }
/// <summary>localita</summary>
public string? imlocali { get; set; }
/// <summary>CAP</summary>
public string? imcodcap { get; set; }
/// <summary>provincia</summary>
public string? improvin { get; set; }
}
}

View File

@ -0,0 +1,24 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary>Descrizione commessa per SIET</summary>
public class CommessaDesc
{
/// <summary>seriale Commessa</summary>
[Key]
public string? laserial { get; set; }
/// <summary>tipo lavorazione</summary>
public string? latiplav { get; set; }
/// <summary>centro di costo - ticket</summary>
public string? lacodcen { get; set; }
/// <summary>Codice commessa</summary>
public string? lacodcom { get; set; }
/// <summary>Codice tecnico associato alla commessa</summary>
public string? latecsup { get; set; }
}
}

View File

@ -0,0 +1,66 @@
namespace ApiPolo.Models
{
/// <summary>ViSTA API_COMMESSE</summary>
public class Commessa_out
{
/// <summary>Codice Commessa</summary>
public string? cncodcan { get; set; }
/// <summary>Descrizione Commessa</summary>
public string? cndescan { get; set; }
/// <summary>data fine validita Commessa</summary>
public DateTime? cndatfin { get; set; }
/// <summary>tipo </summary>
public string? cntipcon { get; set; }
/// <summary>codice cliente</summary>
public string? cncodcon { get; set; }
/// <summary>descrizione cliente</summary>
public string? andescri { get; set; }
/// <summary>impianto</summary>
public string? imcodimp { get; set; }
/// <summary>tipo ind </summary>
public string? imindiri1 { get; set; }
/// <summary>indirizzo </summary>
public string? imindiri2 { get; set; }
/// <summary>numero </summary>
public int? imindiri3 { get; set; }
/// <summary>lettera</summary>
public string? imindiri4 { get; set; }
/// <summary>scala</summary>
public string? imindiri5 { get; set; }
/// <summary>localita</summary>
public string? imlocali { get; set; }
/// <summary>CAP</summary>
public string? imcodcap { get; set; }
/// <summary>provincia</summary>
public string? improvin { get; set; }
/// <summary>elemento lista formato html</summary>
public string? itemList { get; set; }
/// <summary>Error title</summary>
public string? err_title { get; set; }
/// <summary>Error deatail</summary>
public string? err_detail { get; set; }
/// <summary>Error code</summary>
public string? err_status_code { get; set; }
}
}

View File

@ -0,0 +1,67 @@
namespace ApiPolo.Models
{
/// <summary>Oggetto uscita Commessa Lift</summary>
public class CommesseAdHoc_out
{
/// <summary>seriale Commessa</summary>
public string? laserial { get; set; }
/// <summary>Codice Commessa</summary>
public string? lacodcom { get; set; }
/// <summary>Fase Commessa </summary>
public string? ladeslav { get; set; }
/// <summary>data fine validita Commessa</summary>
public DateTime? ladatchi { get; set; }
/// <summary>tipo </summary>
public string? latipcli { get; set; }
/// <summary>codice cliente</summary>
public string? lacodcli { get; set; }
/// <summary>descrizione cliente</summary>
public string? andescri { get; set; }
/// <summary>impianto</summary>
public string? imcodimp { get; set; }
/// <summary>tipo ind </summary>
public string? imindiri1 { get; set; }
/// <summary>indirizzo </summary>
public string? imindiri2 { get; set; }
/// <summary>numero </summary>
public int? imindiri3 { get; set; }
/// <summary>lettera</summary>
public string? imindiri4 { get; set; }
/// <summary>scala</summary>
public string? imindiri5 { get; set; }
/// <summary>localita</summary>
public string? imlocali { get; set; }
/// <summary>CAP</summary>
public string? imcodcap { get; set; }
/// <summary>provincia</summary>
public string? improvin { get; set; }
/// <summary>elemento lista formato html</summary>
public string? itemList { get; set; }
/// <summary>Error title</summary>
public string? err_title { get; set; }
/// <summary>Error deatail</summary>
public string? err_detail { get; set; }
/// <summary>Error code</summary>
public string? err_status_code { get; set; }
}
}

View File

@ -0,0 +1,66 @@
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary>ViSTA API_COMMESSE - VT</summary>
[Keyless]
public class CommesseVT
{
/// <summary>seriale Commessa</summary>
public string? laserial { get; set; }
/// <summary>Azienda</summary>
public string? lacodazi { get; set; }
/// <summary>Codice Commessa</summary>
public string? lacodcom { get; set; }
/// <summary>Fase Commessa </summary>
public string? ladeslav { get; set; }
/// <summary>data fine validita Commessa</summary>
public DateTime? ladatchi { get; set; }
/// <summary>tipo </summary>
public string? latipcli { get; set; }
/// <summary>codice cliente</summary>
public string? lacodcli { get; set; }
/// <summary>descrizione cliente</summary>
public string? andescri { get; set; }
/// <summary>impianto</summary>
public string? imcodimp { get; set; }
/// <summary>tipo ind </summary>
public string? imindiri1 { get; set; }
/// <summary>indirizzo </summary>
public string? imindiri2 { get; set; }
/// <summary>numero </summary>
public int? imindiri3 { get; set; }
/// <summary>lettera</summary>
public string? imindiri4 { get; set; }
/// <summary>scala</summary>
public string? imindiri5 { get; set; }
/// <summary>localita</summary>
public string? imlocali { get; set; }
/// <summary>CAP</summary>
public string? imcodcap { get; set; }
/// <summary>provincia</summary>
public string? improvin { get; set; }
/// <summary>codice impianto - commesse</summary>
public string? lacodimp { get; set; }
/// <summary>flag commessa generica cliente</summary>
public string? lacomgen { get; set; }
}
}

View File

@ -0,0 +1,37 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary>seriale Commessa</summary>
public class CommesseVT_Table
{
/// <summary>seriale Commessa</summary>
[Key]
public string? laserial { get; set; }
/// <summary>Azienda</summary>
[Key]
public string? lacodazi { get; set; }
/// <summary>Codice Commessa</summary>
public string? lacodcom { get; set; }
/// <summary>Fase Commessa </summary>
public string? ladeslav { get; set; }
/// <summary>data fine validita Commessa</summary>
public DateTime? ladatchi { get; set; }
/// <summary>tipo </summary>
public string? latipcli { get; set; }
/// <summary>codice cliente</summary>
public string? lacodcli { get; set; }
/// <summary>codice impianto</summary>
public string? lacodimp { get; set; }
/// <summary>flag commessa generica cliente</summary>
public string? lacomgen { get; set; }
}
}

View File

@ -0,0 +1,63 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary>
/// Contiene i campi di xxxMICOMIMP (componenti impianto)
/// </summary>
[Keyless]
public class Compo_Impia
{
/// <summary>
/// codice impianto
/// </summary>
public string? cocodimp { get; set; }
/// <summary>
/// codice impianto
/// </summary>
public string? cocodazi { get; set; }
/// <summary>
/// indice riga
/// </summary>
public int? cprownum { get; set; }
/// <summary>
/// quantità
/// </summary>
[Column(TypeName = "decimal(10, 6)")]
public decimal? coqtaart { get; set; }
/// <summary>
/// codice articolo
/// </summary>
public string? cocodart { get; set; }
/// <summary>
/// note
/// </summary>
public string? co__note { get; set; }
/// <summary>
/// lotto articolo
/// </summary>
public string? lotto { get; set; }
/// <summary>
/// matricola articolo
/// </summary>
public string? matricola { get; set; }
/// <summary>
/// descrizione articolo
///
/// </summary>
public string? ardesart { get; set; }
/// <summary>descrizione per ogni articolo (se abilitata da configurazioni)</summary>
public string? desc_sup { get; set; }
}
}

View File

@ -0,0 +1,55 @@
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary>
/// Classe componenti per scrittura db
/// </summary>
public class Compo_Impia_Table
{
/// <summary>
/// codice impianto
/// </summary>
[Key]
public string? cocodimp { get; set; }
/// <summary>
/// codice impianto
/// </summary>
[Key]
public string? cocodazi { get; set; }
/// <summary>
/// indice riga
/// </summary>
[Key]
public int? cprownum { get; set; }
/// <summary>
/// codice articolo
/// </summary>
[Column(TypeName = "decimal(10, 6)")]
public decimal? coqtaart { get; set; }
/// <summary>
/// codice articolo
/// </summary>
public string? cocodart { get; set; }
/// <summary>
/// note
/// </summary>
public string? co__note { get; set; }
/// <summary>
/// lotto articolo
/// </summary>
public string? pilotto { get; set; }
/// <summary>
/// matricola articolo
/// </summary>
public string? pimatric { get; set; }
}
}

View File

@ -0,0 +1,69 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary>
/// Contiene i campi di xxxMICOMIMP (componenti impianto) oggetto di output
/// </summary>
[Keyless]
public class Compo_Impia_out
{
/// <summary>
/// codice impianto
/// </summary>
public string? cocodimp { get; set; }
/// <summary>
/// codice impianto
/// </summary>
public string? cocodazi { get; set; }
/// <summary>
/// indice riga
/// </summary>
public int? cprownum { get; set; }
/// <summary>
/// codice articolo
/// </summary>
[Column(TypeName = "decimal(10, 6)")]
public decimal? coqtaart { get; set; }
/// <summary>
/// codice articolo
/// </summary>
public string? cocodart { get; set; }
/// <summary>
/// note
/// </summary>
public string? co__note { get; set; }
/// <summary>
/// lotto articolo
/// </summary>
public string? lotto { get; set; }
/// <summary>
/// matricola articolo
/// </summary>
public string? matricola { get; set; }
/// <summary>
/// errore titolo
/// </summary>
public string? err_title { get; set; }
/// <summary>
/// errore dettaglio
/// </summary>
public string? err_detail { get; set; }
/// <summary>
/// errore status code (200, 500)
/// </summary>
public string? err_status_code { get; set; }
}
}

View File

@ -0,0 +1,216 @@
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary></summary>
public class Configurazione_out
{
/// <summary>azienda</summary>
public string? azienda { get; set; }
/// <summary>path file buoni (immagini rapportini)</summary>
public string? path_buoni { get; set; }
/// <summary>prefisso dei buoni da chiamata</summary>
public string? prefisso_buoni_chia { get; set; }
/// <summary>prefisso dei buoni da mauntenzione</summary>
public string? prefisso_buoni_man { get; set; }
/// <summary>url ftp per upload delle immagini</summary>
public string? ftp_url { get; set; }
/// <summary>utente ftp per upload delle immagini</summary>
public string? ftp_usr { get; set; }
/// <summary>password ftp per upload delle immagini</summary>
public string? ftp_pwd { get; set; }
/// <summary>Listino articoli per magazzino</summary>
public string? listino { get; set; }
/// <summary>pulsante naviga nelle liste</summary>
public bool? abilita_naviga { get; set; }
/// <summary>pulsante telefona nelle liste</summary>
public bool? abilita_telefona { get; set; }
/// <summary>abilita funzione</summary>
public bool? abilita_chiamate { get; set; }
/// <summary>abilita funzione</summary>
public bool? abilita_manutenzioni { get; set; }
/// <summary>barcode abilitato opzionalmente in varie sezioni. Per renderlo obbligatorio vedi flag sott</summary>
public bool? abilita_barcode { get; set; }
/// <summary></summary>
public bool? chiamate_accetta { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? chiamate_accetta_barcode { get; set; }
/// <summary>funziona anche offline</summary>
public bool? chiamate_accetta_offline { get; set; }
/// <summary>abilita funzione</summary>
public bool? chiamate_rifiuta { get; set; }
/// <summary>hiamate_rifiuta_barcode</summary>
public bool? chiamate_rifiuta_barcode { get; set; }
/// <summary>funziona anche offline</summary>
public bool? chiamate_rifiuta_offline { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? chiamate_chiudi_barcode { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? chiamate_firma_barcode { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? chiamate_chiudi_salva_barcode { get; set; }
/// <summary>abilita funzione</summary>
public bool? manutenzioni_accetta { get; set; }
/// <summary>funziona anche offline</summary>
public bool? chiamate_chiudi_salva_offline { get; set; }
/// <summary>abilita funzione</summary>
public bool? manutenzioni_rifiuta { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? manutenzioni_accetta_barcode { get; set; }
/// <summary>funziona anche offline</summary>
public bool? manutenzioni_accetta_offline { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? manutenzioni_chiudi_barcode { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? manutenzioni_firma_barcode { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? manutenzioni_chiudi_salva_barcode { get; set; }
/// <summary>funziona anche offline</summary>
public bool? manutenzioni_chiudi_salva_offline { get; set; }
/// <summary>chiede presena DPI prima di scheda</summary>
public bool? dpi_checkbox { get; set; }
/// <summary>visualizza anagrafica</summary>
public bool? anagrafica { get; set; }
/// <summary>abilita stato impianto</summary>
public bool? stato_finale { get; set; }
/// <summary>abilita</summary>
public bool? descrizione_intervento { get; set; }
/// <summary>abilita</summary>
public bool? composizione_impianto { get; set; }
/// <summary>abilita</summary>
public bool? note_intervento { get; set; }
/// <summary>abilita</summary>
public bool? esito_intervento { get; set; }
/// <summary>abilita</summary>
public bool? ora_inizio_fine { get; set; }
/// <summary>abilita</summary>
public bool? materiali { get; set; }
/// <summary>abilita</summary>
public bool? diritto_chiamata { get; set; }
/// <summary>abilita</summary>
public bool? manodopera { get; set; }
/// <summary>abilita</summary>
public bool? spese_viaggio { get; set; }
/// <summary>abilita</summary>
public bool? tipo_pagamento { get; set; }
/// <summary>abilita</summary>
public bool? note_pagamento { get; set; }
/// <summary>abilita</summary>
public bool? causale { get; set; }
/// <summary>abilita</summary>
public bool? time_sheet { get; set; }
/// <summary>abilita</summary>
public bool? time_sheet_offline { get; set; }
/// <summary>Costo orario intervento</summary>
[Column(TypeName = "decimal(8, 3)")]
public decimal? costo_orario { get; set; }
/// <summary>porta ftp</summary>
public int? ftp_port { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? manutenzioni_rifiuta_barcode { get; set; }
/// <summary>storico rapportini</summary>
public bool? storico { get; set; }
/// <summary>storico impianto</summary>
public bool? storico_tecnico { get; set; }
/// <summary>Abilita link storico interventi</summary>
public bool? storico_interventi { get; set; }
/// <summary>Abilita link ricerca impianti</summary>
public bool? ricerca_impianti { get; set; }
/// <summary>Abilita link storico impianto (solo per chi gestisce il magazzino)</summary>
public bool? storico_impianto { get; set; }
/// <summary>Calcolo tempo rapportino automatico</summary>
public bool? ora_inizio_fine_automatica { get; set; }
/// <summary>Stampa ora inizio-fine su buono</summary>
public bool? stampa_orario { get; set; }
/// <summary>Stampa intestazione su buono</summary>
public string? intestazione_stampa { get; set; }
/// <summary>Seriale chiamata da usare come teplate per inserire chiamata da app (commessa o normale)</summary>
public string? seriale_template_chi { get; set; }
/// <summary>0=non abilitata 1,2,3=abilitata </summary>
public Int16? abilita_inserimento_chiamate { get; set; }
/// <summary>Data rapportino editabile</summary>
public bool? abilita_data_rapp_edit { get; set; }
/// <summary>articoli impianto in forma decimale</summary>
public Int16? numeri_decimali { get; set; }
/// <summary>max num record in ricerca</summary>
public int? max_record { get; set; }
/// <summary>storico impianto</summary>
public List<AziendaRif>? aziende_coll { get; set; }
/// <summary>Error Message </summary>
public string? err_title { get; set; }
/// <summary>Error Message detail</summary>
public string? err_detail { get; set; }
/// <summary>Status</summary>
public string? err_status_code { get; set; }
}
}

View File

@ -0,0 +1,223 @@
using Microsoft.AspNetCore.Components.RenderTree;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary>Configurazioni</summary>
public class Configurazioni
{
/// <summary>azienda</summary>
[Key]
public string? azienda { get; set; }
/// <summary>path file buoni (immagini rapportini)</summary>
public string? path_buoni { get; set; }
/// <summary>prefisso dei buoni da chiamata</summary>
public string? prefisso_buoni_chia { get; set; }
/// <summary>prefisso dei buoni da mauntenzione</summary>
public string? prefisso_buoni_man { get; set; }
/// <summary>url ftp per upload delle immagini</summary>
public string? ftp_url { get; set; }
/// <summary>utente ftp per upload delle immagini</summary>
public string? ftp_usr { get; set; }
/// <summary>password ftp per upload delle immagini</summary>
public string? ftp_pwd { get; set; }
/// <summary>Listino articoli per magazzino</summary>
public string? listino { get; set; }
/// <summary>pulsante naviga nelle liste</summary>
public bool? abilita_naviga { get; set; }
/// <summary>pulsante telefona nelle liste</summary>
public bool? abilita_telefona { get; set; }
/// <summary>abilita funzione</summary>
public bool? abilita_chiamate { get; set; }
/// <summary>abilita funzione</summary>
public bool? abilita_manutenzioni { get; set; }
/// <summary>barcode abilitato opzionalmente in varie sezioni. Per renderlo obbligatorio vedi flag sott</summary>
public bool? abilita_barcode { get; set; }
/// <summary></summary>
public bool? chiamate_accetta { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? chiamate_accetta_barcode { get; set; }
/// <summary>funziona anche offline</summary>
public bool? chiamate_accetta_offline { get; set; }
/// <summary>abilita funzione</summary>
public bool? chiamate_rifiuta { get; set; }
/// <summary>hiamate_rifiuta_barcode</summary>
public bool? chiamate_rifiuta_barcode { get; set; }
/// <summary>funziona anche offline</summary>
public bool? chiamate_rifiuta_offline { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? chiamate_chiudi_barcode { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? chiamate_firma_barcode { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? chiamate_chiudi_salva_barcode { get; set; }
/// <summary>abilita funzione</summary>
public bool? manutenzioni_accetta { get; set; }
/// <summary>funziona anche offline</summary>
public bool? chiamate_chiudi_salva_offline { get; set; }
/// <summary>abilita funzione</summary>
public bool? manutenzioni_rifiuta { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? manutenzioni_accetta_barcode { get; set; }
/// <summary>funziona anche offline</summary>
public bool? manutenzioni_accetta_offline { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? manutenzioni_chiudi_barcode { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? manutenzioni_firma_barcode { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? manutenzioni_chiudi_salva_barcode { get; set; }
/// <summary>funziona anche offline</summary>
public bool? manutenzioni_chiudi_salva_offline { get; set; }
/// <summary>chiede presena DPI prima di scheda</summary>
public bool? dpi_checkbox { get; set; }
/// <summary>visualizza anagrafica</summary>
public bool? anagrafica { get; set; }
/// <summary>abilita stato impianto</summary>
public bool? stato_finale { get; set; }
/// <summary>abilita</summary>
public bool? descrizione_intervento { get; set; }
/// <summary>abilita</summary>
public bool? composizione_impianto { get; set; }
/// <summary>abilita</summary>
public bool? note_intervento { get; set; }
/// <summary>abilita</summary>
public bool? esito_intervento { get; set; }
/// <summary>abilita</summary>
public bool? ora_inizio_fine { get; set; }
/// <summary>abilita</summary>
public bool? materiali { get; set; }
/// <summary>abilita</summary>
public bool? diritto_chiamata { get; set; }
/// <summary>abilita</summary>
public bool? manodopera { get; set; }
/// <summary>abilita</summary>
public bool? spese_viaggio { get; set; }
/// <summary>abilita</summary>
public bool? tipo_pagamento { get; set; }
/// <summary>abilita</summary>
public bool? note_pagamento { get; set; }
/// <summary>abilita</summary>
public bool? causale { get; set; }
/// <summary>abilita</summary>
public bool? time_sheet { get; set; }
/// <summary>abilita</summary>
public bool? time_sheet_offline { get; set; }
/// <summary>Costo orario intervento</summary>
[Column(TypeName = "decimal(8, 3)")]
public decimal? costo_orario { get; set; }
/// <summary>porta ftp</summary>
public int? ftp_port { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? manutenzioni_rifiuta_barcode { get; set; }
/// <summary>OBSOLETO</summary>
public bool? storico { get; set; }
/// <summary>OBSOLETO</summary>
public bool? storico_tecnico { get; set; }
/// <summary>Abilita link storico interventi</summary>
public bool? storico_interventi { get; set; }
/// <summary>Abilita link ricerca impianti</summary>
public bool? ricerca_impianti { get; set; }
/// <summary>Abilita link storico impianto (solo per chi gestisce il magazzino)</summary>
public bool? storico_impianto { get; set; }
/// <summary>Calcolo tempo rapportino automatico</summary>
public bool? ora_inizio_fine_automatica { get; set; }
/// <summary>Stampa ora inizio-fine su buono</summary>
public bool? stampa_orario { get; set; }
/// <summary>Stampa intestazione su buono</summary>
public string? intestazione_stampa { get; set; }
/// <summary>Seriale chiamata da usare come teplate per inserire chiamata da app (commessa o normale)</summary>
public string? seriale_template_chi { get; set; }
/// <summary>0=non abilitata 1,2,3=abilitata </summary>
public Int16? abilita_inserimento_chiamate { get; set; }
/// <summary>data rapportino editabile</summary>
public bool? abilita_data_rapp_edit { get; set; }
/// <summary>articoli impianto in forma decimale se valore maggiore di 1 e la cifra indica il numero di cifre decimali, altrimenti sono numeri interi</summary>
public Int16? numeri_decimali { get; set; }
/// <summary>max num record in ricerca</summary>
public int? max_record { get; set; }
/// <summary>rende visibile la riga dei prezzi sul rapportino</summary>
public bool? prezzi_visibili { get; set; }
/// <summary>rende visibile la riga dei prezzi sul rapportino</summary>
public bool? desc_supp_prodotti_visibile { get; set; }
/// <summary>Azienda adhoc</summary>
public string? azienda_adhoc { get; set; }
/// <summary>stampa note intervento nel buono</summary>
public bool? note_interv_stampa { get; set; }
/// <summary>stampa note intervento nel buono</summary>
public bool? desc_interv_stampa { get; set; }
}
}

View File

@ -0,0 +1,21 @@
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary>ConfigurazioniDbContext</summary>
public class ConfigurazioniDbContext : DbContext
{
/// <summary>conf</summary>
public DbSet<Configurazioni>? conf { get; set; }
/// <summary>ConfigurazioniDbContext</summary>
public ConfigurazioniDbContext(DbContextOptions<ConfigurazioniDbContext> options) : base(options)
{
}
/// <summary>OnModelCreating</summary>
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Configurazioni>().ToTable("Configurazioni");
}
}
}

View File

@ -0,0 +1,31 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary></summary>
public class DatiAzienda
{
/// <summary>azienda</summary>
[Key]
public string? azienda { get; set; }
/// <summary>tecnico</summary>
[Key]
public string? tecnico { get; set; }
/// <summary>Denominazione</summary>
public string? ragsoc { get; set; }
/// <summary>url del logo esposto</summary>
public string? url_logo { get; set; }
/// <summary>logo</summary>
//[NotMapped]
//public IFormFile? logo { get; set; }
public byte[]? logo { get; set; }
/// <summary>testo azienda rapportino</summary>
public string? testo_buono { get; set; }
}
}

15
ApiPolo/Models/Error.cs Normal file
View File

@ -0,0 +1,15 @@
namespace ApiPolo.Models
{
/// <summary>Error</summary>
public class Error
{
/// <summary>Error title</summary>
public string? err_title { get; set; }
/// <summary>Error deatail</summary>
public string? err_detail { get; set; }
/// <summary>Error code</summary>
public string? err_status_code { get; set; }
}
}

View File

@ -0,0 +1,57 @@
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary>Impianto</summary>
[Keyless]
public class Impianto
{
/// <summary>Codice Impianto</summary>
public string? imcodimp { get; set; }
/// <summary>Descrizione Impianto</summary>
public string? imdescri { get; set; }
/// <summary>Tipo indirizzo (Via, piazza..)</summary>
public string? imindiri1 { get; set; }
/// <summary> indirizzo </summary>
public string? imindiri2 { get; set; }
/// <summary> numero civico </summary>
public int? imindiri3 { get; set; }
/// <summary> sottonumero </summary>
public string? imindiri4 { get; set; }
/// <summary>scala</summary>
public string? imindiri5 { get; set; }
/// <summary> localita </summary>
public string? imlocali { get; set; }
/// <summary> Cap </summary>
public string? imcodcap { get; set; }
/// <summary> Comune </summary>
public string? imcomune { get; set; }
/// <summary> Provincia </summary>
public string? improvin { get; set; }
/// <summary> Azienda </summary>
public string? imcodazi { get; set; }
/// <summary> cod cliente </summary>
public string? imultcli { get; set; }
/// <summary> descrizione cliente </summary>
public string? descCliente { get; set; }
/// <summary>Data cancellazione</summary>
public DateTime? imfinatt { get; set; }
/// <summary> rif impianto</summary>
public string? imrefref { get; set; }
}
}

View File

@ -0,0 +1,52 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary></summary>
public class ImpiantoTable
{
/// <summary>Codice Impianto</summary>
[Key]
public string? imcodimp { get; set; }
/// <summary> Azienda </summary>
[Key]
public string? imcodazi { get; set; }
/// <summary>Descrizione Impianto</summary>
public string? imdescri { get; set; }
/// <summary>Tipo indirizzo (Via, piazza..)</summary>
public string? imindiri1 { get; set; }
/// <summary> indirizzo </summary>
public string? imindiri2 { get; set; }
/// <summary> numero civico </summary>
public int? imindiri3 { get; set; }
/// <summary> sottonumero </summary>
public string? imindiri4 { get; set; }
/// <summary>scala</summary>
public string? imindiri5 { get; set; }
/// <summary> localita </summary>
public string? imlocali { get; set; }
/// <summary> Cap </summary>
public string? imcodcap { get; set; }
/// <summary> Comune </summary>
public string? imcomune { get; set; }
/// <summary> Provincia </summary>
public string? improvin { get; set; }
/// <summary> cliente associato </summary>
public string? imultcli { get; set; }
/// <summary>Data cancellazione</summary>
public DateTime? imfinatt { get; set; }
}
}

View File

@ -0,0 +1,36 @@
namespace ApiPolo.Models
{
/// <summary>Impianto out</summary>
public class Impianto_out
{
/// <summary>Codice Impianto</summary>
public string? codimp { get; set; }
/// <summary>Codice Impianto</summary>
public string? descimp { get; set; }
/// <summary>Indirizzo Impianto</summary>
public string? indiri { get; set; }
/// <summary> Cap </summary>
public string? cap { get; set; }
/// <summary> Comune </summary>
public string? comune { get; set; }
/// <summary> Provincia </summary>
public string? provin { get; set; }
/// <summary> Località </summary>
public string? localita { get; set; }
/// <summary>Error title</summary>
public string? err_title { get; set; }
/// <summary>Error deatail</summary>
public string? err_detail { get; set; }
/// <summary>Error code</summary>
public string? err_status_code { get; set; }
}
}

313
ApiPolo/Models/Input.cs Normal file
View File

@ -0,0 +1,313 @@
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary>
/// Contiene i campi di input sia per RAPP_NEW che per PRESE
/// </summary>
public class Input
{
#region RAPPNEW
/// <summary>
/// Tabella RAPP_NEW: Seriale rapportini
/// </summary>
public string? seriale_rapportino { get; set; }
/// <summary>
/// Tabella RAPP_NEW: Tipo rapportini
/// </summary>
public string? tipo_rapportino { get; set; }
/// <summary>
/// Tabella RAPP_NEW: Azienda
/// </summary>
public string? azienda_impianto { get; set; }
/// <summary>
/// Tabella RAPP_NEW: Codice Impianto
/// </summary>
public string? codice_impianto { get; set; }
/// <summary>
/// Tabella RAPP_NEW: Azienda su cui è la chiamata
/// </summary>
public string? azienda_chiamata { get; set; }
/// <summary>
/// Tabella RAPP_NEW: Seriale chiamata
/// </summary>
public string? seriale_chiamata { get; set; }
/// <summary>
/// Tabella RAPP_NEW: Seriale chiamata
/// </summary>
public string? seriale_commessa { get; set; }
/// <summary>
/// Tabella RAPP_NEW: Data rapportino
/// </summary>
public DateTime? data_rapportino { get; set; }
/// <summary>
/// Tabella RAPP_NEW: Ora inizio
/// </summary>
public string? ora_ini_rapportino { get; set; }
/// <summary>
/// Tabella RAPP_NEW: Tabella RAPP_NEW: minuto inizio
/// </summary>
public string? min_ini_rapportino { get; set; }
/// <summary>
/// Tabella RAPP_NEW: Ora fine
/// </summary>
public string? ora_fin_rapportino { get; set; }
/// <summary>
/// Tabella RAPP_NEW: Minuto fine
/// </summary>
public string? min_fin_rapportino { get; set; }
/// <summary>
/// Tabella RAPP_NEW: codice chiusura
/// </summary>
public string? codice_chiusura_1 { get; set; }
/// <summary>
/// Tabella RAPP_NEW: codice chiusura
/// </summary>
public string? codice_chiusura_2 { get; set; }
/// <summary>
/// Tabella RAPP_NEW: codice chiusura
/// </summary>
public string? codice_chiusura_3 { get; set; }
/// <summary>
/// Tabella RAPP_NEW: codice chiusura
/// </summary>
public string? codice_chiusura_4 { get; set; }
/// <summary>
/// Tabella RAPP_NEW: codice chiusura
/// </summary>
public string? codice_chiusura_5 { get; set; }
/// <summary>
/// Tabella RAPP_NEW: codice chiusura
/// </summary>
public string? codice_chiusura_6 { get; set; }
/// <summary>
/// Tabella RAPP_NEW: codice chiusura
/// </summary>
public string? codice_chiusura_7 { get; set; }
/// <summary>
/// Tabella RAPP_NEW: codice chiusura
/// </summary>
public string? codice_chiusura_8 { get; set; }
/// <summary>
/// Tabella RAPP_NEW: codice chiusura
/// </summary>
public string? codice_chiusura_9 { get; set; }
/// <summary>
/// Tabella RAPP_NEW: codice chiusura
/// </summary>
public string? codice_chiusura_10 { get; set; }
/// <summary>
/// Tabella RAPP_NEW: descrizione intervento
/// </summary>
public string? descrizione_intervento { get; set; }
/// <summary>
/// Tabella RAPP_NEW: stato
/// </summary>
public string? stato_finale { get; set; }
/// <summary>
/// Tabella RAPP_NEW: generato
/// </summary>
public string? generato { get; set; }
/// <summary>
/// Tabella RAPP_NEW: azienda tecnico
/// </summary>
public string? azienda_tecnico { get; set; }
/// <summary>
/// Tabella RAPP_NEW: codice tecnico
/// </summary>
public string? codice_tecnico { get; set; }
/// <summary>
/// Tabella RAPP_NEW: flag rifiutata
/// </summary>
public string? rifiutata { get; set; }
/// <summary>
///Tabella RAPP_NEW: nominativo firma
/// </summary>
public string? firma { get; set; }
/// <summary>
/// Tabella RAPP_NEW: flag stato In Carico
/// </summary>
public string? incarico { get; set; }
/// <summary>
/// Tabella RAPP_NEW: data validità
/// </summary>
public DateTime? data_validita { get; set; }
/// <summary>
/// Tabella RAPP_NEW: pathg immagine buono o firma
/// </summary>
public string? immagine { get; set; }
/// <summary>
/// Tabella RAPP_NEW: seriale del buono
/// </summary>
public string? ser_buono { get; set; }
/// <summary>
/// Tabella RAPP_NEW: seriale del buono
/// </summary>
public string? codice_intervento { get; set; }
/// <summary>
/// Tabella RAPP_NEW: data/ora effettiva del lavoro (nel caso dispositivo offline)
/// </summary>
public DateTime? data_effettiva { get; set; }
#endregion
#region PRESE
/// <summary>Tabella PRESE: Azienda</summary>
public string? picodazi { get; set; }
/// <summary>Tabella PRESE: Impianto</summary>
public string? pimpianto { get; set; }
/// <summary>Tabella PRESE: Codice intervento QUI=? SEM=SEMESTRALE </summary>
public string? picodint { get; set; }
/// <summary>Tabella PRESE: Tecnico</summary>
public string? picodtec { get; set; }
/// <summary>Tabella PRESE: data della manutenzione</summary>
public DateTime? pidatman { get; set; }
/// <summary>Tabella PRESE: Zona manutenzione</summary>
public string? pizona { get; set; }
/// <summary>Tabella PRESE: check presa</summary>
public string? pichkpre { get; set; }
#endregion
#region Campi aggiunti
/// <summary></summary>
public string? difetti_riscontrati { get; set; }
/// <summary></summary>
public string? lavoro_eseguito { get; set; }
/// <summary></summary>
public string? esito_intervento { get; set; }
/// <summary></summary>
public string? note_intervento { get; set; }
/// <summary></summary>
public string? note_esito { get; set; }
/// <summary></summary>
public string? nuovo_contratto { get; set; }
/// <summary></summary>
[Column(TypeName = "decimal(7, 2)")]
public int? ore_lavoro { get; set; }
/// <summary></summary>
public string? causale { get; set; }
/// <summary></summary>
[Column(TypeName = "decimal(7, 2)")]
public decimal? materiale { get; set; }
/// <summary></summary>
[Column(TypeName = "decimal(7, 2)")]
public decimal? diritto_chiamata { get; set; }
/// <summary></summary>
[Column(TypeName = "decimal(7, 2)")]
public decimal? manodopera { get; set; }
/// <summary></summary>
[Column(TypeName = "decimal(7, 2)")]
public decimal? spese_viaggio { get; set; }
/// <summary></summary>
public string? pagamento { get; set; }
/// <summary></summary>
[Column(TypeName = "decimal(7, 2)")]
public decimal? anticipo { get; set; }
/// <summary></summary>
[Column(TypeName = "decimal(9, 2)")]
public decimal? totale { get; set; }
/// <summary></summary>
public string? note_pagamento { get; set; }
/// <summary></summary>
public string? tipo_intervento { get; set; }
/// <summary></summary>
public string? rafoto1 { get; set; }
/// <summary></summary>
public string? rafoto2 { get; set; }
/// <summary></summary>
public string? rafoto3 { get; set; }
/// <summary></summary>
public string? rafoto4 { get; set; }
/// <summary></summary>
public string? rafoto5 { get; set; }
/// <summary></summary>
public string? rafoto6 { get; set; }
/// <summary></summary>
public string? rafoto7 { get; set; }
/// <summary></summary>
public string? rafoto8 { get; set; }
/// <summary></summary>
public string? rafoto9 { get; set; }
/// <summary></summary>
public string? rafoto10 { get; set; }
#endregion
#region Componenti impianto
/// <summary>Componenti impianto aggiunti</summary>
public List<Saldiart>? compo_add { get; set; }
/// <summary>Componenti impianto eliminati </summary>
public List<Compo_Impia>? compo_del { get; set; }
#endregion
}
}

View File

@ -0,0 +1,15 @@
namespace ApiPolo.Models
{
/// <summary>LoginModel</summary>
public class LoginModel
{
/// <summary>Username</summary>
public string? Username { get; set; }
/// <summary>Password</summary>
public string? Password { get; set; }
/// <summary>Tenant</summary>
public string? Tenant { get; set; }
}
}

231
ApiPolo/Models/LoginOut.cs Normal file
View File

@ -0,0 +1,231 @@
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary>Conf (configurazioni app)</summary>
public class Conf
{
/// <summary>pulsante naviga nelle liste</summary>
public bool? abilita_naviga { get; set; }
/// <summary>pulsante telefona nelle liste</summary>
public bool? abilita_telefona { get; set; }
/// <summary>abilita funzione</summary>
public bool? abilita_chiamate { get; set; }
/// <summary>abilita funzione</summary>
public bool? abilita_manutenzioni { get; set; }
/// <summary>barcode abilitato opzionalmente in varie sezioni. Per renderlo obbligatorio vedi flag sott</summary>
public bool? abilita_barcode { get; set; }
/// <summary></summary>
public bool? chiamate_accetta { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? chiamate_accetta_barcode { get; set; }
/// <summary>funziona anche offline</summary>
public bool? chiamate_accetta_offline { get; set; }
/// <summary>abilita funzione</summary>
public bool? chiamate_rifiuta { get; set; }
/// <summary>hiamate_rifiuta_barcode</summary>
public bool? chiamate_rifiuta_barcode { get; set; }
/// <summary>funziona anche offline</summary>
public bool? chiamate_rifiuta_offline { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? chiamate_chiudi_barcode { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? chiamate_firma_barcode { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? chiamate_chiudi_salva_barcode { get; set; }
/// <summary>abilita funzione</summary>
public bool? manutenzioni_accetta { get; set; }
/// <summary>funziona anche offline</summary>
public bool? chiamate_chiudi_salva_offline { get; set; }
/// <summary>abilita funzione</summary>
public bool? manutenzioni_rifiuta { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? manutenzioni_accetta_barcode { get; set; }
/// <summary>funziona anche offline</summary>
public bool? manutenzioni_accetta_offline { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? manutenzioni_chiudi_barcode { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? manutenzioni_firma_barcode { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? manutenzioni_chiudi_salva_barcode { get; set; }
/// <summary>funziona anche offline</summary>
public bool? manutenzioni_chiudi_salva_offline { get; set; }
/// <summary>chiede presena DPI prima di scheda</summary>
public bool? dpi_checkbox { get; set; }
/// <summary> anagrafica visualizza anagrafica</summary>
public bool? anagrafica { get; set; }
/// <summary>abilita stato impianto</summary>
public bool? stato_finale { get; set; }
/// <summary>abilita</summary>
public bool? descrizione_intervento { get; set; }
/// <summary>abilita</summary>
public bool? composizione_impianto { get; set; }
/// <summary>abilita</summary>
public bool? note_intervento { get; set; }
/// <summary>abilita</summary>
public bool? esito_intervento { get; set; }
/// <summary>abilita</summary>
public bool? ora_inizio_fine { get; set; }
/// <summary>abilita</summary>
public bool? materiali { get; set; }
/// <summary>abilita</summary>
public bool? diritto_chiamata { get; set; }
/// <summary>abilita</summary>
public bool? manodopera { get; set; }
/// <summary>abilita</summary>
public bool? spese_viaggio { get; set; }
/// <summary>abilita</summary>
public bool? tipo_pagamento { get; set; }
/// <summary>abilita</summary>
public bool? note_pagamento { get; set; }
/// <summary>abilita</summary>
public bool? causale { get; set; }
/// <summary>abilita</summary>
public bool? time_sheet { get; set; }
/// <summary>abilita</summary>
public bool? time_sheet_offline { get; set; }
/// <summary>Costo orario intervento</summary>
[Column(TypeName = "decimal(8, 3)")]
public decimal? costo_orario { get; set; }
/// <summary>porta ftp</summary>
public int? ftp_port { get; set; }
/// <summary>barcode obbligatorio</summary>
public bool? manutenzioni_rifiuta_barcode { get; set; }
/// <summary>storico rapportini abilita</summary>
public bool? storico { get; set; }
/// <summary>storico impianto</summary>
public bool? storico_tecnico { get; set; }
/// <summary>Abilita link storico interventi</summary>
public bool? storico_interventi { get; set; }
/// <summary>Abilita link ricerca impianti</summary>
public bool? ricerca_impianti { get; set; }
/// <summary>Abilita link storico impianto (solo per chi gestisce il magazzino)</summary>
public bool? storico_impianto { get; set; }
/// <summary>Calcolo tempo rapportino automatico</summary>
public bool? ora_inizio_fine_automatica { get; set; }
/// <summary>Stampa ora inizio-fine su buono</summary>
public bool? stampa_orario { get; set; }
/// <summary>Stampa intestazione su buono</summary>
public string? intestazione_stampa { get; set; }
/// <summary>Seriale chiamata da usare come teplate per inserire chiamata da app (commessa o normale)</summary>
public string? seriale_template_chi { get; set; }
/// <summary>0=non abilitata 1,2,3=abilitata </summary>
public Int16? abilita_inserimento_chiamate { get; set; }
/// <summary>data rapportino editabile</summary>
public bool? abilita_data_rapp_edit { get; set; }
/// <summary>articoli impianto in forma decimale</summary>
public Int16? numeri_decimali { get; set; }
/// <summary>max num record in ricerca</summary>
public int? max_record { get; set; }
/// <summary>rende visibile la riga dei prezzi sul rapportino</summary>
public bool? prezzi_visibili { get; set; }
/// <summary>rende visibile la riga dei prezzi sul rapportino</summary>
public bool? desc_supp_prodotti_visibile { get; set; }
/// <summary>Azienda adhoc</summary>
public string? azienda_adhoc { get; set; }
/// <summary>stampa note intervento nel buono</summary>
public bool? note_interv_stampa { get; set; }
/// <summary>stampa note intervento nel buono</summary>
public bool? desc_interv_stampa { get; set; }
}
/// <summary>LoginOut (token+user)</summary>
public class LoginOut
{
/// <summary>token</summary>
public string? Tok { get; set; }
/// <summary>token</summary>
public string? Tccodice { get; set; }
/// <summary>token</summary>
public string? Tcdescri { get; set; }
/// <summary>token</summary>
public Conf? Config { get; set; }
/// <summary>storico impianto</summary>
public List<AziendaRif>? aziende_coll { get; set; }
/// <summary>Error Message</summary>
public string? err_title { get; set; }
/// <summary>Error Message detail</summary>
public string? err_detail { get; set; }
/// <summary>Status</summary>
public string? err_status_code { get; set; }
/// <summary>flag admin</summary>
public string? Tcsuper { get; set; }
/// <summary>tenant</summary>
public string? Tenant { get; set; }
/// <summary>Identifica un utente abilitato al download dell'app</summary>
public string? tciden { get; set; }
}
}

67
ApiPolo/Models/Mag_New.cs Normal file
View File

@ -0,0 +1,67 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary>
/// Contiene i campi di MAG_NEW
/// </summary>
public class Mag_New
{
/// <summary></summary>
[Key]
public string? seriale_rapportino { get; set; }
/// <summary></summary>
[Key]
public int? riga { get; set; }
/// <summary></summary>
public string? magazzino { get; set; }
/// <summary></summary>
public string? articolo { get; set; }
/// <summary></summary>
public string? tipo_movimento { get; set; }
/// <summary></summary>
[Column(TypeName = "decimal(8, 3)")]
public decimal? quantita { get; set; }
/// <summary></summary>
[Column(TypeName = "decimal(10, 2)")]
public decimal? prezzo { get; set; }
/// <summary></summary>
public string? codice_tecnico { get; set; }
/// <summary></summary>
public string? generato { get; set; }
/// <summary></summary>
public string? codlotto { get; set; }
/// <summary></summary>
public string? matricola { get; set; }
/// <summary>descrizione articolo</summary>
public string? desc_art { get; set; }
/// <summary>riga impianto</summary>
public int? cprownum { get; set; }
/// <summary>codice impianto</summary>
public string? codimp { get; set; }
/// <summary>note</summary>
public string? note { get; set; }
/// <summary>cpccchk</summary>
public string? cpccchk { get; set; }
/// <summary>descrizione per ogni articolo (se abilitata da configurazioni)</summary>
public string? desc_sup { get; set; }
}
}

View File

@ -0,0 +1,72 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary></summary>
[Keyless]
public class Mag_New_out
{
/// <summary></summary>
public string? seriale_rapportino { get; set; }
/// <summary></summary>
public int? riga { get; set; }
/// <summary></summary>
public string? magazzino { get; set; }
/// <summary></summary>
public string? articolo { get; set; }
/// <summary></summary>
public string? tipo_movimento { get; set; }
/// <summary></summary>
[Column(TypeName = "decimal(10, 6)")]
public decimal? quantita { get; set; }
/// <summary></summary>
public decimal? prezzo { get; set; }
/// <summary></summary>
public string? codice_tecnico { get; set; }
/// <summary></summary>
public string? generato { get; set; }
/// <summary></summary>
public string? codlotto { get; set; }
/// <summary></summary>
public string? matricola { get; set; }
/// <summary>descrizione articolo</summary>
public string? desc_art { get; set; }
/// <summary>riga impianto</summary>
public int? cprownum { get; set; }
/// <summary>codice impianto</summary>
public string? codimp { get; set; }
/// <summary>note</summary>
public string? note { get; set; }
/// <summary>
/// errore titolo
/// </summary>
public string? err_title { get; set; }
/// <summary>
/// errore dettaglio
/// </summary>
public string? err_detail { get; set; }
/// <summary>
/// errore status code (200, 500)
/// </summary>
public string? err_status_code { get; set; }
}
}

View File

@ -0,0 +1,20 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary>
/// Magazzini azienda
/// </summary>
public class Magazzini
{
/// <summary>
/// codice magazzino
/// </summary>
[Key]
public string? mgcodmag { get; set; }
/// <summary>
/// descrizione
/// </summary>
public string? mgdesmag { get; set; }
}
}

View File

@ -0,0 +1,29 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
public class MagazziniVT
{
/// <summary>
/// Azienda
/// </summary>
[Key]
public string? Azienda { get; set; }
/// <summary>
/// codice magazzino
/// </summary>
[Key]
public string? Mgcodmag { get; set; }
/// <summary>
/// descrizione
/// </summary>
public string? Mgdesmag { get; set; }
/// <summary>
/// descrizione
/// </summary>
public DateTime? DataObso { get; set; }
}
}

238
ApiPolo/Models/Manprog.cs Normal file
View File

@ -0,0 +1,238 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary>
/// Manutenzioni Programmate
/// </summary>
[Keyless]
public class Manprog
{
/// <summary>
/// MANPROG: codice intervento (BIM=bimestrale, SEM=semestarle,..)
/// </summary>
public string? ctcodint { get; set; }
/// <summary>
/// MANPROG: data prossima manutenzione
/// </summary>
public DateTime ctdatpro { get; set; }
/// <summary>
/// MANPROG: descrizione intervento
/// </summary>
public string? ctdesint { get; set; }
/// <summary>
/// MANPROG: indirizzo 1 impianto
/// </summary>
public string? imindiri1 { get; set; }
/// <summary>
/// MANPROG: indirizzo 2 impianto
/// </summary>
public string? imindiri2 { get; set; }
/// <summary>
/// MANPROG: indirizzo 3 impianto
/// </summary>
public int? imindiri3 { get; set; }
/// <summary>
/// MANPROG: indirizzo 4 impianto
/// </summary>
public string? imindiri4 { get; set; }
/// <summary>
/// MANPROG: indirizzo 5 impianto
/// </summary>
public string? imindiri5 { get; set; }
/// <summary>
/// MANPROG: localita impianto
/// </summary>
public string? imlocali { get; set; }
/// <summary>
/// MANPROG: cap impianto
/// </summary>
public string? imcodcap { get; set; }
/// <summary>
/// MANPROG: comune impianto
/// </summary>
public string? imcomune { get; set; }
/// <summary>
/// MANPROG: matricola impianto
/// </summary>
public string? immatric { get; set; }
/// <summary>
/// MANPROG: numero impianto
/// </summary>
public string? imnumimp { get; set; }
/// <summary>
/// MANPROG: ubicazione impianto
/// </summary>
public string? imubicaz { get; set; }
/// <summary>
/// MANPROG: provincia 5 impianto
/// </summary>
public string? improvin { get; set; }
/// <summary>
/// MANPROG: nazione impianto
/// </summary>
public string? ctcodazi { get; set; }
/// <summary>
/// MANPROG: codice impianto
/// </summary>
public string? ctcodimp { get; set; }
/// <summary>
/// MANPROG: tecnico descrizione
/// </summary>
public string? tcdescri { get; set; }
/// <summary>
/// MANPROG: tecnico codice
/// </summary>
public string? tccodice { get; set; }
/*RAPP_NEW*/
/// <summary>
/// RAPP_NEW: seriale rapportino
/// </summary>
public string? seriale_rapportino { get; set; }
/// <summary>
/// RAPP_NEW: seriale buono
/// </summary>
public string? ser_buono { get; set; }
/// <summary>
/// RAPP_NEW: flag generato. Rapportino importato in AdHoc
/// </summary>
public string? generato { get; set; }
/*PRESE*/
/// <summary>
/// PRESE: codice impianto
/// </summary>
public string? pimpianto { get; set; }
/// <summary>
/// PRESE: codice intervento (BIM=bimestrale,SEM=semestrale)
/// </summary>
public string? picodint { get; set; }
/// <summary>
/// PRESE: data manutenzione
/// </summary>
public DateTime? pidatman { get; set; }
/// <summary>
/// errore titolo
/// </summary>
public string? err_title { get; set; }
/// <summary>
/// errore dettaglio
/// </summary>
public string? err_detail { get; set; }
/// <summary>
/// errore status code (200, 500)
/// </summary>
public string? err_status_code { get; set; }
/// <summary>
/// Manutenzioni: telefono 1 impianto
/// </summary>
public string? telefono1 { get; set; }
/// <summary>
/// Manutenzioni: telefono 1 impianto
/// </summary>
public string? telefono2 { get; set; }
/// <summary></summary>
public string? mpmesgen { get; set; }
/// <summary></summary>
public string? mpmesfeb { get; set; }
/// <summary></summary>
public string? mpmesmar { get; set; }
/// <summary></summary>
public string? mpmesapr { get; set; }
/// <summary></summary>
public string? mpmesmag { get; set; }
/// <summary></summary>
public string? mpmesgiu { get; set; }
/// <summary></summary>
public string? mpmeslug { get; set; }
/// <summary></summary>
public string? mpmesago { get; set; }
/// <summary></summary>
public string? mpmesset { get; set; }
/// <summary></summary>
public string? mpmesott { get; set; }
/// <summary></summary>
public string? mpmesnov { get; set; }
/// <summary></summary>
public string? mpmesdic { get; set; }
/// <summary></summary>
public string? cliente { get; set; }
/// <summary>costo chiamata </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? chiamata { get; set; }
/// <summary>spese viaggio </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? spe_viaggio { get; set; }
/// <summary>costo orario ordinario </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? costo_ordinario { get; set; }
/// <summary>costo orario notturno </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? costo_notturno { get; set; }
/// <summary>costo orario straordinario </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? costo_straordinario { get; set; }
/// <summary>costo orario festivo </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? costo_festivo { get; set; }
/// <summary>Azienda di riferimento associata all'impianto (gestione loghi differenti)</summary>
public string? imazirif { get; set; }
/// <summary>Zona Impianto</summary>
public string? imzonman { get; set; }
/// <summary>Riferimento Impianto</summary>
public string? imrefref { get; set; }
}
}

View File

@ -0,0 +1,216 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary>
/// Manutenzioni Programmate uscita
/// </summary>
[Keyless]
public class Manprog_out
{
/// <summary>
/// MANPROG: codice intervento (BIM=bimestrale, SEM=semestarle,..)
/// </summary>
public string? ctcodint { get; set; }
/// <summary>
/// MANPROG: data prossima manutenzione
/// </summary>
public DateTime ctdatpro { get; set; }
/// <summary>
/// MANPROG: descrizione intervento
/// </summary>
public string? ctdesint { get; set; }
/// <summary>
/// MANPROG: indirizzo 1 impianto
/// </summary>
public string? imindiri1 { get; set; }
/// <summary>
/// MANPROG: indirizzo 2 impianto
/// </summary>
public string? imindiri2 { get; set; }
/// <summary>
/// MANPROG: indirizzo 3 impianto
/// </summary>
public int? imindiri3 { get; set; }
/// <summary>
/// MANPROG: indirizzo 4 impianto
/// </summary>
public string? imindiri4 { get; set; }
/// <summary>
/// MANPROG: indirizzo 5 impianto
/// </summary>
public string? imindiri5 { get; set; }
/// <summary>
/// MANPROG: localita impianto
/// </summary>
public string? imlocali { get; set; }
/// <summary>
/// MANPROG: cap impianto
/// </summary>
public string? imcodcap { get; set; }
/// <summary>
/// MANPROG: comune impianto
/// </summary>
public string? imcomune { get; set; }
/// <summary>
/// MANPROG: provincia 5 impianto
/// </summary>
public string? improvin { get; set; }
/// <summary>
/// matricola impianto
/// </summary>
public string? immatric { get; set; }
/// <summary>
/// numero impianto
/// </summary>
public string? imnumimp { get; set; }
/// <summary>
/// ubicazione impianto
/// </summary>
public string? imubicaz { get; set; }
/// <summary>
/// MANPROG: nazione impianto
/// </summary>
public string? ctcodazi { get; set; }
/// <summary>
/// MANPROG: codice impianto
/// </summary>
public string? ctcodimp { get; set; }
/// <summary>
/// MANPROG: tecnico descrizione
/// </summary>
public string? tcdescri { get; set; }
/// <summary>
/// MANPROG: tecnico codice
/// </summary>
public string? tccodice { get; set; }
/*RAPP_NEW*/
/// <summary>
/// RAPP_NEW: seriale rapportino
/// </summary>
public string? seriale_rapportino { get; set; }
/// <summary>
/// RAPP_NEW: seriale buono
/// </summary>
public string? ser_buono { get; set; }
/// <summary>
/// RAPP_NEW: flag generato. Rapportino importato in AdHoc
/// </summary>
public string? generato { get; set; }
/*PRESE*/
/// <summary>
/// PRESE: codice impianto
/// </summary>
public string? pimpianto { get; set; }
/// <summary>
/// PRESE: codice intervento (BIM=bimestrale,SEM=semestrale)
/// </summary>
public string? picodint { get; set; }
/// <summary>
/// PRESE: data manutenzione
/// </summary>
public DateTime? pidatman { get; set; }
/// <summary>
/// errore titolo
/// </summary>
public string? err_title { get; set; }
/// <summary>
/// errore dettaglio
/// </summary>
public string? err_detail { get; set; }
/// <summary>
/// errore status code (200, 500)
/// </summary>
public string? err_status_code { get; set; }
/// <summary>
/// Manutenzioni: telefono 1 impianto
/// </summary>
public string? telefono1 { get; set; }
/// <summary>
/// Manutenzioni: telefono 1 impianto
/// </summary>
public string? telefono2 { get; set; }
/// <summary>
/// Manutenzioni: cliente
/// </summary>
public string? cliente { get; set; }
/// <summary>costo chiamata </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? chiamata { get; set; }
/// <summary>spese viaggio </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? spe_viaggio { get; set; }
/// <summary>costo orario ordinario </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? costo_ordinario { get; set; }
/// <summary>costo orario notturno </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? costo_notturno { get; set; }
/// <summary>costo orario straordinario </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? costo_straordinario { get; set; }
/// <summary>costo orario festivo </summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? costo_festivo { get; set; }
/// <summary>altri dati Manutenzione</summary>
public Dictionary<string, string>? altri { get; set; }
/// <summary>Azienda di riferimento associata all'impianto (gestione loghi differenti)</summary>
public string? imazirif { get; set; }
/// <summary>Zona Impianto</summary>
public string? imzonman { get; set; }
/// <summary>Riferimento Impianto</summary>
public string? imrefref { get; set; }
/// <summary>indirizzo stampa (html)</summary>
public string? indirizzo_stampa { get; set; }
/// <summary>impianto per lista (html)</summary>
public string? impianto_list { get; set; }
/// <summary>riferimento impianto (html) su buono</summary>
public string? riferimento_impianto { get; set; }
}
}

View File

@ -0,0 +1,23 @@
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary>ViSTA Chiamate</summary>
[Keyless]
public class Notifiche
{
/// <summary>Azienda</summary>
public string? picodazi { get; set; }
/// <summary>utente destinastario notifica</summary>
public string? picodtec { get; set; }
/// <summary>seriale della chiamata</summary>
public string? piserial { get; set; }
/// <summary>data di invio della notifica</summary>
public DateTime? pidattim { get; set; }
}
}

View File

@ -0,0 +1,31 @@
namespace ApiPolo.Models
{
/// <summary>Uscita chiamataTable+chiamate</summary>
public class Output_Chiamate
{
/// <summary>output di chiamataTable (inserimento in tabella Chiamate)</summary>
public ChiamateTableOut? chiamataTable { get; set; }
/// <summary>output di Chiamate_out (inserimento in tabella Rapp_new)</summary>
public Chiamate_out? chiamate_Out { get; set; }
/// <summary>output di ChiamateSeriale_out (aggiornamento in tabella in tabella PINUMCHI)</summary>
public ChiamataSeriale_out? chiaser_Out { get; set; }
/// <summary>output di ChiamateSeriale_out (aggiornamento in tabella in tabella cpwarn)</summary>
public Prog_out? prog_Out { get; set; }
/// <summary>output di ChiamateSeriale_out (aggiornamento in tabella in tabella cpwarn)</summary>
public Chiamate_out? uscita { get; set; }
/// <summary>errore titolo</summary>
public string? err_title { get; set; }
/// <summary>errore dettaglio</summary>
public string? err_detail { get; set; }
/// <summary>errore status code (200, 500)</summary>
public string? err_status_code { get; set; }
}
}

View File

@ -0,0 +1,70 @@
namespace ApiPolo.Models
{
/// <summary>Output ricerca impianti e di ricerca commesse</summary>
public class Output_Ricerca
{
/// <summary>Codice Commessa</summary>
public string? codice_commessa { get; set; }
/// <summary>Descrizione Commessa</summary>
public string? desc_commessa { get; set; }
/// <summary>data fine validita Commessa</summary>
public DateTime? dt_fine_validita { get; set; }
/// <summary>tipo </summary>
public string? tipo_cliente_comm { get; set; }
/// <summary>codice cliente</summary>
public string? cliente_comm { get; set; }
/// <summary>descrizione cliente</summary>
public string? desc_cliente_comm { get; set; }
/// <summary>impianto</summary>
public string? codice_impianto { get; set; }
/// <summary>tipo ind </summary>
public string? imindiri1 { get; set; }
/// <summary>indirizzo </summary>
public string? imindiri2 { get; set; }
/// <summary>numero </summary>
public int? imindiri3 { get; set; }
/// <summary>lettera</summary>
public string? imindiri4 { get; set; }
/// <summary>scala</summary>
public string? imindiri5 { get; set; }
/// <summary>localita</summary>
public string? localita_impianto { get; set; }
/// <summary>CAP</summary>
public string? cap_impianto { get; set; }
/// <summary>provincia</summary>
public string? provincia_impianto { get; set; }
/// <summary>descrizione</summary>
public string? descrizione_impianto { get; set; }
/// <summary>elemento lista formato html</summary>
public string? itemList { get; set; }
/// <summary>Error title</summary>
public string? err_title { get; set; }
/// <summary>Error deatail</summary>
public string? err_detail { get; set; }
/// <summary>Error code</summary>
public string? err_status_code { get; set; }
}
}

17
ApiPolo/Models/Pagam.cs Normal file
View File

@ -0,0 +1,17 @@
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary>
/// Causali pagamento
/// </summary>
[Keyless]
public class Pagam
{
/// <summary>codice pagamento</summary>
public string? pacodice { get; set; }
/// <summary>descrizione pagamento</summary>
public string? padescri { get; set; }
}
}

38
ApiPolo/Models/Prese.cs Normal file
View File

@ -0,0 +1,38 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary>
/// Tabella PRESA
/// </summary>
public class Prese
{
/// <summary>Azienda</summary>
[Key]
public string? picodazi { get; set; }
/// <summary>Impianto</summary>
[Key]
public string? pimpianto { get; set; }
/// <summary>Codice intervento QUI=? SEM=SEMESTRALE </summary>
[Key]
public string? picodint { get; set; }
/// <summary>Tecnico</summary>
public string? picodtec { get; set; }
/// <summary>data della manutenzione</summary>
[Key]
public DateTime? pidatman { get; set; }
/// <summary>Zona manutenzione</summary>
public string? pizona { get; set; }
/// <summary>check presa</summary>
public string? pichkpre { get; set; }
/// <summary>cpccchk</summary>
public string? cpccchk { get; set; }
}
}

25
ApiPolo/Models/Prog.cs Normal file
View File

@ -0,0 +1,25 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary></summary>
public class Prog
{
/// <summary></summary>
[Key]
public string? tablecode { get; set; }
/// <summary></summary>
[Key]
public string? warncode { get; set; }
/// <summary></summary>
public double? autonum { get; set; }
/// <summary></summary>
public string? cpccchk { get; set; }
/// <summary></summary>
public string? autonum_name { get; set; }
}
}

28
ApiPolo/Models/Prog2.cs Normal file
View File

@ -0,0 +1,28 @@
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary></summary>
public class Prog2
{
/// <summary></summary>
[Key]
public string? tablecode { get; set; }
/// <summary></summary>
[Key]
public string? warncode { get; set; }
/// <summary></summary>
[Column(TypeName = "decimal(15, 0)")] ///
public decimal? autonum { get; set; }
/// <summary></summary>
public string? cpccchk { get; set; }
/// <summary></summary>
public string? autonum_name { get; set; }
}
}

View File

@ -0,0 +1,33 @@

namespace ApiPolo.Models
{
/// <summary></summary>
public class Prog_out
{
/// <summary></summary>
public string? tablecode { get; set; }
/// <summary></summary>
public string? warncode { get; set; }
/// <summary></summary>
public float? autonum { get; set; }
/// <summary></summary>
public string? cpccchk { get; set; }
/// <summary></summary>
public string? autonum_name { get; set; }
/// <summary> errore titolo</summary>
public string? err_title { get; set; }
/// <summary>errore dettaglio</summary>
public string? err_detail { get; set; }
/// <summary>errore status code (200, 500)</summary>
public string? err_status_code { get; set; }
}
}

View File

@ -0,0 +1,19 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary>tabella progressivi</summary>
public class Progressivo
{
/// <summary>Azienda</summary>
[Key]
public string? azienda { get; set; }
/// <summary>stringa definisce il tipo di progressivo da gestire</summary>
[Key]
public string? tipo_prog { get; set; }
/// <summary>valore progressivo</summary>
public int? val_prog { get; set; }
}
}

View File

@ -0,0 +1,26 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
public class Progressivo_out
{
/// <summary>Azienda</summary>
public string? azienda { get; set; }
/// <summary>stringa definisce il tipo di progressivo da gestire</summary>
public string? tipo_prog { get; set; }
/// <summary>valore progressivo</summary>
public int? val_prog { get; set; }
/// <summary> errore titolo</summary>
public string? err_title { get; set; }
/// <summary>errore dettaglio</summary>
public string? err_detail { get; set; }
/// <summary>errore status code (200, 500)</summary>
public string? err_status_code { get; set; }
}
}

286
ApiPolo/Models/Rapp_New.cs Normal file
View File

@ -0,0 +1,286 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary>Rapp_New</summary>
public class Rapp_New
{
/// <summary>
/// Seriale rapportini
/// </summary>
[Key]
public string? seriale_rapportino { get; set; }
/// <summary>
/// Tipo rapportini
/// </summary>
public string? tipo_rapportino { get; set; }
/// <summary>
/// Azienda
/// </summary>
public string? azienda_impianto { get; set; }
/// <summary>
/// Codice Impianto
/// </summary>
public string? codice_impianto { get; set; }
/// <summary>
/// Azienda su cui è la chiamata
/// </summary>
public string? azienda_chiamata { get; set; }
/// <summary>
/// Seriale chiamata
/// </summary>
public string? seriale_chiamata { get; set; }
/// <summary>
/// Seriale chiamata
/// </summary>
public string? seriale_commessa { get; set; }
/// <summary>
/// Data rapportino
/// </summary>
public DateTime? data_rapportino { get; set; }
/// <summary>
/// Ora inizio
/// </summary>
public string? ora_ini_rapportino { get; set; }
/// <summary>
/// minuto inizio
/// </summary>
public string? min_ini_rapportino { get; set; }
/// <summary>
/// Ora fine
/// </summary>
public string? ora_fin_rapportino { get; set; }
/// <summary>
/// Minuto fine
/// </summary>
public string? min_fin_rapportino { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_1 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_2 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_3 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_4 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_5 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_6 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_7 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_8 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_9 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_10 { get; set; }
/// <summary>
/// descrizione intervento
/// </summary>
public string? descrizione_intervento { get; set; }
/// <summary>
/// stato
/// </summary>
public string? stato_finale { get; set; }
/// <summary>
/// generato
/// </summary>
public string? generato { get; set; }
/// <summary>
/// azienda tecnico
/// </summary>
public string? azienda_tecnico { get; set; }
/// <summary>
/// codice tecnico
/// </summary>
public string? codice_tecnico { get; set; }
/// <summary>
/// flag rifiutata
/// </summary>
public string? rifiutata { get; set; }
/// <summary>
/// nminativo firma
/// </summary>
public string? firma { get; set; }
/// <summary>
/// flag stato In Carico
/// </summary>
public string? incarico { get; set; }
/// <summary>
/// data validità
/// </summary>
public DateTime? data_validita { get; set; }
/// <summary>
/// pathg immagine buono o firma
/// </summary>
public string? immagine { get; set; }
/// <summary>
/// seriale del buono
/// </summary>
public string? ser_buono { get; set; }
/// <summary>
/// data/ora effettiva del lavoro (nel caso dispositivo offline)
/// </summary>
public DateTime? data_effettiva { get; set; }
/*
public string? CODICE_GIRO { get; set; }
public string? CODICE_INTERVENTO { get; set; }
*/
/// <summary>
/// codice_intervento (valido per manutenzioni. Esempio: SEM=semestrale)
/// </summary>
public string? codice_intervento { get; set; }
//Zucchetti sicila
//DIFETTI_RISCONTRATI, LAVORO_ESEGUITO, ESITO_INTERVENTO,NOTE_ESITO, NOTE_INTERVENTO,NUOVO_CONTRATTO, ORE_LAVORO, CAUSALE, MATERIALE, DIRITTO_CHIAMATA, MANODOPERA, SPESE_VIAGGIO,
//PAGAMENTO, ANTICIPO, TOTALE, NOTE_PAGAMENTO, TIPO_INTERVENTO, RAFOTO1, RAFOTO2, RAFOTO3, RAFOTO4, RAFOTO5, RAFOTO6, RAFOTO7, RAFOTO8, RAFOTO9, RAFOTO10,
/// <summary></summary>
public string? difetti_riscontrati { get; set; }
/// <summary></summary>
public string? lavoro_eseguito { get; set; }
/// <summary></summary>
public string? esito_intervento { get; set; }
/// <summary></summary>
public string? note_intervento { get; set; }
/// <summary></summary>
public string? note_esito { get; set; }
/// <summary></summary>
public string? nuovo_contratto { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? ore_lavoro { get; set; }
//public int? ore_lavoro { get; set; }
/// <summary></summary>
public string? causale { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? materiale { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? diritto_chiamata { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? manodopera { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? spese_viaggio { get; set; }
/// <summary></summary>
public string? pagamento { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? anticipo { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(9, 2)")]
public decimal? totale { get; set; }
/// <summary></summary>
public string? note_pagamento { get; set; }
/// <summary></summary>
public string? tipo_intervento { get; set; }
/// <summary></summary>
public string? rafoto1 { get; set; }
/// <summary></summary>
public string? rafoto2 { get; set; }
/// <summary></summary>
public string? rafoto3 { get; set; }
/// <summary></summary>
public string? rafoto4 { get; set; }
/// <summary></summary>
public string? rafoto5 { get; set; }
/// <summary></summary>
public string? rafoto6 { get; set; }
/// <summary></summary>
public string? rafoto7 { get; set; }
/// <summary></summary>
public string? rafoto8 { get; set; }
/// <summary></summary>
public string? rafoto9 { get; set; }
/// <summary></summary>
public string? rafoto10 { get; set; }
}
}

View File

@ -0,0 +1,286 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary>Vista Rapp_New</summary>
[Keyless]
public class Rapp_New_View
{
/// <summary>Seriale rapportini</summary>
public string? seriale_rapportino { get; set; }
/// <summary>
/// Tipo rapportini
/// </summary>
public string? tipo_rapportino { get; set; }
/// <summary>
/// Azienda
/// </summary>
public string? azienda_impianto { get; set; }
/// <summary>
/// Codice Impianto
/// </summary>
public string? codice_impianto { get; set; }
/// <summary>
/// Azienda su cui è la chiamata
/// </summary>
public string? azienda_chiamata { get; set; }
/// <summary>
/// Seriale chiamata
/// </summary>
public string? seriale_chiamata { get; set; }
/// <summary>
/// Seriale chiamata
/// </summary>
public string? seriale_commessa { get; set; }
/// <summary>
/// Data rapportino
/// </summary>
public DateTime? data_rapportino { get; set; }
/// <summary>
/// Ora inizio
/// </summary>
public string? ora_ini_rapportino { get; set; }
/// <summary>
/// minuto inizio
/// </summary>
public string? min_ini_rapportino { get; set; }
/// <summary>
/// Ora fine
/// </summary>
public string? ora_fin_rapportino { get; set; }
/// <summary>
/// Minuto fine
/// </summary>
public string? min_fin_rapportino { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_1 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_2 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_3 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_4 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_5 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_6 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_7 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_8 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_9 { get; set; }
/// <summary>
/// codice chiusura
/// </summary>
public string? codice_chiusura_10 { get; set; }
/// <summary>
/// descrizione intervento
/// </summary>
public string? descrizione_intervento { get; set; }
/// <summary>
/// stato
/// </summary>
public string? stato_finale { get; set; }
/// <summary>
/// generato
/// </summary>
public string? generato { get; set; }
/// <summary>
/// azienda tecnico
/// </summary>
public string? azienda_tecnico { get; set; }
/// <summary>
/// codice tecnico
/// </summary>
public string? codice_tecnico { get; set; }
/// <summary>
/// flag rifiutata
/// </summary>
public string? rifiutata { get; set; }
/// <summary>
/// nminativo firma
/// </summary>
public string? firma { get; set; }
/// <summary>
/// flag stato In Carico
/// </summary>
public string? incarico { get; set; }
/// <summary>
/// data validità
/// </summary>
public DateTime? data_validita { get; set; }
/// <summary>
/// pathg immagine buono o firma
/// </summary>
public string? immagine { get; set; }
/// <summary>
/// seriale del buono
/// </summary>
public string? ser_buono { get; set; }
/// <summary>
/// data/ora effettiva del lavoro (nel caso dispositivo offline)
/// </summary>
public DateTime? data_effettiva { get; set; }
/*
public string? CODICE_GIRO { get; set; }
public string? CODICE_INTERVENTO { get; set; }
*/
/// <summary>
/// codice_intervento (valido per manutenzioni. Esempio: SEM=semestrale)
/// </summary>
public string? codice_intervento { get; set; }
//Zucchetti sicila
//DIFETTI_RISCONTRATI, LAVORO_ESEGUITO, ESITO_INTERVENTO,NOTE_ESITO, NOTE_INTERVENTO,NUOVO_CONTRATTO, ORE_LAVORO, CAUSALE, MATERIALE, DIRITTO_CHIAMATA, MANODOPERA, SPESE_VIAGGIO,
//PAGAMENTO, ANTICIPO, TOTALE, NOTE_PAGAMENTO, TIPO_INTERVENTO, RAFOTO1, RAFOTO2, RAFOTO3, RAFOTO4, RAFOTO5, RAFOTO6, RAFOTO7, RAFOTO8, RAFOTO9, RAFOTO10,
/// <summary></summary>
public string? difetti_riscontrati { get; set; }
/// <summary></summary>
public string? lavoro_eseguito { get; set; }
/// <summary></summary>
public string? esito_intervento { get; set; }
/// <summary></summary>
public string? note_intervento { get; set; }
/// <summary></summary>
public string? note_esito { get; set; }
/// <summary></summary>
public string? nuovo_contratto { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? ore_lavoro { get; set; }
//public int? ore_lavoro { get; set; }
/// <summary></summary>
public string? causale { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? materiale { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? diritto_chiamata { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? manodopera { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? spese_viaggio { get; set; }
/// <summary></summary>
public string? pagamento { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? anticipo { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(9, 2)")]
public decimal? totale { get; set; }
/// <summary></summary>
public string? note_pagamento { get; set; }
/// <summary></summary>
public string? tipo_intervento { get; set; }
/// <summary></summary>
public string? rafoto1 { get; set; }
/// <summary></summary>
public string? rafoto2 { get; set; }
/// <summary></summary>
public string? rafoto3 { get; set; }
/// <summary></summary>
public string? rafoto4 { get; set; }
/// <summary></summary>
public string? rafoto5 { get; set; }
/// <summary></summary>
public string? rafoto6 { get; set; }
/// <summary></summary>
public string? rafoto7 { get; set; }
/// <summary></summary>
public string? rafoto8 { get; set; }
/// <summary></summary>
public string? rafoto9 { get; set; }
/// <summary></summary>
public string? rafoto10 { get; set; }
/// <summary></summary>
public byte[]? img2 { get; set; }
}
}

515
ApiPolo/Models/Rappmast.cs Normal file
View File

@ -0,0 +1,515 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary>Rappmast: storico interventi per tecnico</summary>
public class Rappmast
{
//raserial, racaurap, raaziimp, racodimp, racodlav, rafaslav, ratipcli, racodcli, racontma, racodver, raazichi, racodchi, racodese, rasergir, raintgir, ranumrap, raalfrap,
//radatrap, raflafat, raflfatt, rautefat, radatfat, racodpag, raazite1, racodte1, raazite2, racodte2, raazite3, racodte3, ranumtec, raorefat, raggfatt, raimpuni, raserint,
//raimptot, radescri, radessup, raserfis, radesfis, raimpfis, rakmvia, raservia, radesvia, raimpuvi, ratotvia, radesmat, rasupmat, raimpmat, radesint, ranotint, rarifcli, ralisrif,
//racencos, racodcom, racodzon, raseratt, raserpas, radatvis, rastato, ratipint, ramodfat, rascorp, ralcorp, raimpcor, rariclis, radecor, radscor, raflnume, raumvia, raumass,
//cpccchk, raflbloc, raperman, raimpman, raimpmtc, utcc, utcv, utdc, utdv, rascorap, raorefata, raimpunia, raserinta, raimptota, radescria, rastrass, rastrfis, rastrvia, rastrima,
//rastrimv, rastrimf, rastrorf, rastrimat, rastrimvt, rastrda, rastrdf, rastrdv, ranotass, ranotfis, ranotvia, ranotima, ranotimv, ranotimf, ranotorf, ranotimat, ranotimvt,
// ranotda, ranotdf, ranotdv, rafesass, rafesfis, rafesvia, rafesima, rafesimv, rafesimf, rafesorf, rafesimat, rafesimvt, rafesda, rafesdf, rafesdv, raimpuvi2, ratotvia2, raumvia2,
//rakmvia2, racodinte, ranrordi, rastrorfa, ranotorfa, rafesorfa, rastrimaa, ranotimaa, rafesimaa, rastrassa, rastrdaa, ranotassa, ranotdaa, rafesassa, rafesdaa, rastrimata,
// ranotimata, rafesimata, rperiodo, ranumpas, raimppas, raimp_od, raflfoor, piforimp
/// <summary> Seriale rapportini</summary>
[Key]
public string? raserial { get; set; }
/// <summary> Causale</summary>
public string? racaurap { get; set; }
/// <summary> Azienda</summary>
public string? raaziimp { get; set; }
/// <summary> Impianto</summary>
public string? racodimp { get; set; }
/// <summary> Lavoro</summary>
public string? racodlav { get; set; }
/// <summary> fase Lavoro</summary>
public int? rafaslav { get; set; }
/// <summary> tipo cliente</summary>
public string? ratipcli { get; set; }
/// <summary> codice cliente</summary>
public string? racodcli { get; set; }
/// <summary> contratto manutenzione</summary>
public string? racontma { get; set; }
/// <summary> verbale</summary>
public string? racodver { get; set; }
/// <summary> azienda chiamata</summary>
public string? raazichi { get; set; }
/// <summary> chiamata</summary>
public string? racodchi { get; set; }
/// <summary> esercizio</summary>
public string? racodese { get; set; }
/// <summary> codice giro</summary>
public string? rasergir { get; set; }
/// <summary> intervento giro</summary>
public string? raintgir { get; set; }
/// <summary> numero rapportino</summary>
public int? ranumrap { get; set; }
/// <summary> serie rapportino</summary>
public string? raalfrap { get; set; }
// , , , , , , , , , ,
/// <summary> data rapportino</summary>
public DateTime? radatrap { get; set; }
/// <summary> flag da fatturare</summary>
public string? raflafat { get; set; }
/// <summary> flag fatturabile</summary>
public string? raflfatt { get; set; }
/// <summary> utente fatturabile</summary>
public int? rautefat { get; set; }
/// <summary> data fatturabilità</summary>
public DateTime? radatfat { get; set; }
/// <summary> codice pagamento</summary>
public string? racodpag { get; set; }
/// <summary> azienda tecnico 1</summary>
public string? raazite1 { get; set; }
/// <summary> tecnico 1</summary>
public string? racodte1 { get; set; }
/// <summary> azienda tecnico 2</summary>
public string? raazite2 { get; set; }
/// <summary> tecnico 2</summary>
public string? racodte2 { get; set; }
/// <summary> azienda tecnico 3</summary>
public string? raazite3 { get; set; }
/// <summary> tecnico 3</summary>
public string? racodte3 { get; set; }
/// <summary> tecnici fatturabili</summary>
public int? ranumtec { get; set; }
//11111111111111111111
/// <summary>Ore fatturabili</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 4)")]
public decimal? raorefat { get; set; }
/// <summary>giornate fatturabili</summary>
public int? raggfatt { get; set; }
/// <summary>Importo unitario</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? raimpuni { get; set; }
/// <summary>servizio assistenza</summary>
public string? raserint { get; set; }
// , , , , , , , , , , , , , , , , ,
/// <summary>Importo totale</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? raimptot { get; set; }
/// <summary>descrizione</summary>
public string? radescri { get; set; }
/// <summary>Note</summary>
public string? radessup { get; set; }
/// <summary>Servizio dir. fisso</summary>
public string? raserfis { get; set; }
/// <summary>descrizione dir. fisso</summary>
public string? radesfis { get; set; }
/// <summary>Importo dir. fisso</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? raimpfis { get; set; }
//2222222222222222
/// <summary>Importo dir. fisso</summary>
public int? rakmvia { get; set; }
/// <summary>servizio viaggio</summary>
public string? raservia { get; set; }
/// <summary>descrizione viaggio</summary>
public string? radesvia { get; set; }
/// <summary>Importo viaggio</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? raimpuvi { get; set; }
/// <summary>Totale viaggio</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? ratotvia { get; set; }
/// <summary>descrizione meteriale</summary>
public string? radesmat { get; set; }
/// <summary>Note meteriale</summary>
public string? rasupmat { get; set; }
/// <summary>Importo materiali</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? raimpmat { get; set; }
/// <summary>Descrizione intervento</summary>
public string? radesint { get; set; }
/// <summary>Note intervento</summary>
public string? ranotint { get; set; }
/// <summary>Riferimento cliente</summary>
public string? rarifcli { get; set; }
/// <summary>Listino costi</summary>
public string? ralisrif { get; set; }
//, , , , , , , , , , , , , , , , , ,
/// <summary>centro di costo</summary>
public string? racencos { get; set; }
/// <summary>commessa</summary>
public string? racodcom { get; set; }
/// <summary>Zona analitica</summary>
public string? racodzon { get; set; }
/// <summary>Seriale doc attivo</summary>
public string? raseratt { get; set; }
/// <summary>Seriale doc passivo</summary>
public string? raserpas { get; set; }
/// <summary>Seriale doc passivo</summary>
public DateTime? radatvis { get; set; }
/// <summary>Stato rapportino (Controllato S/N)</summary>
public string? rastato { get; set; }
/// <summary>Tipo intervento (Reperibile S/N)</summary>
public string? ratipint { get; set; }
/// <summary>Modalita fatturazione</summary>
public string? ramodfat { get; set; }
/// <summary>Servizio per fatture a corpo</summary>
public string? rascorp { get; set; }
/// <summary>Listino per fatture a corpo</summary>
public string? ralcorp { get; set; }
//44444444444444444444444444444
/// <summary>Importo servizio a corpo</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? raimpcor { get; set; }
/// <summary>percentuale ricarico costi materiali</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(6, 2)")]
public decimal? rariclis { get; set; }
/// <summary>descrizione servizio a corpo</summary>
public string? radecor { get; set; }
/// <summary>descrizione suppl servizio a corpo</summary>
public string? radscor { get; set; }
/// <summary>Numerazione automatica</summary>
public string? raflnume { get; set; }
/// <summary>U.M. viaggio</summary>
public string? raumvia { get; set; }
/// <summary>U.M. assistenza</summary>
public string? raumass { get; set; }
//, , , , , , , , , , , , , , , , , ,
/// <summary>flag assegnazione tecnico da blocchetto</summary>
public string? raflbloc { get; set; }
/// <summary>percentuale manodopera</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(6, 2)")]
public decimal? raperman { get; set; }
/// <summary>importo manodopera a corpo</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? raimpman { get; set; }
/// <summary>importo materiale a corpo</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? raimpmtc { get; set; }
//cpccchk, , , , , utcc, utcv, utdc, utdv, rascorap, raorefata, raimpunia, raserinta, raimptota, radescria,
/// <summary>Servizio assistenza ore straordinario</summary>
public string? rastrass { get; set; }
/// <summary>Servizio dir. fisso ore straordinario</summary>
public string? rastrfis { get; set; }
/// <summary>Servizio viaggio straordinario</summary>
public string? rastrvia { get; set; }
/// <summary>importo straord assistenza</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? rastrima { get; set; }
//, , , ,
/// <summary>importo straord viaggio</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? rastrimv { get; set; }
/// <summary>importo straord dir. fisso</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? rastrimf { get; set; }
/// <summary>ore fatturabili straordinario</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 4)")]
public decimal? rastrorf { get; set; }
/// <summary>importo totale straord assistenza</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? rastrimat { get; set; }
/// <summary>importo totale straord viaggio</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? rastrimvt { get; set; }
/// <summary>Desc assistenza straordinario</summary>
public string? rastrda { get; set; }
//66666666666666
/// <summary>Desc dir. fisso straordinario</summary>
public string? rastrdf { get; set; }
/// <summary>Desc viaggio straordinario</summary>
public string? rastrdv { get; set; }
/// <summary>Servizio assistenza ore notturno</summary>
public string? ranotass { get; set; }
/// <summary>Servizio dir. fisso ore notturno</summary>
public string? ranotfis { get; set; }
/// <summary>Servizio viaggio notturno</summary>
public string? ranotvia { get; set; }
/// <summary>importo notturno assistenza</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? ranotima { get; set; }
/// <summary>importo notturno viaggio</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? ranotimv { get; set; }
/// <summary>importo notturno dir.fisso</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? ranotimf { get; set; }
/// <summary>Ore fatturabili notturno</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 4)")]
public decimal? ranotorf { get; set; }
/// <summary>importo totale notturno assistenza</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? ranotimat { get; set; }
/// <summary>importo totale notturno viaggio</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? ranotimvt { get; set; }
// , , , , , , , , , , , , , , , , ,
///77777777
/// <summary>Desc assistenza notturno</summary>
public string? ranotda { get; set; }
/// <summary>Desc dir fisso notturno</summary>
public string? ranotdf { get; set; }
/// <summary>Desc viaggio notturno</summary>
public string? ranotdv { get; set; }
/// <summary>servizio assistenza ore festivo</summary>
public string? rafesass { get; set; }
/// <summary>servizio dir. fisso ore festivo</summary>
public string? rafesfis { get; set; }
/// <summary>servizio viaggio festivo</summary>
public string? rafesvia { get; set; }
/// <summary>importo festivo assistenza</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? rafesima { get; set; }
/// <summary>importo festivo viaggio</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? rafesimv { get; set; }
/// <summary>importo festivo dir. fisso</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? rafesimf { get; set; }
/// <summary>ore fatturabili festivo</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 4)")]
public decimal? rafesorf { get; set; }
/// <summary>importo totale festivo assistenza</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? rafesimat { get; set; }
/// <summary>importo totale festivo viaggio</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? rafesimvt { get; set; }
/// <summary>desc assistenza festivo</summary>
public string? rafesda { get; set; }
/// <summary>desc dir fisso festivo</summary>
public string? rafesdf { get; set; }
/// <summary>desc viaggio festivo</summary>
public string? rafesdv { get; set; }
//888888888888888888888
/// <summary>importo unitario viaggio 2</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? raimpuvi2 { get; set; }
/// <summary>importo totale viaggio 2</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? ratotvia2 { get; set; }
/// <summary>U.M. viaggio 2</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? raumvia2 { get; set; }
// , , , , , , , , , , , , , , , , , ,
/// <summary>Km totali viaggio 2</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(6, 2)")]
public decimal? rakmvia2 { get; set; }
/// <summary>codice intervento</summary>
public string? racodinte { get; set; }
/// <summary>Numero ordine</summary>
public string? ranrordi { get; set; }
/// <summary>ore fatturabili starordinario aiutante</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 4)")]
public decimal? rastrorfa { get; set; }
/// <summary>ore fatturabili notturne aiutante</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 4)")]
public decimal? ranotorfa { get; set; }
/// <summary>ore fatturabili festive aiutante</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 4)")]
public decimal? rafesorfa { get; set; }
/// <summary>importo straordinario aiutante</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? rastrimaa { get; set; }
/// <summary>importo notte aiutante</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? ranotimaa { get; set; }
/// <summary>importo festivo aiutante</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? rafesimaa { get; set; }
/// <summary>servizio assistenza straordinario aiutante</summary>
public string? rastrassa { get; set; }
/// <summary>descrizione servizio assistenza aiutante</summary>
public string? rastrdaa { get; set; }
/// <summary>descrizione servizio notte aiutante</summary>
public string? ranotassa { get; set; }
/// <summary>descrizione servizio festivo aiutante</summary>
public string? ranotdaa { get; set; }
/// <summary>servizio festivo aiutante</summary>
public string? rafesassa { get; set; }
/// <summary>descrizione festivo aiutante</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? rafesdaa { get; set; }
/// <summary>importo ore straordinario aiutante</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? rastrimata { get; set; }
//99999999999999999999999999999999
// , , , , , , , , , , , , , , , ,
/// <summary>importo ore notturne aiutante</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? ranotimata { get; set; }
/// <summary>importo ore festive aiutante</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? rafesimata { get; set; }
/// <summary>periodo</summary>
public string? rperiodo { get; set; }
/// <summary>numero pasti</summary>
public int? ranumpas { get; set; }
/// <summary>importo pasti</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? raimppas { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? raimp_od { get; set; }
/// <summary>flag forza ore lavoro</summary>
public string? raflfoor { get; set; }
/// <summary>flag forza impianto</summary>
public string? piforimp { get; set; }
// , , , , , , ,
}
}

View File

@ -0,0 +1,132 @@
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary>
/// </summary>
[Keyless]
public class Rapportino
{
/// <summary>
/// Seriale
/// </summary>
public string? seriale_rapportino { get; set; }
/// <summary>
/// Azienda
/// </summary>
public string? azienda_impianto { get; set; }
/// <summary>
/// Codice Impianto
/// </summary>
public string? codice_impianto { get; set; }
/// <summary>
/// Seriale chiamata
/// </summary>
public string? seriale_chiamata { get; set; }
/// <summary>
/// Seriale chiamata
/// </summary>
public string? seriale_commessa { get; set; }
/// <summary>
/// Data rapportino
/// </summary>
public DateTime? data_rapportino { get; set; }
/// <summary>Codice Cliente</summary>
public string? ancodice { get; set; }
/// <summary>Ragione Sociale</summary>
public string? andescri { get; set; }
/// <summary>ora inizio rapportino</summary>
public string? ora_ini_rapportino { get; set; }
/// <summary>ora inizio rapportino</summary>
public string? ora_fin_rapportino { get; set; }
/// <summary>min inizio rapportino</summary>
public string? min_ini_rapportino { get; set; }
/// <summary>min inizio rapportino</summary>
public string? min_fin_rapportino { get; set; }
/// <summary>codice chiusura 1</summary>
public string? codice_chiusura_1 { get; set; }
/// <summary>codice chiusura 2</summary>
public string? codice_chiusura_2 { get; set; }
/// <summary>codice chiusura 3</summary>
public string? codice_chiusura_3 { get; set; }
/// <summary>codice chiusura 4</summary>
public string? codice_chiusura_4 { get; set; }
/// <summary>codice chiusura 5</summary>
public string? codice_chiusura_5 { get; set; }
/// <summary>codice chiusura 6</summary>
public string? codice_chiusura_6 { get; set; }
/// <summary>codice chiusura 7</summary>
public string? codice_chiusura_7 { get; set; }
/// <summary>codice chiusura 8</summary>
public string? codice_chiusura_8 { get; set; }
/// <summary>codice chiusura 9</summary>
public string? codice_chiusura_9 { get; set; }
/// <summary>codice chiusura 10</summary>
public string? codice_chiusura_10 { get; set; }
/// <summary>descrizione int</summary>
public string? descrizione_intervento { get; set; }
/// <summary>tecnico</summary>
public string? codice_tecnico { get; set; }
/// <summary>firma</summary>
public string? firma { get; set; }
/// <summary>cod intervento</summary>
public string? codice_intervento { get; set; }
/// <summary></summary>
public string? note_intervento { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? ore_lavoro { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? materiale { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? diritto_chiamata { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? manodopera { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? spese_viaggio { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? anticipo { get; set; }
/// <summary></summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(9, 2)")]
public decimal? totale { get; set; }
}
}

View File

@ -0,0 +1,75 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary>Form di registrazione</summary>
public class Registrazione
{
/// <summary>tipo </summary>
[Key]
public int Id { get; set; }
/// <summary>Nome</summary>
public string? Nome { get; set; }
/// <summary>Cognome</summary>
public string? Cognome { get; set; }
/// <summary>Telefono</summary>
public string? Telefono { get; set; }
/// <summary>Cellulare</summary>
public string? Cellulare { get; set; }
/// <summary>Email</summary>
public string? Email { get; set; }
/// <summary>Email di conferma</summary>
public string? EmailConf { get; set; }
/// <summary>Azienda</summary>
public string? Azienda { get; set; }
/// <summary>Username</summary>
public string? Username { get; set; }
/// <summary>Password</summary>
public string? Passwd { get; set; }
/// <summary>Città</summary>
public string? Citta { get; set; }
/// <summary>Provincia (sigla)</summary>
public string? Provincia { get; set; }
/// <summary>Nazione (sigla)</summary>
public string? Nazione { get; set; }
/// <summary>Attivato (S/N)</summary>
public string? Attivato { get; set; }
/// <summary>Token registrazione</summary>
public string? Token { get; set; }
/// <summary>Form registrazione: check 1</summary>
public bool privacy1 { get; set; }
/// <summary>Form registrazione: check 2</summary>
public bool privacy2 { get; set; }
/// <summary>Form registrazione: check 3</summary>
public bool privacy3 { get; set; }
/// <summary>Form registrazione: check 4</summary>
public bool privacy4 { get; set; }
/// <summary>Richiesta del moduulo Timesheet</summary>
public bool ModuloTimesheet { get; set; }
/// <summary>Richiesta del moduulo Rapportini</summary>
public bool ModuloRapportini { get; set; }
/// <summary>Ragione sociale</summary>
public string? RagioneSociale { get; set; }
}
}

View File

@ -0,0 +1,73 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary>
/// Contiene i campi di SALDIART
/// </summary>
[Keyless]
public class Saldiart
{
/// <summary>articolo</summary>
public string? slcodice { get; set; }
/// <summary>descrizione articolo</summary>
public string? ardesart { get; set; }
/// <summary>magazzino</summary>
public string? slcodmag { get; set; }
/// <summary>quantita</summary>
[Column(TypeName = "decimal(13, 3)")]
public decimal? slqtaper { get; set; }
/// <summary>matricola</summary>
public string? amcodice { get; set; }
/// <summary>lotto</summary>
public string? locodice { get; set; }
/// <summary>listino</summary>
public string? licodlis { get; set; }
/// <summary>articolo del listino</summary>
public string? licodart { get; set; }
/// <summary>data validità listino</summary>
public DateTime? lidatatt { get; set; }
/// <summary>quantita</summary>
[Column(TypeName = "decimal(12, 3)")]
public decimal? liquanti { get; set; }
/// <summary>prezzo</summary>
[Column(TypeName = "decimal(18, 5)")]
public decimal? liprezzo { get; set; }
/// <summary>sconto1</summary>
[Column(TypeName = "decimal(6, 2)")]
public decimal? liscont1 { get; set; }
/// <summary>sconto2</summary>
[Column(TypeName = "decimal(6, 2)")]
public decimal? liscont2 { get; set; }
/// <summary>sconto3</summary>
[Column(TypeName = "decimal(6, 2)")]
public decimal? liscont3 { get; set; }
/// <summary>sconto4</summary>
[Column(TypeName = "decimal(6, 2)")]
public decimal? liscont4 { get; set; }
/// <summary>articolo gestito a matricole(S/N)</summary>
public string? gest_matr { get; set; }
/// <summary>articolo gestito a lotti (S e C=si, N=no)</summary>
public string? gest_lotti { get; set; }
/// <summary>descrizione per ogni articolo (se abilitata da configurazioni)</summary>
public string? desc_sup { get; set; }
}
}

View File

@ -0,0 +1,27 @@
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary></summary>
[Keyless]
public class Sostituzione
{
/// <summary>azienda</summary>
public string? tscodazi { get; set; }
/// <summary>tecnico</summary>
public string? tscodtec { get; set; }
/// <summary>zona</summary>
public string? tscodzon { get; set; }
/// <summary>Inizio sostituzione</summary>
public DateTime? tsdatain { get; set; }
/// <summary>Fine sostituzione</summary>
public DateTime? tsdatafi { get; set; }
/// <summary>codice sostituzione</summary>
public string? tscodsos { get; set; }
}
}

86
ApiPolo/Models/Sto_Imp.cs Normal file
View File

@ -0,0 +1,86 @@
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary>Storico impianti</summary>
[Keyless]
public class Sto_Imp
{
/// <summary>seriale rapportino</summary>
public string? seriale_rapportino { get; set; }
/// <summary>seriale rapportino</summary>
public DateTime? data_rapportino { get; set; }
/// <summary>indice riga</summary>
public int? riga { get; set; }
/// <summary>codice magazzino</summary>
public string? magazzino { get; set; }
/// <summary>codice articolo</summary>
public string? articolo { get; set; }
/// <summary>descrizione articolo</summary>
public string? desc_art { get; set; }
/// <summary>tipologia movimento (E=eliminato,A=aggiunto,S=sotituito)</summary>
public string? tipo_movimento { get; set; }
/// <summary>quantità articolo</summary>
[Column(TypeName = "decimal(7, 2)")]
public decimal? quantita { get; set; }
/// <summary>prezzo articolo</summary>
[Column(TypeName = "decimal(10, 2)")]
public decimal? prezzo { get; set; }
/// <summary>codice tecnico</summary>
public string? codice_tecnico { get; set; }
/// <summary>descrizione tecnico</summary>
public string? desc_tecnico { get; set; }
/// <summary>documento generato</summary>
public string? generato { get; set; }
/// <summary>note </summary>
public string? note { get; set; }
/// <summary>codice lotto articolo</summary>
public string? codlotto { get; set; }
/// <summary>matricola articolo</summary>
public string? matricola { get; set; }
/// <summary></summary>
public int? cprownum { get; set; }
/// <summary>codice impianto</summary>
public string? codimp { get; set; }
/// <summary>descrizione impianto</summary>
public string? desc_impianto { get; set; }
/// <summary>azienda impianto</summary>
public string? azienda_impianto { get; set; }
/// <summary>tipo indirizzo (via, strada)</summary>
public string? indirizzo_tipo { get; set; }
/// <summary> indirizzo</summary>
public string? indirizzo { get; set; }
/// <summary> indirizzo numero</summary>
public int? indirizzo_num { get; set; }
/// <summary> indirizzo scala</summary>
public string? indirizzo_scala { get; set; }
/// <summary> indirizzo sottonumero</summary>
public string? indirizzo_num2 { get; set; }
}
}

View File

@ -0,0 +1,31 @@
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary>Storico impianti- output</summary>
[Keyless]
public class Sto_Imp_out
{
/// <summary>(LISTA)data rapportino</summary>
public DateTime? data_rapportino { get; set; }
/// <summary>(LISTA) codice articolo</summary>
public string? articolo { get; set; }
/// <summary>(LISTA) tipologia movimento (E=eliminato,A=aggiunto,S=sotituito)</summary>
public string? tipo_movimento { get; set; }
/// <summary>dettaglio movimento impianto </summary>
public Dictionary<string, string>? dettaglio { get; set; }
/// <summary>errore titolo </summary>
public string? err_title { get; set; }
/// <summary>errore dettaglio</summary>
public string? err_detail { get; set; }
/// <summary>errore status code (200, 500)</summary>
public string? err_status_code { get; set; }
}
}

234
ApiPolo/Models/Sto_Rapp.cs Normal file
View File

@ -0,0 +1,234 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
namespace ApiPolo.Models
{
/// <summary>
/// Storico interventi New
/// </summary>
[Keyless]
public class Sto_Rapp
{
/// <summary>(LISTA) codice tecnico</summary>
public string? tccodice { get; set; }
/// <summary>(LISTA) descrizione tecnico</summary>
public string? tcdescri { get; set; }
/// <summary>(LISTA) note esito</summary>
public string? note_esito { get; set; }
/// <summary>(LISTA) note esito</summary>
public DateTime? data_rapportino { get; set; }
/// <summary>stato finale</summary>
public string? stato_finale { get; set; }
/// <summary>esito intervento</summary>
public string? esito_intervento { get; set; }
/// <summary>descrizione intervento</summary>
public string? descrizione_intervento { get; set; }
/// <summary>firma rapportino</summary>
public string? firma { get; set; }
/// <summary>seriale chiamata (se chiamata, altrimenti null</summary>
public string? seriale_chiamata { get; set; }
/// <summary>seriale buono</summary>
public string? ser_buono { get; set; }
/// <summary>difetti riscontrati</summary>
public string? difetti_riscontrati { get; set; }
/// <summary>lavoro eseguito</summary>
public string? lavoro_eseguito { get; set; }
/// <summary>note intervento</summary>
public string? note_intervento { get; set; }
/// <summary>ore lavoro</summary>
[Column(TypeName = "decimal(7, 2)")]
public decimal? ore_lavoro { get; set; }
/// <summary>costo materiale</summary>
[Column(TypeName = "decimal(7, 2)")]
public decimal? materiale { get; set; }
/// <summary>diritto chiamata</summary>
[Column(TypeName = "decimal(7, 2)")]
public decimal? diritto_chiamata { get; set; }
/// <summary>anticipo</summary>
[Column(TypeName = "decimal(7, 2)")]
public decimal? anticipo { get; set; }
/// <summary>manodopera</summary>
[Column(TypeName = "decimal(7, 2)")]
public decimal? manodopera { get; set; }
/// <summary>spese viaggio</summary>
[Column(TypeName = "decimal(7, 2)")]
public decimal? spese_viaggio { get; set; }
/// <summary>pagamento</summary>
public string? pagamento { get; set; }
/// <summary>codice impianto</summary>
public string? codice_impianto { get; set; }
/// <summary>totale</summary>
[Column(TypeName = "decimal(9, 2)")]
public decimal? totale { get; set; }
/// <summary>note pagamento</summary>
public string? note_pagamento { get; set; }
/// <summary>tipo intervento</summary>
public string? tipo_intervento { get; set; }
/// <summary>rapportino generato in adhoc S/N</summary>
public string? generato { get; set; }
/// <summary>azienda tecnico</summary>
public string? azienda_tecnico { get; set; }
/// <summary>azienda impianto</summary>
public string? azienda_impianto { get; set; }
/// <summary>azienda chiamata</summary>
public string? azienda_chiamata { get; set; }
/// <summary>cod chiusura 1</summary>
public string? codice_chiusura_1 { get; set; }
/// <summary>cod chiusura 2</summary>
public string? codice_chiusura_2 { get; set; }
/// <summary>cod chiusura 3</summary>
public string? codice_chiusura_3 { get; set; }
/// <summary>cod chiusura 4</summary>
public string? codice_chiusura_4 { get; set; }
/// <summary>cod chiusura 5</summary>
public string? codice_chiusura_5 { get; set; }
/// <summary>cod chiusura 6</summary>
public string? codice_chiusura_6 { get; set; }
/// <summary>cod chiusura 7</summary>
public string? codice_chiusura_7 { get; set; }
/// <summary>cod chiusura 8</summary>
public string? codice_chiusura_8 { get; set; }
/// <summary>cod chiusura 9</summary>
public string? codice_chiusura_9 { get; set; }
/// <summary>cod chiusura 10</summary>
public string? codice_chiusura_10 { get; set; }
/// <summary>des cod chiusura 1</summary>
public string? cc1 { get; set; }
/// <summary>des cod chiusura 2</summary>
public string? cc2 { get; set; }
/// <summary>des cod chiusura 3</summary>
public string? cc3 { get; set; }
/// <summary>des cod chiusura 4</summary>
public string? cc4 { get; set; }
/// <summary>des cod chiusura 5</summary>
public string? cc5 { get; set; }
/// <summary>des cod chiusura 6</summary>
public string? cc6 { get; set; }
/// <summary>des cod chiusura 7</summary>
public string? cc7 { get; set; }
/// <summary>des cod chiusura 8</summary>
public string? cc8 { get; set; }
/// <summary>des cod chiusura 9</summary>
public string? cc9 { get; set; }
/// <summary>des cod chiusura 10</summary>
public string? cc10 { get; set; }
/// <summary>des supp cod chiusura 1</summary>
public string? ccds1 { get; set; }
/// <summary>des supp cod chiusura 2</summary>
public string? ccds2 { get; set; }
/// <summary>des supp cod chiusura 3</summary>
public string? ccds3 { get; set; }
/// <summary>des supp cod chiusura 4</summary>
public string? ccds4 { get; set; }
/// <summary>des supp cod chiusura 5</summary>
public string? ccds5 { get; set; }
/// <summary>des supp cod chiusura 6</summary>
public string? ccds6 { get; set; }
/// <summary>des supp cod chiusura 7</summary>
public string? ccds7 { get; set; }
/// <summary>des supp cod chiusura 8</summary>
public string? ccds8 { get; set; }
/// <summary>des supp cod chiusura 9</summary>
public string? ccds9 { get; set; }
/// <summary>des supp cod chiusura 10</summary>
public string? ccds10 { get; set; }
/// <summary>seriale rapportino</summary>
public string? seriale_rapportino { get; set; }
/// <summary>codice intervento manutenzione</summary>
public string? codice_intervento { get; set; }
/// <summary>descrizione intervento manutenzione</summary>
public string? cidescri { get; set; }
/// <summary>descrizione suppl. intervento manutenzione</summary>
public string? cidessup { get; set; }
/// <summary>descrizione suppl. codice intervento manutenzione</summary>
public DateTime? data_manutenzione { get; set; }
/// <summary>codice segnalazione chiamata</summary>
public string? codice_segnalazione { get; set; }
/// <summary>tipo indirizzo (via, strada)</summary>
public string? indirizzo_tipo { get; set; }
/// <summary> indirizzo</summary>
public string? indirizzo { get; set; }
/// <summary> indirizzo numero</summary>
public int? indirizzo_num { get; set; }
/// <summary> indirizzo scala</summary>
public string? indirizzo_scala { get; set; }
/// <summary> indirizzo sottonumero</summary>
public string? indirizzo_num2 { get; set; }
}
}

View File

@ -0,0 +1,33 @@
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary>ViSTA Chiamate</summary>
[Keyless]
public class Sto_Rapp_out
{
/// <summary>(LISTA) codice tecnico</summary>
public string? tccodice { get; set; }
/// <summary>(LISTA) descrizione tecnico</summary>
public string? tcdescri { get; set; }
/// <summary>(LISTA) note esito</summary>
public string? note_esito { get; set; }
/// <summary>(LISTA) note esito</summary>
public DateTime? data_rapportino { get; set; }
/// <summary>dettaglio rapportino </summary>
public Dictionary<string, string>? dettaglio { get; set; }
/// <summary>errore titolo </summary>
public string? err_title { get; set; }
/// <summary>errore dettaglio</summary>
public string? err_detail { get; set; }
/// <summary>errore status code (200, 500)</summary>
public string? err_status_code { get; set; }
}
}

View File

@ -0,0 +1,29 @@
namespace ApiPolo.Models
{
/// <summary>Tabelle di Dominio </summary>
public class TabelleDominio
{
/// <summary>lista causali rapportino </summary>
public List<Caus_Rapp>? cau_rapp { get; set; }
/// <summary>lista causali pagamento </summary>
public List<Pagam>? cau_pag { get; set; }
/// <summary>stati impianto </summary>
public List<ComboItem>? statoImpianto { get; set; }
/// <summary>esito intervento </summary>
public List<ComboItem>? esito { get; set; }
}
/// <summary></summary>
public class ComboItem
{
/// <summary></summary>
public string? chiave { get; set; }
/// <summary></summary>
public string? valore { get; set; }
}
}

79
ApiPolo/Models/Tecnici.cs Normal file
View File

@ -0,0 +1,79 @@
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary>tecnici</summary>
[Keyless]
public class Tecnici
{
/// <summary>
/// Codice tecnico
/// </summary>
public string? tccodice { get; set; }
/// <summary>
/// Descrizione tecnico
/// </summary>
public string? Tcdescri { get; set; }
/// <summary>
/// telefono tecnico
/// </summary>
public string? tctelef1 { get; set; }
/// <summary>
/// Qualifica tecnico chiamatista
/// </summary>
public string? tcchiam { get; set; }
/// <summary>
/// Qualifica tecnico manutentore
/// </summary>
public string? tcmanut { get; set; }
/// <summary>
/// Azienda tecnico
/// </summary>
public string? tccodazi { get; set; }
/// <summary>
/// Qualifica tecnico supervisore
/// </summary>
public string? tcsuper { get; set; }
/// <summary>
/// Username tecnico
/// </summary>
public string? tcuser { get; set; }
/// <summary>
/// Password tecnico
/// </summary>
public string? tcpwd { get; set; }
/// <summary>
/// Zona tecnico
/// </summary>
public string? tdcodzon { get; set; }
/// <summary>
/// data inizio attività tecnico
/// </summary>
public DateTime? tddatain { get; set; }
/// <summary>
/// data fine attività tecnico
/// </summary>
public DateTime? tddatafi { get; set; }
/// <summary>
/// Flag utente Amministratore per Azienda. Se 1 Amministratore e entra in VT, 0 non entra
/// </summary>
public int tccodute { get; set; }
/// <summary>Identifica un utente abilitato al download dell'app</summary>
//public string? tciden { get; set; }
}
}

View File

@ -0,0 +1,51 @@
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary>
/// (Virtual Task) Contiene i campi di TECNICI
/// </summary>
public class TecniciTable
{
/// <summary></summary>
[Key]
public string? tccodazi { get; set; }
/// <summary></summary>
[Key]
public string? tccodice { get; set; }
/// <summary></summary>
public string? tcdescri { get; set; }
/// <summary></summary>
public string? tctelef1 { get; set; }
/// <summary></summary>
public string? tcuser { get; set; }
/// <summary></summary>
public string? tcpwd { get; set; }
/// <summary>costo ordinario</summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? tccoor { get; set; }
/// <summary>costo notturno</summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? tccono { get; set; }
/// <summary>costo straordinario</summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? tccost { get; set; }
/// <summary>costo festivo</summary>
[Column(TypeName = "decimal(18, 4)")]
public decimal? tccofe { get; set; }
/// <summary>data cancellazione</summary>
public DateTime? tcdatobs { get; set; }
}
}

View File

@ -0,0 +1,55 @@
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
/// <summary>Tabella Timbrature</summary>
public class Timbratura
{
/// <summary>chiave primaria</summary>
[Key]
public int id { get; set; }
/// <summary>data</summary>
public DateTime? data_timbratura { get; set; }
/// <summary>ora inizio</summary>
public int ora_ini { get; set; }
/// <summary>minuto inizio</summary>
public int min_ini { get; set; }
/// <summary>ora fine</summary>
public int ora_fin { get; set; }
/// <summary>minuto fine</summary>
public int min_fin { get; set; }
/// <summary>SERIALE commessa</summary>
public string? commessa { get; set; }
/// <summary>ore viaggio</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? ore_viaggio { get; set; }
/// <summary>totale ore</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? tot_ore { get; set; }
/// <summary>giorno settimana</summary>
public int? giorno { get; set; }
/// <summary>azienda</summary>
public string? azienda { get; set; }
/// <summary>tecnico</summary>
public string? tecnico { get; set; }
/// <summary>cpccchk</summary>
public string? cpccchk { get; set; }
/// <summary>note</summary>
public string? note { get; set; }
}
}

View File

@ -0,0 +1,52 @@
namespace ApiPolo.Models
{
/// <summary>Timbrature OUT</summary>
public class Timbratura_out
{
/// <summary>id: chiave</summary>
public int id { get; set; }
/// <summary>data</summary>
public DateTime? data_timbratura { get; set; }
/// <summary>ora inizio</summary>
public int ora_ini { get; set; }
/// <summary>minuto inizio</summary>
public int min_ini { get; set; }
/// <summary>ora fine</summary>
public int ora_fin { get; set; }
/// <summary>minuto fine</summary>
public int min_fin { get; set; }
/// <summary>commessa</summary>
public string? commessa { get; set; }
/// <summary>ore viaggio</summary>
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(7, 2)")]
public decimal? ore_viaggio { get; set; }
/// <summary>giorno settimana</summary>
public int? giorno { get; set; }
/// <summary>azienda</summary>
public string? azienda { get; set; }
/// <summary>tecnico</summary>
public string? tecnico { get; set; }
/// <summary>errore titolo</summary>
public string? err_title { get; set; }
/// <summary>errore dettaglio</summary>
public string? err_detail { get; set; }
/// <summary>errore status code (200, 500)</summary>
public string? err_status_code { get; set; }
/// <summary>note</summary>
public string? note { get; set; }
}
}

28
ApiPolo/Models/Token.cs Normal file
View File

@ -0,0 +1,28 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary>token di login sul device</summary>
public class Token
{
/// <summary>id</summary>
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int Id { get; set; }
/// <summary>tenant azienda</summary>
public string? tenant { get; set; }
/// <summary>utente login</summary>
public string? usr { get; set; }
/// <summary>token device</summary>
public string? token { get; set; }
/// <summary>timestamp inserimento</summary>
public DateTime? ts { get; set; }
}
}

View File

@ -0,0 +1,23 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations.Schema;
namespace ApiPolo.Models
{
/// <summary>TokenDbContext</summary>
public class TokenDbContext : DbContext
{
/// <summary>conf</summary>
public DbSet<Token>? tok { get; set; }
/// <summary>ConfigurazioniDbContext</summary>
public TokenDbContext(DbContextOptions<TokenDbContext> options) : base(options)
{
}
/// <summary>OnModelCreating</summary>
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Token>().ToTable("Token");
//modelBuilder.Entity<Token>().Property(p => p.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
}
}
}

View File

@ -0,0 +1,30 @@
namespace ApiPolo.Models
{
/// <summary>token di login sul device- output</summary>
public class Token_out
{
/// <summary>tenant azienda</summary>
public string? tenant { get; set; }
/// <summary>utente login</summary>
public string? usr { get; set; }
/// <summary>token device</summary>
public string? token { get; set; }
/// <summary>timestamp inserimento</summary>
public DateTime? ts { get; set; }
/// <summary>Error Message </summary>
public string? err_title { get; set; }
/// <summary>Error Message detail</summary>
public string? err_detail { get; set; }
/// <summary>Status</summary>
public string? err_status_code { get; set; }
/// <summary>response</summary>
public string? response { get; set; }
}
}

View File

@ -0,0 +1,27 @@
using ApiPolo.Models.VT_dbcontext;
using Microsoft.EntityFrameworkCore;
namespace ApiPolo.Models
{
/// <summary></summary>
public class VT_Buoni_DbContext : DbContext
{
/// <summary></summary>
public DbSet<Buoni>? buoni { get; set; }
/// <summary></summary>
public VT_Buoni_DbContext(DbContextOptions<VT_Buoni_DbContext> options) : base(options)
{
}
/// <summary></summary>
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Buoni>().ToTable("BUONI");
modelBuilder.Entity<Buoni>().HasKey(table => new
{
table.azienda,
table.ser_buono
});
}
}
}

View File

@ -0,0 +1,34 @@
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
namespace ApiPolo.Models
{
public class Vt_Mag_New
{
[Key]
[Required]
public string? Azienda { get; set; }
[Key]
[Required]
public string? Seriale_Rapportino { get; set; }
[Key]
[Required]
public int? Riga { get; set; }
public string? Magazzino { get; set; }
public string? Articolo { get; set; }
public string Tipo_Movimento { get; set; }
public decimal? Quantita { get; set; }
public decimal? Prezzo { get; set; }
public string? Codice_Tecnico { get; set; }
public string? Generato { get; set; }
public string? Note { get; set; }
public string? CodLotto { get; set; }
public string? Matricola { get; set; }
public int? Cprownum { get; set; }
public string? Desc_Art { get; set; }
public string? CodImp { get; set; }
public string? Desc_Sup { get; set; }
public string? Cpccchk { get; set; }
}
}

65
ApiPolo/Program.cs Normal file
View File

@ -0,0 +1,65 @@
/*using Microsoft.AspNetCore.Authentication.Negotiate;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddAuthentication(NegotiateDefaults.AuthenticationScheme)
.AddNegotiate();
builder.Services.AddAuthorization(options =>
{
// By default, all incoming requests will be authorized according to the default policy.
options.FallbackPolicy = options.DefaultPolicy;
});
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();
app.Run();
*/
namespace ApiPolo
{
/// <summary></summary>
public class Program
{
/// <summary></summary>
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
/// <summary></summary>
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
webBuilder.ConfigureKestrel(options =>
{
options.Limits.KeepAliveTimeout = TimeSpan.FromMinutes(5);
});
//webBuilder.UseUrls("http://10.0.0.187:5000").UseStartup<Startup>();
});
}
}

View File

@ -0,0 +1,33 @@
{
"$schema": "https://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": true,
"anonymousAuthentication": false,
"iisExpress": {
"applicationUrl": "http://localhost:15743",
"sslPort": 44322
}
},
"profiles": {
"ApiPolo": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "https://localhost:7068;http://localhost:5068;http://10.0.0.187:5068;https://10.0.0.187:7068",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}

View File

@ -0,0 +1,113 @@
using Cronos;
namespace ApiPolo.Services
{
/// <summary></summary>
public abstract class CronJobService : IHostedService, IDisposable
{
private System.Timers.Timer? _timer;
private readonly CronExpression _expression;
private readonly TimeZoneInfo _timeZoneInfo;
/// <summary></summary>
protected CronJobService(string cronExpression, TimeZoneInfo timeZoneInfo)
{
_expression = CronExpression.Parse(cronExpression);
_timeZoneInfo = timeZoneInfo;
}
/// <summary></summary>
public virtual async Task StartAsync(CancellationToken cancellationToken)
{
await ScheduleJob(cancellationToken);
}
/// <summary></summary>
protected virtual async Task ScheduleJob(CancellationToken cancellationToken)
{
var next = _expression.GetNextOccurrence(DateTimeOffset.Now, _timeZoneInfo);
if (next.HasValue)
{
var delay = next.Value - DateTimeOffset.Now;
if (delay.TotalMilliseconds <= 0) // prevent non-positive values from being passed into Timer
{
await ScheduleJob(cancellationToken);
}
_timer = new System.Timers.Timer(delay.TotalMilliseconds);
_timer.Elapsed += async (_, _) =>
{
_timer.Dispose(); // reset and dispose timer
_timer = null;
if (!cancellationToken.IsCancellationRequested)
{
await DoWork(cancellationToken);
}
if (!cancellationToken.IsCancellationRequested)
{
await ScheduleJob(cancellationToken); // reschedule next
}
};
_timer.Start();
}
await Task.CompletedTask;
}
/// <summary></summary>
public virtual async Task DoWork(CancellationToken cancellationToken)
{
await Task.Delay(5000, cancellationToken); // do the work
}
/// <summary></summary>
public virtual async Task StopAsync(CancellationToken cancellationToken)
{
_timer?.Stop();
await Task.CompletedTask;
}
/// <summary></summary>
public virtual void Dispose()
{
_timer?.Dispose();
GC.SuppressFinalize(this);
}
}
/// <summary></summary>
public interface IScheduleConfig<T>
{
string CronExpression { get; set; }
TimeZoneInfo TimeZoneInfo { get; set; }
}
/// <summary></summary>
public class ScheduleConfig<T> : IScheduleConfig<T>
{
public string CronExpression { get; set; } = string.Empty;
public TimeZoneInfo TimeZoneInfo { get; set; } = TimeZoneInfo.Local;
}
/// <summary></summary>
public static class ScheduledServiceExtensions
{
public static IServiceCollection AddCronJob<T>(this IServiceCollection services, Action<IScheduleConfig<T>> options) where T : CronJobService
{
if (options == null)
{
throw new ArgumentNullException(nameof(options), @"Please provide Schedule Configurations.");
}
var config = new ScheduleConfig<T>();
options.Invoke(config);
if (string.IsNullOrWhiteSpace(config.CronExpression))
{
throw new ArgumentNullException(nameof(ScheduleConfig<T>.CronExpression), @"Empty Cron Expression is not allowed.");
}
services.AddSingleton<IScheduleConfig<T>>(config);
services.AddHostedService<T>();
return services;
}
}
}

View File

@ -0,0 +1,665 @@
using FirebaseAdmin.Messaging;
using FirebaseAdmin;
using Google.Apis.Auth.OAuth2;
using static ApiPolo.Controllers.PoloController;
using static Google.Apis.Requests.BatchRequest;
using System.Text;
using ApiPolo.Models.Marrocco_dbcontext;
using ApiPolo.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Options;
using System.Net;
using Newtonsoft.Json;
using RestSharp;
using System.Net.Http.Headers;
using Nancy.Json;
namespace ApiPolo.Services
{
/* https://www.netiq.com/documentation/cloud-manager-2-5/ncm-reference/data/bexyssf.html sintassi intervalli cron */
/// <summary></summary>
public class MyCronJob1 : CronJobService
{
/// <summary>Configuration</summary>
public IConfiguration Configuration { get; }
/// <summary>Startup</summary>
private readonly ILogger<MyCronJob1> _logger;
/// <summary>Costruttore</summary>
public MyCronJob1(IScheduleConfig<MyCronJob1> config, ILogger<MyCronJob1> logger, IConfiguration configuration) : base(config.CronExpression, config.TimeZoneInfo)
{
_logger = logger;
Configuration = configuration;
}
/// <summary></summary>
public override Task StartAsync(CancellationToken cancellationToken)
{
_logger.LogInformation("MessagePushJob 1 starts.");
return base.StartAsync(cancellationToken);
}
/// <summary></summary>
public override Task DoWork(CancellationToken cancellationToken)
{
_logger.LogInformation("{now} MessagePushJob 1 is working.", DateTime.Now.ToString("T"));
try
{
//cerco le notifiche da mandare
List<Notifiche> l = readNotify();
//List<Notifiche> l=new List<Notifiche> ();
foreach (Notifiche n in l)
{
StringBuilder sb = new StringBuilder();
sb.Append("tecnico: " + n.picodtec + " ");
sb.Append("azienda: " + n.picodazi + " ");
sb.Append("data: " + n.piserial + " ");
_logger.LogInformation(sb.ToString());
}
//se ci sono cerco il token dispositivo per l'invio
//e li metto in una lista di oggetti pronti per l'invio
List<MexPush> ll = fillMex(l);
foreach (MexPush p in ll)
{
//PushFCM_Sync(p.token, "Title", p.body);
//PushFCM_SyncNew(null, "Title", "test");
GenerateFCM_Auth_SendNotifcn(p.token);
}
//TODO logica di aggiornamento della tabella delle notifiche
//markNotify(ll);
markNotify2(l);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
_logger.LogInformation(" MessagePushJob KO !!!! :"+errmsg, string.Empty);
}
return Task.CompletedTask;
}
/// <summary></summary>
public override Task StopAsync(CancellationToken cancellationToken)
{
_logger.LogInformation("MessagePushJob 1 is stopping.");
return base.StopAsync(cancellationToken);
}
private List<Notifiche> readNotify()
{
List<Notifiche> lst = new List<Notifiche>();
#region Marrocco
var optionsBuilder = new DbContextOptionsBuilder<MARRO_NOTIFICHEDbContext>();
optionsBuilder.UseSqlServer(Configuration.GetConnectionString("MARRO"));
using (var dbContext = new MARRO_NOTIFICHEDbContext(optionsBuilder.Options))
{
var listaNot = dbContext.Notif.Where(t => t.pidattim == null&& t.picodazi!=null && t.picodazi.Equals("MARRO") && t.picodtec!=null && t.picodtec.Equals("ZZZ")).OrderBy(t=>t.piserial).Take(1).ToList();
foreach(Notifiche n in listaNot)
{
lst.Add(n);
}
}
#endregion
return lst;
}
private void markNotify(List<MexPush> lst)
{
#region MARRO
var optionsBuilder = new DbContextOptionsBuilder<MARRO_NOTIFICHEDbContext>();
optionsBuilder.UseSqlServer(Configuration.GetConnectionString("MARRO"));
using (var dbContext = new MARRO_NOTIFICHEDbContext(optionsBuilder.Options))
{
foreach (MexPush n in lst)
{
Notifiche r = n.notifi;
r.pidattim = DateTime.Now;
dbContext.Entry(r).State = EntityState.Modified;
dbContext.SaveChanges();
}
}
#endregion
}
private void markNotify2(List<Notifiche> lst)
{
#region MARRO
var optionsBuilder = new DbContextOptionsBuilder<MARRO_NOTIFICHEDbContext>();
optionsBuilder.UseSqlServer(Configuration.GetConnectionString("MARRO"));
using (var dbContext = new MARRO_NOTIFICHEDbContext(optionsBuilder.Options))
{
foreach (Notifiche n in lst)
{
Notifiche r = n;
r.pidattim = DateTime.Now;
dbContext.Entry(r).State = EntityState.Modified;
dbContext.SaveChanges();
}
}
#endregion
}
private List<MexPush> fillMex(List<Notifiche> lst)
{
List<MexPush> mess = new List<MexPush>();
var optionsBuilder = new DbContextOptionsBuilder<TokenDbContext>();
optionsBuilder.UseSqlServer(Configuration.GetConnectionString("ApiStr"));
foreach(Notifiche nn in lst)
{
using (var dbContext = new TokenDbContext(optionsBuilder.Options))
{
string rif = nn.piserial;
var t= dbContext.tok.Where(c=>c.usr.Equals(nn.picodtec)&& c.tenant.Equals(nn.picodazi)).ToList();
foreach (Token n in t)
{
MexPush m = new MexPush();
m.tenant = n.tenant;
m.usr = n.usr;
m.token = n.token;
m.body = rif;
m.notifi = nn;
mess.Add(m);
}
//TODO logica di aggiornamento della tabella delle notifiche
}
}
return mess;
}
//private void pushMex(string title,string body, string tokenDevice)
//{
// //string log = string.Empty;
// StringBuilder sb = new StringBuilder();
// string _title = title +"-"+ getCpccchk(4);
// string _body = body + "-" + DateTime.Now.ToString("yyyyMMddHHmmss");
// //_logger.LogInformation("{now} MessagePushJob is working.", DateTime.Now.ToString("T"));
// try
// {
// if (FirebaseApp.DefaultInstance == null)
// {
// FirebaseApp.Create(new AppOptions()
// {
// Credential = GoogleCredential.FromFile("private_key.json")
// });
// }
// //var registrationToken = "dDxUDIC3QcWytp6UeVMDyT:APA91bH9y0N7Iff39Ncv0m_EjJ-hv7YTWYaL_5P37-2dob2PRuArvpfl6kmrk10GO2eJiAQ2tVT3tZX9khUD-NPyfljGbpBn1iUyjbTpL6tDF-0IgJN960v95I4_2SWM_crtSH-ZrXAK";
// var registrationToken = tokenDevice;
// var message = new Message()
// {
// Apns = new ApnsConfig()
// {
// Aps = new Aps()
// {
// //Change this for the sound you would like
// Sound = "default"
// }
// },
// Android = new AndroidConfig()
// {
// Notification = new AndroidNotification()
// {
// Sound = "default",
// Priority = NotificationPriority.MAX
// },
// Data = new Dictionary<string, string>()
// {
// { "myData3", "1234522222" }
// }
// },
// Token = registrationToken,
// Data = new Dictionary<string, string>()
// {
// { "myData", "123457777" }
// },
// Notification = new Notification()
// {
// Title = _title,
// Body = _body
// }
// };
// string response = FirebaseMessaging.DefaultInstance.SendAsync(message).Result;
// //string response = FirebaseMessaging.DefaultInstance.SendMulticastAsync(msg2send).Result;
// sb.AppendLine("MessagePushJob OK");
// sb.AppendLine("response:" + response);
// sb.AppendLine("title:" + _title);
// sb.AppendLine("body:" + _body);
// sb.AppendLine("===================");
// _logger.LogInformation(sb.ToString());
// }
// catch (Exception ex)
// {
// string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
// _logger.LogInformation(" MessagePushJob KO !!!! :", errmsg);
// }
// // return log;
//}
private string PushFCM_Notification(string deviceId, string title, string body)
{
StringBuilder sb = new StringBuilder();
string _title = title + "-" + getCpccchk(4);
string _body = body + "-" + DateTime.Now.ToString("yyyyMMddHHmmss");
try
{
string SERVER_API_KEY = "AAAAGBwLmNY:APA91bG5GmgYcaxsU8HrOqvZbb9r82tH9RAEifgKhwoj_zwBe7qei8u3BSxMzFl9Dwykd0TWRuM7ffNe6ehhDDRUqaRPj_vKM9KreJnNrqB6f2hxjPAxzk5De2Ys437-dnSAuS_8SVJV";
var SENDER_ID = "103549737174";
var value = body;
WebRequest tRequest;
tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");
tRequest.Method = "post";
tRequest.Method = "post";
tRequest.ContentType = "application/json";
tRequest.Headers.Add(string.Format("Authorization: key={0}", SERVER_API_KEY));
tRequest.Headers.Add(string.Format("Sender: id={0}", SENDER_ID));
var msg = new
{
to = deviceId,
data = new
{
body = _body,
title = _title
}
};
//var serializer = new JavaScriptSerializer();
//var json = serializer.Serialize(data);
var json = JsonConvert.SerializeObject(msg, Formatting.Indented);
Byte[] byteArray = Encoding.UTF8.GetBytes(json);
tRequest.ContentLength = byteArray.Length;
Stream dataStream = tRequest.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse tResponse = tRequest.GetResponse();
dataStream = tResponse.GetResponseStream();
StreamReader tReader = new StreamReader(dataStream);
String sResponseFromServer = tReader.ReadToEnd();
tReader.Close();
dataStream.Close();
tResponse.Close();
sb.AppendLine("MessagePushJob OK");
sb.AppendLine("response:" + sResponseFromServer);
sb.AppendLine("title:" + _title);
sb.AppendLine("body:" + _body);
sb.AppendLine("===================");
_logger.LogInformation(sb.ToString());
return sResponseFromServer;
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
_logger.LogInformation(" MessagePushJob KO !!!! :", errmsg);
return errmsg;
}
}
private string PushFCM_Sync(string deviceId, string title, string body)
{
StringBuilder sb = new StringBuilder();
string _title = title + "-" + getCpccchk(4);
string _body = body + "-" + DateTime.Now.ToString("yyyyMMddHHmmss");
//try
//{
string SERVER_API_KEY = "AAAAGBwLmNY:APA91bG5GmgYcaxsU8HrOqvZbb9r82tH9RAEifgKhwoj_zwBe7qei8u3BSxMzFl9Dwykd0TWRuM7ffNe6ehhDDRUqaRPj_vKM9KreJnNrqB6f2hxjPAxzk5De2Ys437-dnSAuS_8SVJV";
var SENDER_ID = "103549737174";
var value = body;
WebRequest tRequest;
tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");
tRequest.Method = "post";
tRequest.Method = "post";
tRequest.ContentType = "application/json";
tRequest.Headers.Add(string.Format("Authorization: key={0}", SERVER_API_KEY));
tRequest.Headers.Add(string.Format("Sender: id={0}", SENDER_ID));
var msg = new
{
to = deviceId,
data = new
{
bg_sync = true
}
};
//var serializer = new JavaScriptSerializer();
//var json = serializer.Serialize(data);
var json = JsonConvert.SerializeObject(msg, Formatting.Indented);
Byte[] byteArray = Encoding.UTF8.GetBytes(json);
tRequest.ContentLength = byteArray.Length;
Stream dataStream = tRequest.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse tResponse = tRequest.GetResponse();
dataStream = tResponse.GetResponseStream();
StreamReader tReader = new StreamReader(dataStream);
String sResponseFromServer = tReader.ReadToEnd();
tReader.Close();
dataStream.Close();
tResponse.Close();
sb.AppendLine("MessagePushJob Sync OK");
sb.AppendLine("response:" + sResponseFromServer);
sb.AppendLine("===================");
_logger.LogInformation(sb.ToString());
return sResponseFromServer;
//}
//catch (Exception ex)
//{
// string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
// _logger.LogInformation(" MessagePushJob KO !!!! :", errmsg);
// return errmsg;
//}
}
#region HTTP V1 API FCM Auth & Send Notification To Mobile //notify FCM Code
public class Data
{
public string body
{
get;
set;
}
public string title
{
get;
set;
}
public string key_1
{
get;
set;
}
public string key_2
{
get;
set;
}
}
public class Message
{
public string token
{
get;
set;
}
public Data data
{
get;
set;
}
public Notification notification
{
get;
set;
}
}
public class Notification
{
public string title
{
get;
set;
}
public string body
{
get;
set;
}
}
public class Root
{
public Message message
{
get;
set;
}
}
public void GenerateFCM_Auth_SendNotifcn(string deviceID)
{
//----------Generating Bearer token for FCM---------------
string fileName = Path.Combine(Directory.GetCurrentDirectory(), "apipolo-952c6-firebase-adminsdk-tioa9-fbb9ba6d66.json") ; //Download from Firebase Console ServiceAccount
string scopes = "https://www.googleapis.com/auth/firebase.messaging";
var bearertoken = ""; // Bearer Token in this variable
using (var stream = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
bearertoken = GoogleCredential
.FromStream(stream) // Loads key file
.CreateScoped(scopes) // Gathers scopes requested
.UnderlyingCredential // Gets the credentials
.GetAccessTokenForRequestAsync().Result; // Gets the Access Token
}
_logger.LogInformation("bearertoken: " + bearertoken);
///--------Calling FCM-----------------------------
var clientHandler = new HttpClientHandler();
var client = new HttpClient(clientHandler);
client.BaseAddress = new Uri("https://fcm.googleapis.com/v1/projects/apipolo-952c6/messages:send"); // FCM HttpV1 API
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//client.DefaultRequestHeaders.Accept.Add("Authorization", "Bearer " + bearertoken);
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", bearertoken); // Authorization Token in this variable
//---------------Assigning Of data To Model --------------
Root rootObj = new Root();
rootObj.message = new Message();
//rootObj.message.token = "dfYGNx8lTtuCIJZCDKg4WU:APA91bHVY4tBrXKOvnqJvWA5s2By_8Nt8XyRnadDkuGey0C3E45CoasJUUACVp0PCgNkZcXiDnA2WAfX1jfJXcPgM5L6EJFa4IAOccj_GR0uRBO9gXOcwNkh6dSYWb6fOvGFHhuSEoXz"; //FCM Token id
rootObj.message.token = deviceID;
rootObj.message.data = new Data();
rootObj.message.data.title = "Data Title";
rootObj.message.data.body = "Data Body";
rootObj.message.data.key_1 = "Sample Key";
rootObj.message.data.key_2 = "Sample Key2";
rootObj.message.notification = new Notification();
rootObj.message.notification.title = "Notify Title";
rootObj.message.notification.body = "Notify Body";
//-------------Convert Model To JSON ----------------------
var jsonObj = new JavaScriptSerializer().Serialize(rootObj);
//------------------------Calling Of FCM Notify API-------------------
var data = new StringContent(jsonObj, Encoding.UTF8, "application/json");
data.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var response = client.PostAsync("https://fcm.googleapis.com/v1/projects/apipolo-952c6/messages:send", data).Result; // Calling The FCM httpv1 API
//---------- Deserialize Json Response from API ----------------------------------
var jsonResponse = response.Content.ReadAsStringAsync().Result;
_logger.LogInformation("RESPONSE: "+jsonResponse);
var responseObj = new JavaScriptSerializer().DeserializeObject(jsonResponse);
}
#endregion
//private async Task<string?> getAuthToken()
//{
// var scopes = new string[] { "https://www.googleapis.com/auth/firebase.messaging" };
// var path = Path.Combine(Directory.GetCurrentDirectory(), "apipolo-952c6-firebase-adminsdk-tioa9-fbb9ba6d66.json");
// var cred = GoogleCredential.FromFile(path).CreateScoped(scopes);
// var token = await cred.UnderlyingCredential.GetAccessTokenForRequestAsync();
// return token;
//}
//private (bool, T) SendRequest<T>(string url, object requestBody = null, Method method = Method.Post)
//{
// ServicePointManager.Expect100Continue = true;
// ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
// RestClient client = new(url);
// var request = new RestRequest();
// var token = getAuthToken().Result;
// request.AddHeader("Content-Type", "application/json");
// request.AddHeader("Authorization", $"Bearer {token}");
// request.AddHeader("access_token_auth", "true");
// request.AddHeader("project_id", "SENDER_ID");
// request.Method = Method.Post;
// if (requestBody != null)
// {
// request.AddJsonBody(JsonConvert.SerializeObject(requestBody));
// }
// RestResponse iResponse = client.Execute(request);
// if (iResponse.StatusCode != HttpStatusCode.OK)
// {
// return (false, default(T));
// }
// else
// {
// try
// {
// return (true, JsonConvert.DeserializeObject<T>(iResponse.Content));
// }
// catch (Exception)
// {
// return (false, default(T));
// }
// }
//}
//public NotificationMessageResponse sendMessageToGroup(string notification_key, object notification, object data)
//{
// var requestObj = new
// {
// token = notification_key, //to
// data = data,
// notification = notification,
// apns = new
// {
// payload = new
// {
// aps = new
// {
// alert = notification,
// sound = "default",
// badge = 1,
// data
// }
// }
// }
// };
// var baseUrl = "https://fcm.googleapis.com/v1/projects/{PROJECT_ID}/messages:send";
// var resp = SendRequest<NotificationMessageResponse>(baseUrl, requestObj);
// return resp.Item2;
//}
private class MexPush
{
/// <summary>tenant azienda</summary>
public string? tenant { get; set; }
/// <summary>utente login</summary>
public string? usr { get; set; }
/// <summary>token device</summary>
public string? token { get; set; }
/// <summary>title</summary>
public string? title { get; set; }
/// <summary>body</summary>
public string? body { get; set; }
/// <summary>not</summary>
public Notifiche? notifi { get; set; }
}
}
}

1096
ApiPolo/Startup.cs Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
{
"type": "service_account",
"project_id": "apipolo-952c6",
"private_key_id": "fbb9ba6d66d83350f3b982036d8da40580180426",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDaTP2pnqO/zjXd\nPPE3217BcCKlGPd4jemA2YQSHvfPMMFWAxb7JuBbg+vf+POpJrv2hhDbUFncctNI\nUP/esH+bFs2UiR6ApI+pqEBltuUHdcN7mpGKos8YVQFqnQEmECm4LByDxQhe39d9\nK+0r4byllQVtmSJto0e8o1Hg4TzdXz2lQxZHk9OnaPQ18uPOq0CXuAjrqLl1+qUw\nmuighelsIfb9GA0/QHWSHt14sf08Gs9UxILSY1mHR1DXAJJ9emVJWWQMOhX2NoJo\nTycx5lERZsv9FaX+scYY16WFRondeyLoGg2n/WmXsdW1sZMREtaKiTzme+HTVl2n\n9V8PkXVbAgMBAAECggEAAtjQuKSNl586h5qy1fljWeUWON2Y5M7nFGrvgLDmv1kn\nBdl/RomoR7lBjAeeuX5FkHVehPTteP2Yj0Z5P2bHVq3aGERoGE+ibpMD8SBoRwv8\nYn5CY1FAq7vHf1rBQTL9qvYxQzLDdIo/gAYwFSQQxil5Ahopd6mSu4Z3KyiZZj+o\nJBPwskiVaT5h387n2WpjdC9z6Q6TZ6Nzsbu0icl1E6Oek9M3+ps8bng3pUhdwuRq\n2mn+Rd0KuUHFq4KfZGcWVyIaLGmNZ5Pw1WapEkqGDZ+AgBRcX5hO0py3lh15cxxk\nSNEJXNC5eynrN2muywnNFHx4QugTXwQNSW7qxjIXxQKBgQD8yXh0oqC3OH55mLj+\nC2sC6jWU9ofy96HTKN3UmGaLIn7rQTddzUESpD5L7CvKCW97pIe2gryIblw4M3mB\nsS0Oj3CyLRiShm5+iGinMuoYfgaKJdj6vDQmWjLHLURLmuBYma1MAT0eO6nHByDP\n7ihKo1VxKmfLzvOc8athtkrz1wKBgQDdE06140uIkfqyRLuhMI5HBPLS98GuUVU7\nw3+qeS/Y6BN5Nk70WGjV/7Cf4EmVTNEg/bXZeAr+4LOtgMYPGa2Vj2TQAxzycUSo\nYcKLQ5rO73aHEgylKxv2D1qMcEt1E3LbSczXvxJyOy9m8vykp33KhkUmry0rgWj1\nkXNiDDAaHQKBgG35uM4FcqZDjcKZDuJ3VTcPbgBAwSSTV3Pmc5vqMbKWb2EqHkxQ\n396cVf3x4ZskP7wq+GAOwLcaTESnIFWsH04WWZEqzWXx1mB2OBGFtRKywWWY0a1D\n8+w7kZvVtcCuwKvLL/nBEDX2/wX3s+7CTgUqyiFRsZaZkqLVARqhlDpBAoGAeGVq\naT4GxbKScAFkmY0i/uRgBaquDOv4WhrG7SUgfKUu7cU4zHNVbK3aF8eC608xWSEy\npuNsQZBH6gaGVnTqhtfX1DzNx+8NsBHFbCh+J5Jb34Vh45WNnbyQ2IjTX0gfNfOE\nHj7Noe4/i3ZrRpR8ug3TnRSrqdTJP2teBhiTHbUCgYEA5sWu0fGbacwzblmRZ4UM\nmNMAgeNsCL18dQMk22kj1UQvd7H88mjb+i+ojNN+yBIu45JxKuVPofrBRm9FOqxC\ntJYGXW0ujQxqrNIVOxI4zKw9E67tmaxYigTV5PX6A2l/UN2LQzVC7jRJK1CwDnpT\nZv+3uacaBhpqJS0wGCQxaik=\n-----END PRIVATE KEY-----\n",
"client_email": "firebase-adminsdk-tioa9@apipolo-952c6.iam.gserviceaccount.com",
"client_id": "110564565566804338065",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-tioa9%40apipolo-952c6.iam.gserviceaccount.com",
"universe_domain": "googleapis.com"
}

View File

@ -0,0 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}

67
ApiPolo/appsettings.json Normal file
View File

@ -0,0 +1,67 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
//connessione non sicura: Encrypt=False
//"ApiStr": "Data Source=172.25.30.1;Initial Catalog=API_POLO;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"ApiStr": "Data Source=MARCO_PC\\SQL_2022;Initial Catalog=API_POLO;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
/*"FERRA": "Data Source=10.0.0.10;Initial Catalog=AHR60_FERRARI;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",*/
"FERRA": "Data Source=37.159.179.14;Initial Catalog=AHR80_TEST;User Id=AppPolo; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;Encrypt=False;Trust Server Certificate=True",
"MARRO": "Data Source=172.25.30.177;Initial Catalog=R80_MARROCCO_TEST;User Id=app; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
/*"MARRO": "Data Source=172.25.30.177;Initial Catalog=R80_MARROCCO;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",*/
/*"MARRO": "Data Source=poloinformatico57.clienti.init-s.it;Initial Catalog=R80_MARROCCO;User Id=app; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",*/
/*"GITSR": "Data Source=172.25.30.177;Initial Catalog=R80_GITSR;User Id=app; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",*/
"GITSR": "Data Source=172.25.30.177;Initial Catalog=R80_GITSR_TEST;User Id=app; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//"GITSR_MARRO": "Data Source=172.25.30.177;Initial Catalog=R80_MARROCCO;User Id=app; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"GITSR_MARRO": "Data Source=172.25.30.177;Initial Catalog=R80_MARROCCO_TEST;User Id=app; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
/*"LIFTA": "Data Source=172.25.30.177;Initial Catalog=R80_LIFTA;User Id=app; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",*/
"LIFTA": "Data Source=172.25.30.177;Initial Catalog=R80_LIFTA_TEST;User Id=app; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//"LIFTA_MARRO": "Data Source=172.25.30.177;Initial Catalog=R80_MARROCCO;User Id=app; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"LIFTA_MARRO": "Data Source=172.25.30.177;Initial Catalog=R80_MARROCCO_TEST;User Id=app; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
/*"SICILIA": "Data Source=10.0.0.10;Initial Catalog=AHR_SICILIA;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",*/
"SICILIA": "Data Source=studioliuzzo.selfip.net;Initial Catalog=AHR_TEST_APP;User Id=sa; Password=1Zucchetti;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
/*"DISCO": "Data Source=10.0.0.10;Initial Catalog=AHR60_FERRARI_VISTE_DISCO;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",*/
/*"DISCO": "Data Source=MARCO_PC\\SQL_2022;Initial Catalog=DISCOVERY_80;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",*/
/*"DISCO": "Data Source=discoverylift.dyndns.org;Initial Catalog=DISCOVERY_80;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",*/
"DISCO": "Data Source=172.25.30.244;Initial Catalog=DISCOVERY_80;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"SAROM": "Data Source=37.159.179.14;Initial Catalog=AHR60_SAROM_TEST80;User Id=sa; Password=Poloinf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
/*"SAROM": "Data Source=10.0.0.10;Initial Catalog=AHR80_SAROM;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",*/
/*"SINER": "Data Source=10.0.0.10;Initial Catalog=AHR_SINERGO;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"*/
"SINER": "Data Source=ufficio.sinergogroup.it,31433;Initial Catalog=AHR_TECLI;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
/*"SIET2": "Data Source=194.50.74.66;Initial Catalog=R65_SIET;User Id=sa; Password=W1ld1x42;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",*/
"SIET2": "Data Source=172.25.30.29;Initial Catalog=R65_SIET;User Id=sa; Password=W1ld1x42;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"PMS": "Data Source=10.0.0.10;Initial Catalog=PMS_DEMO;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
/*"VIRTUAL_TASK": "Data Source=MARCO_PC\\SQL_2022;Initial Catalog=VIRTUAL_TASK;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",*/
"VIRTUAL_TASK": "Data Source=172.25.30.1;Initial Catalog=VIRTUAL_TASK;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"LIFT_WEB": "Data Source=docker1.polo;Initial Catalog= AHRW42_LIFT;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
/*"SYSCOM": "Data Source=docker1.polo;Initial Catalog= AHRW_SYSCOM;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",*/
"SYSCOM": "Data Source=dbsql01.poloinformatico.it;Initial Catalog= AHRW_SYSCOM;User Id=syscom; Password=4@QLHV?cpVYbr+GB;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"TEDESCO": "Data Source=MARCO_PC\\SQL_2022;Initial Catalog= AHR_TEDESCO;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"MARAS": "Data Source=docker1.polo;Initial Catalog= AHRW_MARAS;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;Encrypt=False"
},
"JWT": {
"ValidAudience": "http://localhost:4200",
"ValidIssuer": "http://localhost:61955",
"Secret": "ByYM000OLlMQG6VVVp1OH7Xzyr7gHuw1qvUC5dcGt3SNM"
}
}

12
ApiPolo/private_key.json Normal file
View File

@ -0,0 +1,12 @@
{
"type": "service_account",
"project_id": "testpolo-5e86a",
"private_key_id": "80c027bfe39f398545dd21f60b92dd257bc50bbf",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEuwIBADANBgkqhkiG9w0BAQEFAASCBKUwggShAgEAAoIBAQCpmJDlg4ayXKDh\nb58MgM/IpYlY90ktO5Wg9HrUWoNQrAYKUVReVZxT1ZagvCNDZMRRPsVMYKc60ru/\nVjhjv3igraKO78TjSF9BiWl019KObmVZ1h5mPAsLC2+8hzWSWspRC/Gvnhc5d6/f\nzD1UbVi9gCYaSGoRZjwa79PFYvH0v+CIf3BBxmj7vxD+PEY4p7Eh4J/QOMNGbsJr\nMzODfOGly8Vl7FEHiMLnNZHdNyN5GLgjlCJmH5wKBiPp5H22D0l23GCdDsvlHM1d\n6oF/lLcQF9raXrN7rNRkGgz9KLLz0vMAg/OGi2CK1WRa4CkXElo0fZn74mLoeNu8\neqdQowx/AgMBAAECgf8OSl8P006GS0fVbgAde090mMdnt7e7823xazqlPGj40POx\nWJbDXCo9wZ0UN1h4MLxaHDkWEepOnODr9Vfvog4aV2KkX4/J4Cq47Uj1j4MufUN6\nvCJl6KlOsqgAzRq2g4I/my/CU2tYbE+usIcMurxRzcOxTrHqfEUmkjNqkxBijxMI\nxuybqv3z4/+G3nZIlh9hol1fdx0196QTFNQSGWZOr7EvIuFhxR3vPFvwY1jIvcHP\nmhJtmq/wcTgpTiDGJ5XZk840O7C7K2R3lUWbE3HJjZuLeaq6zOkXfC6sP9rIsC9c\n1o21misyvocSZoupXe8Q9Xf9t/nKCt7n4BmPRkkCgYEA3c1S+EzCp8ll40bBPWFW\n7Z5R3ejOzuluKLI/ztU2tx5uFOSsV6mv7mM6ATWK4CGGkOPmfOitn8AOz0PvuXf/\nzmmhfXwiIR50wbe43VYdFpAb7xMf674YC5ULZ55Jm3IIwsZwAr9EkGtbl1qUuPjp\nIhArtEZcvRqoKRbrWVaJ27MCgYEAw76h8NfydgRFauG++ynQLrQ36oIDigIucIli\nvm0DjR7tzSsgsRkYa4TiCleZnNkRqgUqzCCm3hqndixyLhwwg3l/ZpIOIeAN/wII\nqLO/7mn47gGZgzBn44TaOmI5d78pf04l43/rA6gjMzW0AS51OchZHI4AG4nI3aUu\nmjD+NgUCgYAaHEivKEImBGR1K+gltKbKFEAo8nYeD4bDTbCLRbhKOE/XL9BGBZjL\nZGz4pXfyyJ+RwPJqM+30h2R269V1rPW1M+Qp5IoUAgTWpS0jCTclZ9OSAltYoiks\ne+A603xwyyzS2Q9ok2Gb6rd+itBFMjAnrWWntDzImjG/nI4aF0DlVwKBgB5d2ZOa\nfLPQT9CX+t/OCczlCnOn/dKQKhItThNKqC1hafTVRvoScZZkhAiktGD/z9y3dn86\nZYi5S9dqZ8A9gU00MQ6BhA2/S4yPDTbWw+TBreuGdgFDJirGtnAuQsoP7ukf/4K+\nmn/zupo8L5OrWGZBbYmfgebDxlSURpmHFjjdAoGBAIunnz+KWA/0stDB4FLZt8QS\n7Z9/CytT0F1hVnVieKpWtbhvvoLs+svcvTCvqeQmEUxhiX5r8N4xTjd0MwcyKjRi\ny724SWzJmdplqj5YRHrLGbmAsgqZZg3tAGJROhxH/utxBgfDBkki0if+DKysQAC/\nYJzjNY7HdXC2It0gH5iZ\n-----END PRIVATE KEY-----\n",
"client_email": "firebase-adminsdk-ypxny@testpolo-5e86a.iam.gserviceaccount.com",
"client_id": "118193031755958431078",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-ypxny%40testpolo-5e86a.iam.gserviceaccount.com"
}