diff --git a/.vs/ApiPolo/DesignTimeBuild/.dtbcache.v2 b/.vs/ApiPolo/DesignTimeBuild/.dtbcache.v2
index 3f13998..3a5aa3b 100644
Binary files a/.vs/ApiPolo/DesignTimeBuild/.dtbcache.v2 and b/.vs/ApiPolo/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/.vs/ApiPolo/FileContentIndex/236ee64a-4224-4583-a3a2-4eaab7044988.vsidx b/.vs/ApiPolo/FileContentIndex/236ee64a-4224-4583-a3a2-4eaab7044988.vsidx
new file mode 100644
index 0000000..a657b53
Binary files /dev/null and b/.vs/ApiPolo/FileContentIndex/236ee64a-4224-4583-a3a2-4eaab7044988.vsidx differ
diff --git a/.vs/ApiPolo/FileContentIndex/2e14e683-3c27-4b63-8a45-42d4e9d55966.vsidx b/.vs/ApiPolo/FileContentIndex/2e14e683-3c27-4b63-8a45-42d4e9d55966.vsidx
deleted file mode 100644
index 8466faa..0000000
Binary files a/.vs/ApiPolo/FileContentIndex/2e14e683-3c27-4b63-8a45-42d4e9d55966.vsidx and /dev/null differ
diff --git a/.vs/ApiPolo/FileContentIndex/61cad9fa-39b9-4c40-bcd1-234839443b70.vsidx b/.vs/ApiPolo/FileContentIndex/61cad9fa-39b9-4c40-bcd1-234839443b70.vsidx
new file mode 100644
index 0000000..5476e85
Binary files /dev/null and b/.vs/ApiPolo/FileContentIndex/61cad9fa-39b9-4c40-bcd1-234839443b70.vsidx differ
diff --git a/.vs/ApiPolo/FileContentIndex/94917b61-8e8f-460e-9305-b81926822e87.vsidx b/.vs/ApiPolo/FileContentIndex/94917b61-8e8f-460e-9305-b81926822e87.vsidx
deleted file mode 100644
index 152068f..0000000
Binary files a/.vs/ApiPolo/FileContentIndex/94917b61-8e8f-460e-9305-b81926822e87.vsidx and /dev/null differ
diff --git a/.vs/ApiPolo/FileContentIndex/aceb6c20-07b7-45c6-808a-4220c64e57f1.vsidx b/.vs/ApiPolo/FileContentIndex/aceb6c20-07b7-45c6-808a-4220c64e57f1.vsidx
new file mode 100644
index 0000000..acddb49
Binary files /dev/null and b/.vs/ApiPolo/FileContentIndex/aceb6c20-07b7-45c6-808a-4220c64e57f1.vsidx differ
diff --git a/.vs/ApiPolo/FileContentIndex/b7df3f3d-c040-4487-a1f8-cc20d0c1d55f.vsidx b/.vs/ApiPolo/FileContentIndex/b7df3f3d-c040-4487-a1f8-cc20d0c1d55f.vsidx
deleted file mode 100644
index 5edd646..0000000
Binary files a/.vs/ApiPolo/FileContentIndex/b7df3f3d-c040-4487-a1f8-cc20d0c1d55f.vsidx and /dev/null differ
diff --git a/.vs/ApiPolo/v17/.futdcache.v2 b/.vs/ApiPolo/v17/.futdcache.v2
index 251d1c6..6b32692 100644
Binary files a/.vs/ApiPolo/v17/.futdcache.v2 and b/.vs/ApiPolo/v17/.futdcache.v2 differ
diff --git a/.vs/ApiPolo/v17/.suo b/.vs/ApiPolo/v17/.suo
index d348bfd..ad016ff 100644
Binary files a/.vs/ApiPolo/v17/.suo and b/.vs/ApiPolo/v17/.suo differ
diff --git a/.vs/ProjectEvaluation/apipolo.metadata.v7.bin b/.vs/ProjectEvaluation/apipolo.metadata.v7.bin
index bf222d9..03020f5 100644
Binary files a/.vs/ProjectEvaluation/apipolo.metadata.v7.bin and b/.vs/ProjectEvaluation/apipolo.metadata.v7.bin differ
diff --git a/.vs/ProjectEvaluation/apipolo.projects.v7.bin b/.vs/ProjectEvaluation/apipolo.projects.v7.bin
index a6d5c71..96ff8a9 100644
Binary files a/.vs/ProjectEvaluation/apipolo.projects.v7.bin and b/.vs/ProjectEvaluation/apipolo.projects.v7.bin differ
diff --git a/ApiPolo/Controllers/PoloController.cs b/ApiPolo/Controllers/PoloController.cs
index 48cce54..5ee6ec6 100644
--- a/ApiPolo/Controllers/PoloController.cs
+++ b/ApiPolo/Controllers/PoloController.cs
@@ -45,6 +45,8 @@ using Microsoft.EntityFrameworkCore.Metadata.Internal;
using static Microsoft.Extensions.Logging.EventSource.LoggingEventSource;
using static System.Net.Mime.MediaTypeNames;
using System.IO;
+using Microsoft.AspNetCore.Http;
+
namespace ApiPolo.Controllers
{
///
@@ -393,6 +395,7 @@ namespace ApiPolo.Controllers
#region VT-commesse
private readonly VT_COMMESSE_DbContext _VT_Comm;
private readonly VT_COMMESSE_TABLE_DbContext _VT_CommTable;
+ private readonly VT_COMMESSE_APP_DbContext _VT_CommApp;
#endregion
#region VT-rapportini excel
@@ -402,6 +405,7 @@ namespace ApiPolo.Controllers
#region VT-Buoni
private readonly VT_Buoni_DbContext _VT_Buoni;
+ private readonly LIFT_WEB_BUONI_DbContext _LW_Buoni;
#endregion
#region VT - Dati azienda
@@ -412,12 +416,17 @@ namespace ApiPolo.Controllers
private readonly VT_STO_RAPP_DbContext _VT_StoRapp;
#endregion
+ #region VT-TIMBRATURE
+ private readonly VT_TIMBRATURE_DbContext _VT_timbr;
+ #endregion
+
#region Commesse desc
private readonly SIET_COMMESSE_DESC_DbContext _Siet_commDesc;
#endregion
#region Associazione Codici chiusura - codici intervento
private readonly DISCO_CC_CI_DbContext _Disco_ccci;
+ private readonly DISCO_CC_CI_Vista_DbContext _Disco_ccciView;
#endregion
private DbSet? _tecnici;
@@ -462,6 +471,7 @@ namespace ApiPolo.Controllers
private DbSet? _rapp_new_view;
private DbSet? _commDesc;
private DbSet? _ccci;
+ private DbSet? _ccciView;
private Configurazioni? _confLette;
@@ -762,8 +772,12 @@ namespace ApiPolo.Controllers
#region Associazione Codici chiusura - codici intervento
DISCO_CC_CI_DbContext Disco_ccci,
+ DISCO_CC_CI_Vista_DbContext Disco_ccciView,
#endregion
+ #region Buoni tabella
+ LIFT_WEB_BUONI_DbContext LW_Buoni,
+ #endregion
#region Virtual task
VT_TECNICI_TABLE_DbContext VT_tectable,
@@ -786,10 +800,12 @@ namespace ApiPolo.Controllers
VT_AZIENDE_PRESENTI_DbContext VT_AziPres,
VT_COMMESSE_DbContext VT_Comm,
VT_COMMESSE_TABLE_DbContext VT_CommTable,
+ VT_COMMESSE_APP_DbContext VT_CommApp,
VT_DATI_AZIENDA_DbContext VT_DatiAzienda,
VT_RAPPORTINI_DbContext VT_Rapportini,
VT_Buoni_DbContext VT_Buoni,
- VT_STO_RAPP_DbContext VT_StoRapp
+ VT_STO_RAPP_DbContext VT_StoRapp,
+ VT_TIMBRATURE_DbContext VT_timbr
#endregion
@@ -891,14 +907,15 @@ namespace ApiPolo.Controllers
_Disco_comp = Disco_comp;
_Siet_comp = Siet_comp;
_PMS_comp = PMS_comp;
-
+ _LW_comp = LW_comp;
+ _Tedes_comp = Tedes_comp;
_Sicilia_compTable = Sicilia_compTable;
_Disco_compTable = Disco_compTable;
_Siet_compTable = Siet_compTable;
_PMS_compTable = PMS_compTable;
_LW_compTable = LW_compTable;
- _Tedes_comp = Tedes_comp;
+ _Tedes_compTable= Tedes_compTable;
#endregion
#region Saldi articoli
@@ -1002,6 +1019,7 @@ namespace ApiPolo.Controllers
_PMS_timbr = PMS_timbr;
_LW_timbr = LW_timbr;
_Tedes_timbr = Tedes_timbr;
+ _VT_timbr = VT_timbr;
#endregion
#region rapportini
@@ -1103,6 +1121,7 @@ namespace ApiPolo.Controllers
_VT_AziPres = VT_AziPres;
_VT_Comm = VT_Comm;
_VT_CommTable = VT_CommTable;
+ _VT_CommApp = VT_CommApp;
_VT_DatiAzienda = VT_DatiAzienda;
_VT_Rapportini = VT_Rapportini;
_VT_Buoni = VT_Buoni;
@@ -1116,6 +1135,11 @@ namespace ApiPolo.Controllers
#region Associazione codici chiusura - codici intervento
_Disco_ccci = Disco_ccci;
+ _Disco_ccciView = Disco_ccciView;
+ #endregion
+
+ #region Buoni Tabella
+ _LW_Buoni = LW_Buoni;
#endregion
}
@@ -1912,6 +1936,7 @@ namespace ApiPolo.Controllers
case Clienti.Tedesco:
_commesse = _Tedes_comm.Commesse;
break;
+
default:
_commesse = null;
break;
@@ -1948,6 +1973,9 @@ namespace ApiPolo.Controllers
case Clienti.Tedesco:
_timbrature = _Tedes_timbr.Timbr;
break;
+ case Clienti.VT:
+ _timbrature = _VT_timbr.Timbr;
+ break;
default:
_timbrature = null;
break;
@@ -2776,6 +2804,7 @@ namespace ApiPolo.Controllers
mn.desc_sup = co.desc_sup;
return mn;
}
+
/// trasforma un Compi_Impia in un Mag_New
private Mag_New compo_ImpiaToMag_New(Compo_Impia co, int riga, string newSerial, string tecnico)
{
@@ -2887,6 +2916,12 @@ namespace ApiPolo.Controllers
{
string formatst = string.Empty;
StringBuilder sb = new StringBuilder();
+
+ if (!string.IsNullOrEmpty(i.imdescri))
+ {
+ sb.Append("N.pratica : " + i.imdescri.Trim());
+ sb.Append("
");
+ }
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);
@@ -2901,11 +2936,57 @@ namespace ApiPolo.Controllers
sb.Append("Impianto : " + i.chcodimp.Trim());
}
- if (!string.IsNullOrEmpty(i.imdescri))
+ formatst = sb.ToString();
+
+ return formatst;
+ }
+
+ /// formatta l'indirizzo della lista chiamate Virtual task
+ public static string formattaItemChiamateVT(Chiamate i)
+ {
+ string formatst = string.Empty;
+ StringBuilder sb = new StringBuilder();
+
+ if (!string.IsNullOrEmpty(i.andescri))
{
+ sb.Append("Cliente : " + i.andescri.Trim());
sb.Append("
");
- sb.Append("N.pratica : " + i.imdescri.Trim());
}
+ if (!string.IsNullOrEmpty(i.chcodimp))
+ {
+ sb.Append("Impianto : " + i.chcodimp.Trim());
+ sb.Append("
");
+ }
+ if(!string.IsNullOrEmpty(i.imindiri2))
+ {
+ 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);
+ sb.Append(!string.IsNullOrEmpty(i.improvin) ? " " + i.improvin.Trim() + " " : string.Empty);
+ sb.Append("
");
+ }
+ if (!string.IsNullOrEmpty(i.chrifer))
+ {
+ sb.Append("Rif. : " + i.chrifer.Trim());
+ sb.Append("
");
+ }
+ if (!string.IsNullOrEmpty(i.chtelef))
+ {
+ sb.Append("Tel. : " + i.chtelef.Trim());
+ sb.Append("
");
+ }
+ if (!string.IsNullOrEmpty(i.chcodseg))
+ {
+ sb.Append("Cod.Segn. : " + i.chcodseg.Trim());
+ sb.Append("
");
+ }
+
+
+
formatst = sb.ToString();
return formatst;
@@ -3077,12 +3158,15 @@ namespace ApiPolo.Controllers
if (!string.IsNullOrEmpty(i.ctcodimp))
{
- sb.AppendLine("Impianto : " + i.ctcodimp.Trim());
+ sb.Append("Matricola impianto : " + i.ctcodimp.Trim());
+ if(!string.IsNullOrEmpty(i.immatric))
+ {
+ sb.Append( " - " + i.immatric.Trim());
+ }
}
-
if (!string.IsNullOrEmpty(i.imubicaz))
{
-
+ sb.Append("
");
sb.Append("Ubicazione : " + i.imubicaz.Trim());
}
formatst = sb.ToString();
@@ -3250,6 +3334,29 @@ namespace ApiPolo.Controllers
}
}
+
+ [HttpPost]
+ [Route("configurazioni/add")]
+ public async Task> addConfigurazione([FromBody] Configurazioni model, string token)
+ {
+ string ten = getClaimValueByToken(token, "tenant2");
+
+ try
+ {
+ using (var transaction = _config.Database.BeginTransaction())
+ {
+ await _config.conf.AddAsync(model);
+ await _config.SaveChangesAsync();
+ transaction.Commit();
+ }
+ return StatusCode(StatusCodes.Status200OK, model);
+ }
+ catch (Exception ex)
+ {
+ string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
+ return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
+ }
+ }
#endregion
#region Token
@@ -3533,18 +3640,19 @@ namespace ApiPolo.Controllers
o.Tccodice = tecnico.First().tccodice;
Conf cc = new Conf();
- //if(model.Tenant.Equals(Clienti.VT))
- //{
- // string ten2 = tecnico.First().tccodazi;
- // _confLette = await readConf(ten2);
- //}
- //else
- //{
- // _confLette = await readConf(model.Tenant);
- //}
+ if (model.Tenant.Equals(Clienti.VT))
+ {
+ string ten2 = tecnico.First().tccodazi;
+ _confLette = await readConf(ten2);
+ }
+ else
+ {
+ _confLette = await readConf(model.Tenant);
+ }
//le configurazioni per VT vanno lette con il tenant generico VIRTU
- _confLette = await readConf(model.Tenant);
+ //2024-05-16: tornati alla impostazione iniziale per poter gestite i pulsanti per ogni cliente di VT
+ //_confLette = await readConf(model.Tenant);
cc.abilita_naviga = _confLette.abilita_naviga;
cc.abilita_telefona = _confLette.abilita_telefona;
@@ -4114,7 +4222,9 @@ namespace ApiPolo.Controllers
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);
@@ -4527,6 +4637,553 @@ namespace ApiPolo.Controllers
o.imrefref = i.imrefref;
return o;
}
+ private Chiamate_out fillChiamateOutVT(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;
+ sb.Append("SPETT.LE :");
+ if (!string.IsNullOrEmpty(i.andescri))
+ {
+ sb.Append(!string.IsNullOrEmpty(i.andescri) ? i.andescri.Trim() + " " : string.Empty);
+ sb.Append("
");
+ }
+
+ 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();
+
+
+
+ //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("SPETT.LE :");
+ // sb.Append(!string.IsNullOrEmpty(i.andescri) ? i.andescri + " " : string.Empty);
+ // sb.Append("
");
+ // //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("SPETT.LE :");
+ // if (!string.IsNullOrEmpty(i.andescri))
+ // {
+ // sb.Append(!string.IsNullOrEmpty(i.andescri) ? i.andescri + " " : string.Empty);
+ // sb.Append("
");
+ // }
+
+ // 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("
");
+ // sb.Append("Impianto : " + i.chcodimp.Trim());
+ // }
+ // chiamataItemList = sb.ToString();
+ // break;
+ // #endregion
+ //}
+ chiamataItemList = formattaItemChiamateVT(i);
+ 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("N. Impianto: " + i.chcodimp);
+ // if (!string.IsNullOrEmpty(i.imubicaz))
+ // {
+ // sb.AppendLine("Ubicazione: " + i.imubicaz);
+ // }
+ // if (!string.IsNullOrEmpty(i.chrifer))
+ // {
+ // string comm = getCommessaSietBySerial(i.chrifer);
+ // if (!string.IsNullOrEmpty(comm))
+ // {
+ // sb.AppendLine("Commessa: " + comm);
+ // }
+
+ // }
+
+ // rif_impianto = sb.ToString();
+ // #endregion
+ // break;
+ // default:
+ // sb.AppendLine("N. Impianto: " + i.chcodimp);
+ // if (!string.IsNullOrEmpty(i.imubicaz))
+ // sb.AppendLine("Ubicazione: " + i.imubicaz);
+
+ // rif_impianto = sb.ToString();
+ // break;
+ //}
+
+
+ //sb.AppendLine("N. Impianto: " + i.chcodimp);
+ if (!string.IsNullOrEmpty(i.imubicaz))
+ sb.AppendLine("Ubicazione: " + i.imubicaz);
+
+ rif_impianto = sb.ToString();
+
+ 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 dic = new Dictionary();
+ 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)
{
@@ -4544,6 +5201,17 @@ namespace ApiPolo.Controllers
return commessa;
}
+ private Chiamate_out inputToChiamateOut(Input i)
+ {
+ Chiamate_out c = new Chiamate_out();
+ c.chserial = i.seriale_chiamata;
+ c.chcodazi = i.azienda_chiamata;
+ c.chaziimp = i.codice_impianto;
+ c.tccodice = i.codice_tecnico;
+ c.chdata = i.data_rapportino;
+ return c;
+ }
+
/// Codici di chiusura per scheda intevento return:ActionResult
[HttpGet("codici_chiusura")]
public async Task>> codiciChiusura(string token)
@@ -4570,41 +5238,56 @@ namespace ApiPolo.Controllers
{
case Clienti.Discovery:
- _ccci = _Disco_ccci.ccci;
+ //_ccci = _Disco_ccci.ccci;
+ _ccciView= _Disco_ccciView.ccciWiev;
foreach (Chiusure t in l)
{
t.tipologieMan = new List();
+
+
string cod = t.cccodice;
//logica per cercare nella tabella degli abbinamenti
- var appo= await _ccci.Where(c => c.picodazi!=null && c.picodazi.Equals(ten) && c.picodchi != null && c.picodchi.Equals(cod)).ToListAsync();
- foreach (CC_CI c in appo)
+
+
+ var appo= await _ccciView.Where(c => c.picodazi!=null && c.picodazi.Equals(ten) && c.picodchi != null && c.picodchi.Equals(cod)).ToListAsync();
+ if (appo != null && appo.Count() > 0)
{
- t.tipologieMan.Add(c.picodint);
+ //sono nel caso dei codici gestiti: nella lista metto solo quelli permessi
+ foreach (CC_CIWiev c in appo)
+ {
+ t.tipologieMan.Add(c.picodint);
+ }
}
+ else
+ {
+ //t.tipologieMan.Add("SEMESTRALE");
+ //t.tipologieMan.Add("ANN ");
+ //t.tipologieMan.Add("BIMESTRALE");
+ //t.tipologieMan.Add("MENSILE ");
+ //t.tipologieMan.Add("QUADRIMEST");
+ //t.tipologieMan.Add("TR ");
+ //t.tipologieMan.Add("VERSEM ");
+ //Aggiungo tutti
+ var result = _ccciView.GroupBy(test => test.cicodice)
+ .Select(grp => grp.First())
+ .ToList();
+ foreach (CC_CIWiev c in result)
+ {
+ string codint = !string.IsNullOrEmpty(c.cicodice) ? c.cicodice : string.Empty;
+ t.tipologieMan.Add(codint);
+ }
- //ANN
- //BIMESTRALE
- //MENSILE
- //QUADRIMEST
- //SEMESTRALE
- //TR
- //VERSEM
- //if (cod!=null && cod.Trim().Equals("012"))
- //{
- // t.tipologieMan.Add("SEMESTRALE");
- // t.tipologieMan.Add("ANN ");
- // t.tipologieMan.Add("BIMESTRALE");
- // t.tipologieMan.Add("MENSILE ");
- // t.tipologieMan.Add("QUADRIMEST");
- // t.tipologieMan.Add("TR ");
- // t.tipologieMan.Add("VERSEM ");
- //}
- //else
- //{
- // t.tipologieMan.Add("SEMESTRALE");
- //}
-
+ //trovo tutti gli altri NON gestiti e li elimino dal totale
+ var result2 = _ccciView.Where(p=>p.picodint!=null).GroupBy(test => test.cicodice)
+ .Select(grp => grp.First())
+ .ToList();
+ foreach (CC_CIWiev c in result2)
+ {
+ string codint = !string.IsNullOrEmpty(c.cicodice)? c.cicodice:string.Empty;
+ t.tipologieMan.Remove(codint);
+ }
+ }
}
break;
@@ -4632,6 +5315,8 @@ namespace ApiPolo.Controllers
{
List ilist = new List();
string ten = getClaimValueByToken(token, "tenant");
+ string ten2 = getClaimValueByToken(token, "tenant2");
+ string tenOut = getClaimValueByToken(token, "tenant");
string tecnico = getClaimValueByToken(token, "tccodice");
switch (ten)
@@ -4656,7 +5341,14 @@ namespace ApiPolo.Controllers
foreach (Chiamate ch in calltec)
{
Chiamate_out o = new Chiamate_out();
- o = fillChiamateOut(ch, ten);
+ if (tenOut.Equals(Clienti.VT))
+ {
+ o = fillChiamateOutVT(ch, ten);
+ }
+ else
+ {
+ o = fillChiamateOut(ch, ten);
+ }
ilist.Add(o);
}
// cerco le chiamate che devo fare per sostituzioni SE funzione abilitata
@@ -4682,10 +5374,19 @@ namespace ApiPolo.Controllers
&& t.chcodazi == ten
//&& t.imzonchi.Equals(zona)
).OrderByDescending(t => t.chdtapp).ToListAsync();
+
foreach (Chiamate ch in calltecSost)
{
Chiamate_out o = new Chiamate_out();
- o = fillChiamateOut(ch, ten);
+ if(tenOut.Equals(Clienti.VT))
+ {
+ o = fillChiamateOutVT(ch, ten);
+ }
+ else
+ {
+ o = fillChiamateOut(ch, ten);
+ }
+
ilist.Add(o);
}
}
@@ -4712,6 +5413,12 @@ namespace ApiPolo.Controllers
string ten2 = getClaimValueByToken(token, "tenant2");
Chiamate calltec=new Chiamate();
Chiamate_out calltec_out = new Chiamate_out();
+ string tec = string.Empty;
+ try {
+ tec = getClaimValueByToken(token, "tccodice");
+ }
+ catch { }
+ Console.WriteLine(string.Format("*********** {2} metodo prendiInCarico1: tenant:{0} tenant2: {1} token: {3} tecnico:{4} ", ten, ten2, DateTime.Now.ToString(), token, tec));
try
{
@@ -4823,12 +5530,25 @@ namespace ApiPolo.Controllers
default:
break;
}
- //restituisco la chiamata
- calltec = await getChiamataBySerial(model.seriale_chiamata, token);
- calltec_out = fillChiamateOut(calltec, ten);
- calltec.err_status_code = StatiRisposta.Ok;
-
- }
+ //restituisco la chiamata
+ Console.WriteLine(string.Format("*********** {2} metodo prendiInCarico2: tenant:{0} tenant2: {1} token: {3} tecnico:{4} ", ten, ten2, DateTime.Now.ToString(), token, tec));
+ calltec = await getChiamataBySerial(model.seriale_chiamata, token);
+ calltec_out = fillChiamateOut(calltec, ten);
+ calltec_out.err_status_code = StatiRisposta.Ok;
+
+ //2024-08-01: metto la lettura della chiamata in un try/catch per evitare l'errore casuale "sequence contains no element"
+ //nel catch faccio uscire un oggetto riempito con i valori dell'Input di ingresso
+ //try
+ //{
+ // calltec = await getChiamataBySerial(model.seriale_chiamata, token);
+ // calltec_out = fillChiamateOut(calltec, ten);
+ // calltec_out.err_status_code = StatiRisposta.Ok;
+ //}
+ //catch(Exception ee)
+ //{
+ // calltec_out = inputToChiamateOut(model);
+ //}
+ }
else
{
calltec_out.err_title = "Impossibile prendere in carico la chiamata";
@@ -5819,6 +6539,15 @@ namespace ApiPolo.Controllers
case Clienti.Tedesco:
#region Tedesco lista man
+ if (!string.IsNullOrEmpty(m.ctcodimp))
+ {
+ //var sBuono = await getSerBuonoManutenzione(ten, co.prefisso_buoni_man);
+ var a = getDescrImpTedesco(m.ctcodimp, tenant);
+ string appo = a.Result;
+ sb.Append("N.pratica : " + appo);
+ sb.Append("
");
+ }
+
sb.Append(!string.IsNullOrEmpty(m.imindiri1) ? m.imindiri1.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(m.imindiri2) ? m.imindiri2.Trim() + " " : string.Empty);
sb.Append(m.imindiri3 != null ? m.imindiri3.ToString() + " " : string.Empty);
@@ -5842,14 +6571,7 @@ namespace ApiPolo.Controllers
sb.Append("
");
sb.Append("Matricola : " + m.immatric.Trim());
}
- if (!string.IsNullOrEmpty(m.ctcodimp))
- {
- sb.Append("
");
- //var sBuono = await getSerBuonoManutenzione(ten, co.prefisso_buoni_man);
- var a = getDescrImpTedesco(m.ctcodimp, tenant);
- string appo = a.Result;
- sb.Append("N.pratica : " + appo);
- }
+
itemList = sb.ToString();
#endregion
break;
@@ -6292,7 +7014,7 @@ namespace ApiPolo.Controllers
}
}
- /// prendi_in_carico: inserisce record su Prese con i dati dell'intervento return:ActionResult
+ /// prendi_in_carico: inserisce record su Prese con i dati dell'intervento return:ActionResult TEDES_MAGAZZINIDbContext
[HttpPost]
[Route("manutenzioni/prendi_in_carico")]
public async Task> prendiInCaricoMan([FromBody] Input model, string token)
@@ -6909,7 +7631,7 @@ namespace ApiPolo.Controllers
#endregion
#region UPLOAD FILE
- private static void FtpSend(string url, string ftp_usr, string ftp_pwd, IFormFile files)
+ private static void FtpSend(string url, string ftp_usr, string ftp_pwd, IFormFile files)
{
//string url = "ftp://10.0.0.10/LABSE/" + fileName;
//url = "ftp://poloinformatico41.clienti.init-s.it:6363/test.bmp";
@@ -6930,6 +7652,29 @@ namespace ApiPolo.Controllers
files.CopyTo(ftpStream);
}
}
+ private static string CheckFtp(string url, string ftp_usr, string ftp_pwd)
+ {
+ string _esito = "OK";
+ //url = "ftp://10.0.0.10/PMS/cccetcwqsss.jpg";
+
+ var request = (FtpWebRequest)WebRequest.Create(url);
+ request.Credentials = new NetworkCredential(ftp_usr, ftp_pwd);
+ request.Method = WebRequestMethods.Ftp.GetFileSize;
+
+ try
+ {
+ FtpWebResponse response = (FtpWebResponse)request.GetResponse();
+ }
+ catch (WebException ex)
+ {
+ FtpWebResponse response = (FtpWebResponse)ex.Response;
+ if (response.StatusCode == FtpStatusCode.ActionNotTakenFileUnavailable)
+ {
+ _esito = "KO";
+ }
+ }
+ return _esito;
+ }
private static void SFtpSend(string url, string ftp_usr, string ftp_pwd, IFormFile files)
{
var connectionInfo = new Renci.SshNet.ConnectionInfo(url, "sftp", new PasswordAuthenticationMethod(ftp_usr, ftp_pwd));
@@ -6979,9 +7724,12 @@ namespace ApiPolo.Controllers
[Route("file/upload")]
public async Task OnPostUpload2Async(IFormFile files, string token, string nomefile)
{
+
+
string ten = getClaimValueByToken(token, "tenant");
string fileName = string.Empty;
string ten2 = string.Empty;
+ Console.WriteLine(string.Format("*********** {2} INIZIO Chiamata al metodo upload: tenant:{0} file: {1} ", ten, nomefile, DateTime.Now.ToString()));
if (ten.Equals(Clienti.VT))
{
@@ -7094,21 +7842,79 @@ namespace ApiPolo.Controllers
url = _confLette.ftp_url + fileName;
usr = _confLette.ftp_usr != null ? _confLette.ftp_usr : string.Empty;
pwd = _confLette.ftp_pwd != null ? _confLette.ftp_pwd : string.Empty;
+
FtpSend(url, usr, pwd, files);
+ string _esito = CheckFtp(url, usr, pwd);
+ if(_esito.Equals("KO"))
+ {
+ throw new Exception("Buono non depositato !!"+url);
+ }
+
break;
case Clienti.VT:
// per VT faccio solo il salvataggio in tabella
-
-
//2024-04-08: CONTRORDINE: devo salvare il file perchè il file deve essere depositato nella directory
//dove risiedono le API per poter essere esposto con un url pubblico in modo da poter essere utilizzato dall'app
+ //(questo per le Immagini azienda che vanno nel logo del buono)
+
+
+ #region inserimento tabella
+ Buoni model = new Buoni();
+ model.azienda = ten2;
+ if (nomefile.Length > 8)
+ nomefile = nomefile.Substring(0, 8);
+ model.ser_buono = nomefile;
+ model.dt_ins = DateTime.Now;
+ using (MemoryStream ms = new MemoryStream())
+ {
+ files.CopyTo(ms);
+ byte[] array = ms.GetBuffer();
+ model.immagine = array;
+ }
+ using (var transaction = _VT_Buoni.Database.BeginTransaction())
+ {
+ await _VT_Buoni.buoni.AddAsync(model);
+ await _VT_Buoni.SaveChangesAsync();
+ transaction.Commit();
+ }
+ #endregion
+
break;
case Clienti.LW:
- //DA VEDERE
+ #region inserimento tabella
+ BuoniLW model2 = new BuoniLW();
+ model2.azienda = ten;
+ if (nomefile.Length > 8)
+ nomefile = nomefile.Substring(0, 8);
+ model2.ser_buono = nomefile;
+ model2.dt_ins = DateTime.Now;
+ using (MemoryStream ms = new MemoryStream())
+ {
+ files.CopyTo(ms);
+ byte[] byteArray = ms.GetBuffer();
+ string base64String = Convert.ToBase64String(byteArray);
+ model2.immagine = base64String;
+ }
+ //var result = new StringBuilder();
+ //using (var reader = new StreamReader(files.OpenReadStream()))
+ //{
+ // while (reader.Peek() >= 0)
+ // {
+ // result.AppendLine(reader.ReadLine());
+ // }
+ //}
+ //model2.immagine = result.ToString();
+ using (var transaction = _VT_Buoni.Database.BeginTransaction())
+ {
+ await _LW_Buoni.buoni.AddAsync(model2);
+ await _LW_Buoni.SaveChangesAsync();
+ transaction.Commit();
+ }
+ #endregion
break;
case Clienti.Tedesco:
@@ -7121,44 +7927,59 @@ namespace ApiPolo.Controllers
break;
}
//per Virtual Task inserisco anche nella tabella buoni
- if(ten.Equals(Clienti.VT))
- {
- Buoni model = new Buoni();
- model.azienda = ten2;
- if(nomefile.Length>8)
- nomefile=nomefile.Substring(0,8);
- model.ser_buono = nomefile;
- model.dt_ins = DateTime.Now;
- using (MemoryStream ms = new MemoryStream())
- {
- files.CopyTo(ms);
- byte[] array = ms.GetBuffer();
- model.immagine = array;
- }
- try
- {
- using (var transaction = _VT_Buoni.Database.BeginTransaction())
- {
- await _VT_Buoni.buoni.AddAsync(model);
- await _VT_Buoni.SaveChangesAsync();
- transaction.Commit();
- }
+ //if(ten.Equals(Clienti.VT))
+ //{
+ // Buoni model = new Buoni();
+ // model.azienda = ten2;
+ // if(nomefile.Length>8)
+ // nomefile=nomefile.Substring(0,8);
+ // model.ser_buono = nomefile;
+ // model.dt_ins = DateTime.Now;
+ // using (MemoryStream ms = new MemoryStream())
+ // {
+ // files.CopyTo(ms);
+ // byte[] array = ms.GetBuffer();
+ // model.immagine = array;
+ // }
+ // try
+ // {
+ // using (var transaction = _VT_Buoni.Database.BeginTransaction())
+ // {
+ // await _VT_Buoni.buoni.AddAsync(model);
+ // await _VT_Buoni.SaveChangesAsync();
+ // transaction.Commit();
+ // }
+ // Console.WriteLine(string.Format("*********** {2} FINE Chiamata al metodo upload: tenant:{0} file: {1} ", ten, nomefile, DateTime.Now.ToString()));
+ // return StatusCode(StatusCodes.Status200OK, model);
- return StatusCode(StatusCodes.Status200OK, model);
- }
- catch (Exception ex)
- {
- string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
- return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
- }
- }
+ // }
+ // catch (Exception ex)
+ // {
+ // string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
+ // return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
+ // }
+ //}
+
+
+ Console.WriteLine(string.Format("*********** {2} FINE Chiamata al metodo upload: tenant:{0} file: {1} ", ten, nomefile, DateTime.Now.ToString()));
return Ok(new { count = 1, size });
}
catch (Exception ex)
{
- //return Json(new { Name = ex.Message, ID = 1, Filename= fileName }); ;
- return StatusCode(StatusCodes.Status500InternalServerError, "Error: "+ex.InnerException);
+ StringBuilder sb = new StringBuilder();
+ string errMsg = string.Empty;
+ if(ex.Message!=null)
+ {
+ sb.AppendLine(ex.Message);
+ }
+ if(ex.InnerException!=null)
+ {
+ sb.AppendLine(ex.InnerException.Message);
+ }
+ errMsg = sb.ToString();
+ Console.WriteLine(string.Format("*********** {2} ERRORE metodo upload: tenant:{0} file: {1} ==> {3}", ten, nomefile, DateTime.Now.ToString(),errMsg));
+ return StatusCode(StatusCodes.Status500InternalServerError, "Error: "+errMsg);
}
}
@@ -10367,6 +11188,12 @@ namespace ApiPolo.Controllers
string ten = getClaimValueByToken(token, "tenant");
string tecnico = getClaimValueByToken(token, "tccodice");
+ if(ten.Equals(Clienti.VT))
+ {
+ string ten2 = getClaimValueByToken(token, "tenant2");
+ ten = ten2;
+ }
+
int id=await getNewId(token);
r.azienda = ten;
@@ -10429,10 +11256,47 @@ namespace ApiPolo.Controllers
try
{
string ten = getClaimValueByToken(token, "tenant");
- _comm = getCommesseByTenant(ten);
+ string ten2 = getClaimValueByToken(token, "tenant2");
+ List ll = new List();
+ if (ten.Equals(Clienti.VT))
+ {
+ DbSet? _VT_CommesseAppo;
+ _VT_CommesseAppo = _VT_Comm.Comm;
+ var lst = _VT_CommesseAppo.Where(t => t.lacodazi != null && t.lacodazi.Equals(ten2)).ToList();
+
+ foreach (CommesseVT a in lst)
+ {
+ Commessa c = new Commessa();
+ c.imlocali = a.imlocali;
+ c.imcodcap = a.imcodcap;
+ c.imcodimp = a.imcodimp;
+ c.imindiri1 = a.imindiri1;
+ c.imindiri2 = a.imindiri2;
+ c.imindiri3 = a.imindiri3;
+ c.imindiri4 = a.imindiri4;
+ c.imindiri5 = a.imindiri5;
+ c.laserial = a.laserial;
+ c.lacodcom = a.lacodcom;
+ c.ladeslav = a.ladeslav;
+ c.ladatchi = a.ladatchi;
+ c.latipcli = a.latipcli;
+ c.lacodcli = a.lacodcli;
+ c.andescri = a.andescri;
+ c.improvin = a.improvin;
+
+ ll.Add(c);
+ }
+ }
+ else
+ {
+ _comm = getCommesseByTenant(ten);
+ var l = await _comm.OrderByDescending(t => t.ladatchi).ToListAsync();
+ ll = l;
+ }
+
//var l = await _comm.OrderByDescending(t => t.cndatfin).Take(100).ToListAsync();
- var l = await _comm.OrderByDescending(t => t.ladatchi).ToListAsync();
- return StatusCode(StatusCodes.Status200OK, l);
+
+ return StatusCode(StatusCodes.Status200OK, ll);
}
catch (Exception ex)
{
@@ -10504,6 +11368,14 @@ namespace ApiPolo.Controllers
transactionTedes.Commit();
}
break;
+ case Clienti.VT:
+ using (var transactionVT = _VT_timbr.Database.BeginTransaction())
+ {
+ await _VT_timbr.Timbr.AddAsync(t);
+ await _VT_timbr.SaveChangesAsync();
+ transactionVT.Commit();
+ }
+ break;
default:
break;
}
@@ -10526,6 +11398,8 @@ namespace ApiPolo.Controllers
}
//return tOut;
}
+
+
#endregion
#region storico impianto
@@ -10917,7 +11791,7 @@ namespace ApiPolo.Controllers
/// Salva la timbratuta in tabella Timbrature return:ActionResult Timbratura_out
[HttpPost]
[Route("chiamata/inserisci")]
- public async Task> Chiamata_Insert(string token, string codimp, string codice_commessa)
+ public async Task> Chiamata_Insert(string token, string codimp, string? codice_commessa)
{
Output_Chiamate tOut = new Output_Chiamate();
tOut.uscita = new Chiamate_out();
@@ -11053,15 +11927,24 @@ namespace ApiPolo.Controllers
}
//inserisco
+ //2024-04-23: codice_commessa posto a nullable (quando inserisco una chiamata selezionando solo l'impianto)
+ //gestisco la ricerca del seriale
string serial_comm = string.Empty;
switch (ten)
{
case Clienti.VT:
- serial_comm = await leggiSerialeByCodCommessaVT(ten2, codice_commessa);
+ if (!string.IsNullOrEmpty(codice_commessa))
+ {
+ serial_comm = await leggiSerialeByCodCommessaVT(ten2, codice_commessa);
+ }
tOut.uscita = await inserimentoChiamata2(ten, tecnico, codimp, serialeChiamata, progChiamata, serial_comm,ten2);
break;
default:
- serial_comm = await leggiSerialeByCodCommessa(ten, codice_commessa);
+ if(!string.IsNullOrEmpty(codice_commessa))
+ {
+ serial_comm = await leggiSerialeByCodCommessa(ten, codice_commessa);
+ }
+
tOut.uscita = await inserimentoChiamata2(ten, tecnico, codimp, serialeChiamata, progChiamata, serial_comm,ten);
break;
}
@@ -11854,7 +12737,7 @@ namespace ApiPolo.Controllers
//var tecnico = await _tecnici.Where(t => t.tcuser.Trim() == model.Username.Trim() && t.tcpwd.Trim() == model.Password.Trim() && t.tccodazi == model.Tenant).Take(1).ToListAsync();
//var tecnico = await _tecnici.Where(t => t.tcuser == model.Username && t.tcpwd == model.Password && t.tccodazi == model.Tenant).Take(1).ToListAsync();
- var tecnico = await _tecnici.Where(t => t.tcuser == model.Username && t.tcpwd == model.Password).Take(1).ToListAsync();
+ var tecnico = await _tecnici.Where(t => t.tcuser == model.Username && t.tcpwd == model.Password && t.tccodute==1).Take(1).ToListAsync();
if (tecnico == null || (tecnico != null && tecnico.Count == 0))
{
o.err_detail = "Username o Password non trovati.";
@@ -11890,7 +12773,9 @@ namespace ApiPolo.Controllers
o.Tcsuper = tecnico.First().tcsuper;
o.Tenant = tecnico.First().tccodazi;
Conf cc = new Conf();
- _confLette = await readConf(model.Tenant);
+ //le configurazioni devono essere lette per tenant 2 non per VIRTU
+ //_confLette = await readConf(model.Tenant);
+ _confLette = await readConf(tecnico.First().tccodazi);
cc.abilita_naviga = _confLette.abilita_naviga;
cc.abilita_telefona = _confLette.abilita_telefona;
@@ -12980,10 +13865,6 @@ namespace ApiPolo.Controllers
[Route("registrazioni/add")]
public async Task> addRegistrazione([FromBody] Registrazione model)
{
- //string ten = getClaimValueByToken(token, "tenant");
- //string ten2 = getClaimValueByToken(token, "tenant2");
- //model.piazihoc = ten;
- //model.pirifazi = ten2;
try
{
using (var transaction = _VT_reg.Database.BeginTransaction())
@@ -13356,8 +14237,6 @@ namespace ApiPolo.Controllers
return nome;
}
-
-
/// VIRTUAL TASK: dati Azienda
[HttpGet("rapportiniList")]
public async Task>> rapportiniList(string token)
@@ -13410,6 +14289,35 @@ namespace ApiPolo.Controllers
}
}
+ /// VIRTUAL TASK: Timbrature da App
+ [HttpGet("timbratureList")]
+ public async Task>> timbratureList(string token)
+ {
+ try
+ {
+ List ilist = new List();
+ string ten = getClaimValueByToken(token, "tenant2");
+ string tecnico = getClaimValueByToken(token, "tccodice");
+ _timbr = _VT_timbr.Timbr;
+
+
+ var t = await _timbr.Where(
+ t => t.azienda.Equals(ten)
+ ).ToListAsync();
+
+ foreach (Timbratura ch in t)
+ {
+ ilist.Add(ch);
+ }
+ return StatusCode(StatusCodes.Status200OK, ilist);
+ }
+ catch (Exception ex)
+ {
+ string err = "Errore: " + ex.Message;
+ return StatusCode(StatusCodes.Status500InternalServerError, err);
+ }
+ }
+
#endregion
}
}
diff --git a/ApiPolo/Models/BuoniLW.cs b/ApiPolo/Models/BuoniLW.cs
new file mode 100644
index 0000000..6f030a0
--- /dev/null
+++ b/ApiPolo/Models/BuoniLW.cs
@@ -0,0 +1,22 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace ApiPolo.Models
+{
+ /// Buono per Lift web
+ public class BuoniLW
+ {
+ /// azienda
+ [Key]
+ public string? azienda { get; set; }
+
+ /// seriale buono
+ [Key]
+ public string? ser_buono { get; set; }
+
+ /// immagine
+ public string? immagine { get; set; }
+
+ /// data inserimento
+ public DateTime? dt_ins { get; set; }
+ }
+}
diff --git a/ApiPolo/Models/CC_CIWiev.cs b/ApiPolo/Models/CC_CIWiev.cs
new file mode 100644
index 0000000..7e139e1
--- /dev/null
+++ b/ApiPolo/Models/CC_CIWiev.cs
@@ -0,0 +1,24 @@
+using Microsoft.EntityFrameworkCore;
+
+namespace ApiPolo.Models
+{
+ /// Oggetto Vista abbinamento codice chiusura-codice intervento
+ [Keyless]
+ public class CC_CIWiev
+ {
+ /// Azienda
+ public string? picodazi { get; set; }
+
+ /// codice di chiusura PIASSCHIU
+ public string? picodchi { get; set; }
+
+ /// codice intervento PIASSCHIU
+ public string? picodint { get; set; }
+
+ /// codice intervento CODINTE
+ public string? cicodice { get; set; }
+
+ /// descrizione intervento CODINTE
+ public string? cidescri { get; set; }
+ }
+}
diff --git a/ApiPolo/Models/Discovery_dbcontext/DISCO_CC_CI_Vista_DbContext.cs b/ApiPolo/Models/Discovery_dbcontext/DISCO_CC_CI_Vista_DbContext.cs
new file mode 100644
index 0000000..9fbe84c
--- /dev/null
+++ b/ApiPolo/Models/Discovery_dbcontext/DISCO_CC_CI_Vista_DbContext.cs
@@ -0,0 +1,22 @@
+using Microsoft.EntityFrameworkCore;
+
+namespace ApiPolo.Models.Discovery_dbcontext
+{
+ ///
+ public class DISCO_CC_CI_Vista_DbContext : DbContext
+ {
+ ///
+ public DbSet? ccciWiev { get; set; }
+
+ ///
+ public DISCO_CC_CI_Vista_DbContext(DbContextOptions options) : base(options)
+ {
+ }
+ ///
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ modelBuilder.Entity().ToView("API_ASSCHIU");
+
+ }
+ }
+}
diff --git a/ApiPolo/Models/Lift_web_dbcontext/LIFT_WEB_BUONI_DbContext.cs b/ApiPolo/Models/Lift_web_dbcontext/LIFT_WEB_BUONI_DbContext.cs
new file mode 100644
index 0000000..1854493
--- /dev/null
+++ b/ApiPolo/Models/Lift_web_dbcontext/LIFT_WEB_BUONI_DbContext.cs
@@ -0,0 +1,26 @@
+using Microsoft.EntityFrameworkCore;
+
+namespace ApiPolo.Models.Lift_web_dbcontext
+{
+ ///
+ public class LIFT_WEB_BUONI_DbContext : DbContext
+ {
+ ///
+ public DbSet? buoni { get; set; }
+
+ ///
+ public LIFT_WEB_BUONI_DbContext(DbContextOptions options) : base(options)
+ {
+ }
+ ///
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ modelBuilder.Entity().ToTable("BUONI");
+ modelBuilder.Entity().HasKey(table => new
+ {
+ table.azienda,
+ table.ser_buono
+ });
+ }
+ }
+}
diff --git a/ApiPolo/Models/Registrazione.cs b/ApiPolo/Models/Registrazione.cs
index 96133e6..820050d 100644
--- a/ApiPolo/Models/Registrazione.cs
+++ b/ApiPolo/Models/Registrazione.cs
@@ -62,5 +62,14 @@ namespace ApiPolo.Models
/// Form registrazione: check 4
public bool privacy4 { get; set; }
+
+ /// Richiesta del moduulo Timesheet
+ public bool ModuloTimesheet { get; set; }
+
+ /// Richiesta del moduulo Rapportini
+ public bool ModuloRapportini { get; set; }
+
+ /// Ragione sociale
+ public string? RagioneSociale { get; set; }
}
}
diff --git a/ApiPolo/Models/Tecnici.cs b/ApiPolo/Models/Tecnici.cs
index d1938eb..e5a03f0 100644
--- a/ApiPolo/Models/Tecnici.cs
+++ b/ApiPolo/Models/Tecnici.cs
@@ -66,5 +66,10 @@ namespace ApiPolo.Models
///
public DateTime? tddatafi { get; set; }
+ ///
+ /// Flag utente Amministratore per Azienda. Se 1 Amministratore e entra in VT, 0 non entra
+ ///
+ public int tccodute { get; set; }
+
}
}
diff --git a/ApiPolo/Models/VT_dbcontext/VT_COMMESSE_APP_DbContext.cs b/ApiPolo/Models/VT_dbcontext/VT_COMMESSE_APP_DbContext.cs
new file mode 100644
index 0000000..9bcef32
--- /dev/null
+++ b/ApiPolo/Models/VT_dbcontext/VT_COMMESSE_APP_DbContext.cs
@@ -0,0 +1,22 @@
+using Microsoft.EntityFrameworkCore;
+
+namespace ApiPolo.Models.VT_dbcontext
+{
+ /// Questo db context serve per creare l'eleco delle commesse da fornire all'APP
+ public class VT_COMMESSE_APP_DbContext : DbContext
+ {
+ ///
+ public DbSet? Comm { get; set; }
+
+ ///
+ public VT_COMMESSE_APP_DbContext(DbContextOptions options) : base(options)
+ {
+ }
+
+ ///
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ modelBuilder.Entity().ToView("API_COMMESSE");
+ }
+ }
+}
diff --git a/ApiPolo/Models/VT_dbcontext/VT_TIMBRATURE_DbContext.cs b/ApiPolo/Models/VT_dbcontext/VT_TIMBRATURE_DbContext.cs
new file mode 100644
index 0000000..7025000
--- /dev/null
+++ b/ApiPolo/Models/VT_dbcontext/VT_TIMBRATURE_DbContext.cs
@@ -0,0 +1,26 @@
+using Microsoft.EntityFrameworkCore;
+
+namespace ApiPolo.Models.VT_dbcontext
+{
+ ///
+ public class VT_TIMBRATURE_DbContext : DbContext
+ {
+ ///
+ public DbSet? Timbr { get; set; }
+
+ ///
+ public VT_TIMBRATURE_DbContext(DbContextOptions options) : base(options)
+ {
+ }
+
+ ///
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ modelBuilder.Entity().ToTable("TIMBRATURE");
+ modelBuilder.Entity().HasKey(table => new
+ {
+ table.id
+ });
+ }
+ }
+}
diff --git a/ApiPolo/Properties/PublishProfiles/FolderProfile.pubxml.user b/ApiPolo/Properties/PublishProfiles/FolderProfile.pubxml.user
index 492fda5..bd793f2 100644
--- a/ApiPolo/Properties/PublishProfiles/FolderProfile.pubxml.user
+++ b/ApiPolo/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<_PublishTargetUrl>C:\SORGENTI\_publish
- True|2024-04-23T12:16:13.9278392Z;True|2024-04-22T11:21:15.8891978+02:00;True|2024-04-19T17:01:58.4424326+02:00;True|2024-04-19T16:00:37.1516625+02:00;True|2024-04-18T17:56:38.4740471+02:00;True|2024-04-18T15:19:13.0301345+02:00;True|2024-04-18T15:08:29.5009047+02:00;True|2024-04-16T17:19:13.2405268+02:00;True|2024-04-16T16:44:53.5665827+02:00;True|2024-04-09T15:05:21.6859040+02:00;True|2024-04-09T12:31:53.7105489+02:00;True|2024-03-29T12:02:59.3951106+01:00;True|2024-03-28T15:51:54.4771087+01:00;True|2024-03-28T15:40:46.5889318+01:00;True|2024-03-28T15:02:39.2709767+01:00;True|2024-03-19T10:11:02.2184437+01:00;True|2024-03-19T09:46:29.5213786+01:00;True|2024-03-13T15:41:36.5129417+01:00;True|2024-03-13T15:04:45.8815190+01:00;True|2024-03-12T12:09:28.7378666+01:00;True|2024-03-07T16:49:05.8765453+01:00;True|2024-03-07T15:04:48.6785344+01:00;True|2024-03-05T18:12:38.1587810+01:00;True|2024-03-05T17:04:25.2897417+01:00;True|2024-02-23T17:51:33.5228272+01:00;True|2024-02-23T15:30:52.3064822+01:00;True|2024-02-21T17:45:19.5871889+01:00;True|2024-02-16T14:49:42.6218309+01:00;True|2024-01-12T15:28:14.3310950+01:00;True|2024-01-11T12:17:47.0416265+01:00;True|2024-01-09T10:56:10.6108110+01:00;True|2024-01-09T10:01:29.4419062+01:00;True|2024-01-09T09:09:56.0678886+01:00;False|2024-01-09T09:09:34.2552726+01:00;True|2024-01-08T17:12:45.9831372+01:00;True|2024-01-08T14:29:20.6298939+01:00;True|2024-01-05T16:13:20.1834182+01:00;True|2024-01-04T16:37:06.7941235+01:00;True|2023-12-21T17:18:34.0526998+01:00;True|2023-12-21T16:15:05.7983943+01:00;False|2023-12-21T16:14:46.9213541+01:00;True|2023-12-21T15:37:56.3166908+01:00;True|2023-12-21T15:06:45.2960170+01:00;True|2023-12-19T10:07:15.3406839+01:00;True|2023-12-19T09:40:37.4542645+01:00;True|2023-12-18T18:10:38.7733804+01:00;True|2023-12-18T17:52:35.2759182+01:00;True|2023-12-18T17:27:30.6925247+01:00;False|2023-12-18T17:27:18.6654468+01:00;True|2023-12-18T17:19:53.6193809+01:00;True|2023-12-18T11:34:31.9683375+01:00;True|2023-12-18T10:49:14.0195219+01:00;True|2023-12-14T15:24:45.4235825+01:00;True|2023-12-14T12:12:59.2505838+01:00;True|2023-12-14T10:06:03.4821381+01:00;False|2023-12-14T10:05:56.1675464+01:00;True|2023-12-13T17:46:06.5114228+01:00;True|2023-12-13T17:18:32.9967555+01:00;True|2023-12-13T17:09:02.2153382+01:00;True|2023-12-13T16:54:26.3998101+01:00;True|2023-12-12T12:29:15.4496576+01:00;True|2023-12-12T10:07:33.8605887+01:00;True|2023-12-07T16:48:32.3661089+01:00;False|2023-12-07T16:48:16.7800909+01:00;True|2023-12-07T15:59:01.9494614+01:00;True|2023-12-06T16:37:11.4189532+01:00;False|2023-12-06T16:36:58.1903924+01:00;True|2023-12-06T15:04:14.7658513+01:00;True|2023-12-06T15:03:56.8183271+01:00;False|2023-12-06T15:02:43.1658892+01:00;True|2023-12-05T14:56:58.6533793+01:00;True|2023-12-05T11:27:46.7461820+01:00;False|2023-12-05T11:27:33.9312828+01:00;True|2023-12-05T10:50:28.4716173+01:00;True|2023-11-30T16:42:31.8596611+01:00;True|2023-11-30T15:55:03.2495195+01:00;True|2023-11-27T15:56:29.4491507+01:00;True|2023-11-27T12:01:19.1611383+01:00;True|2023-11-24T16:17:46.6740447+01:00;True|2023-11-24T14:45:39.1983088+01:00;True|2023-11-21T12:27:46.1304045+01:00;True|2023-11-20T14:46:36.7367797+01:00;True|2023-11-16T15:24:40.0316829+01:00;True|2023-11-16T11:01:34.3117013+01:00;True|2023-11-16T11:00:55.7387444+01:00;True|2023-11-14T09:11:56.7615009+01:00;True|2023-11-09T09:52:23.5464533+01:00;True|2023-11-07T16:06:54.6961557+01:00;False|2023-11-07T16:06:44.9066723+01:00;True|2023-11-06T12:13:06.8671991+01:00;True|2023-10-26T10:42:14.4857090+02:00;True|2023-10-24T09:42:38.9743258+02:00;True|2023-10-23T17:12:45.9054585+02:00;True|2023-10-23T16:29:52.5174378+02:00;True|2023-10-19T16:09:03.8796311+02:00;True|2023-10-19T15:59:31.4939287+02:00;True|2023-10-19T15:40:14.7096576+02:00;True|2023-10-19T14:56:26.8783257+02:00;True|2023-10-19T14:42:33.0463171+02:00;True|2023-10-17T16:39:01.8740450+02:00;
+ True|2024-08-08T12:26:24.6701786Z;True|2024-08-08T09:47:57.4034373+02:00;True|2024-08-06T08:27:53.2075910+02:00;True|2024-08-01T12:54:22.9356998+02:00;True|2024-05-28T12:33:55.2004491+02:00;True|2024-05-28T10:03:22.0746253+02:00;True|2024-05-23T17:46:39.7923992+02:00;True|2024-05-20T14:38:48.9510222+02:00;True|2024-05-16T14:58:45.4167131+02:00;True|2024-05-16T12:48:07.6863652+02:00;True|2024-05-14T15:24:15.9889498+02:00;True|2024-05-13T17:14:51.9627438+02:00;True|2024-05-13T09:55:47.6642637+02:00;True|2024-05-07T15:34:14.3854449+02:00;True|2024-04-30T15:16:06.7760827+02:00;True|2024-04-30T14:47:35.3761581+02:00;True|2024-04-24T16:24:33.9768863+02:00;True|2024-04-23T14:16:13.9278392+02:00;True|2024-04-22T11:21:15.8891978+02:00;True|2024-04-19T17:01:58.4424326+02:00;True|2024-04-19T16:00:37.1516625+02:00;True|2024-04-18T17:56:38.4740471+02:00;True|2024-04-18T15:19:13.0301345+02:00;True|2024-04-18T15:08:29.5009047+02:00;True|2024-04-16T17:19:13.2405268+02:00;True|2024-04-16T16:44:53.5665827+02:00;True|2024-04-09T15:05:21.6859040+02:00;True|2024-04-09T12:31:53.7105489+02:00;True|2024-03-29T12:02:59.3951106+01:00;True|2024-03-28T15:51:54.4771087+01:00;True|2024-03-28T15:40:46.5889318+01:00;True|2024-03-28T15:02:39.2709767+01:00;True|2024-03-19T10:11:02.2184437+01:00;True|2024-03-19T09:46:29.5213786+01:00;True|2024-03-13T15:41:36.5129417+01:00;True|2024-03-13T15:04:45.8815190+01:00;True|2024-03-12T12:09:28.7378666+01:00;True|2024-03-07T16:49:05.8765453+01:00;True|2024-03-07T15:04:48.6785344+01:00;True|2024-03-05T18:12:38.1587810+01:00;True|2024-03-05T17:04:25.2897417+01:00;True|2024-02-23T17:51:33.5228272+01:00;True|2024-02-23T15:30:52.3064822+01:00;True|2024-02-21T17:45:19.5871889+01:00;True|2024-02-16T14:49:42.6218309+01:00;True|2024-01-12T15:28:14.3310950+01:00;True|2024-01-11T12:17:47.0416265+01:00;True|2024-01-09T10:56:10.6108110+01:00;True|2024-01-09T10:01:29.4419062+01:00;True|2024-01-09T09:09:56.0678886+01:00;False|2024-01-09T09:09:34.2552726+01:00;True|2024-01-08T17:12:45.9831372+01:00;True|2024-01-08T14:29:20.6298939+01:00;True|2024-01-05T16:13:20.1834182+01:00;True|2024-01-04T16:37:06.7941235+01:00;True|2023-12-21T17:18:34.0526998+01:00;True|2023-12-21T16:15:05.7983943+01:00;False|2023-12-21T16:14:46.9213541+01:00;True|2023-12-21T15:37:56.3166908+01:00;True|2023-12-21T15:06:45.2960170+01:00;True|2023-12-19T10:07:15.3406839+01:00;True|2023-12-19T09:40:37.4542645+01:00;True|2023-12-18T18:10:38.7733804+01:00;True|2023-12-18T17:52:35.2759182+01:00;True|2023-12-18T17:27:30.6925247+01:00;False|2023-12-18T17:27:18.6654468+01:00;True|2023-12-18T17:19:53.6193809+01:00;True|2023-12-18T11:34:31.9683375+01:00;True|2023-12-18T10:49:14.0195219+01:00;True|2023-12-14T15:24:45.4235825+01:00;True|2023-12-14T12:12:59.2505838+01:00;True|2023-12-14T10:06:03.4821381+01:00;False|2023-12-14T10:05:56.1675464+01:00;True|2023-12-13T17:46:06.5114228+01:00;True|2023-12-13T17:18:32.9967555+01:00;True|2023-12-13T17:09:02.2153382+01:00;True|2023-12-13T16:54:26.3998101+01:00;True|2023-12-12T12:29:15.4496576+01:00;True|2023-12-12T10:07:33.8605887+01:00;True|2023-12-07T16:48:32.3661089+01:00;False|2023-12-07T16:48:16.7800909+01:00;True|2023-12-07T15:59:01.9494614+01:00;True|2023-12-06T16:37:11.4189532+01:00;False|2023-12-06T16:36:58.1903924+01:00;True|2023-12-06T15:04:14.7658513+01:00;True|2023-12-06T15:03:56.8183271+01:00;False|2023-12-06T15:02:43.1658892+01:00;True|2023-12-05T14:56:58.6533793+01:00;True|2023-12-05T11:27:46.7461820+01:00;False|2023-12-05T11:27:33.9312828+01:00;True|2023-12-05T10:50:28.4716173+01:00;True|2023-11-30T16:42:31.8596611+01:00;True|2023-11-30T15:55:03.2495195+01:00;True|2023-11-27T15:56:29.4491507+01:00;True|2023-11-27T12:01:19.1611383+01:00;True|2023-11-24T16:17:46.6740447+01:00;True|2023-11-24T14:45:39.1983088+01:00;True|2023-11-21T12:27:46.1304045+01:00;True|2023-11-20T14:46:36.7367797+01:00;True|2023-11-16T15:24:40.0316829+01:00;
diff --git a/ApiPolo/Startup.cs b/ApiPolo/Startup.cs
index e895cea..5ffe8fc 100644
--- a/ApiPolo/Startup.cs
+++ b/ApiPolo/Startup.cs
@@ -305,6 +305,9 @@ namespace ApiPolo
services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("DISCO")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("DISCO")
+ , options => { options.CommandTimeout(commandTimeoutInSeconds); }
+ ));
#endregion
#region SAROM
@@ -718,86 +721,95 @@ namespace ApiPolo
services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("VIRTUAL_TASK")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("VIRTUAL_TASK")
+ , options => { options.CommandTimeout(commandTimeoutInSeconds); }
+ ));
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("VIRTUAL_TASK")
+ , options => { options.CommandTimeout(commandTimeoutInSeconds); }
+ ));
#endregion
#region LIFT_WEB
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
- services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SICILIA")
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
+ , options => { options.CommandTimeout(commandTimeoutInSeconds); }
+ ));
+ services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("LIFT_WEB")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
#endregion
@@ -888,8 +900,7 @@ namespace ApiPolo
//gen.SwaggerDoc("v1", new OpenApiInfo { Title = "POLO API WS2016", Version = "v3.3" });
DateTime oggi = DateTime.Now;
string dt = oggi.ToString();
- //gen.SwaggerDoc("v1", new OpenApiInfo { Title = "POLO API TEST - v.app 1.13", Version = dt });
- gen.SwaggerDoc("v1", new OpenApiInfo { Title = "POLO API - v.app 1.23", Version = dt });
+ gen.SwaggerDoc("v1", new OpenApiInfo { Title = "POLO API - v.app 1.24", Version = dt });
var filePath = Path.Combine(System.AppContext.BaseDirectory, "ApiPolo.xml");
gen.IncludeXmlComments(filePath);
@@ -914,9 +925,6 @@ namespace ApiPolo
catch (Exception ex) {
Console.WriteLine(ex.Message);
}
-
-
-
}
/// Configure:This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
@@ -933,7 +941,6 @@ namespace ApiPolo
});
//app.UseHttpsRedirection();
-
}
app.UseRouting();
diff --git a/ApiPolo/bin/Debug/net6.0/ApiPolo.dll b/ApiPolo/bin/Debug/net6.0/ApiPolo.dll
index be3298a..7984f64 100644
Binary files a/ApiPolo/bin/Debug/net6.0/ApiPolo.dll and b/ApiPolo/bin/Debug/net6.0/ApiPolo.dll differ
diff --git a/ApiPolo/bin/Debug/net6.0/ApiPolo.pdb b/ApiPolo/bin/Debug/net6.0/ApiPolo.pdb
index 10cf098..67eccfd 100644
Binary files a/ApiPolo/bin/Debug/net6.0/ApiPolo.pdb and b/ApiPolo/bin/Debug/net6.0/ApiPolo.pdb differ
diff --git a/ApiPolo/bin/Debug/net6.0/ApiPolo.xml b/ApiPolo/bin/Debug/net6.0/ApiPolo.xml
index ac2ecfc..9d65719 100644
--- a/ApiPolo/bin/Debug/net6.0/ApiPolo.xml
+++ b/ApiPolo/bin/Debug/net6.0/ApiPolo.xml
@@ -9,7 +9,7 @@
Controller unico
-
+
polocontroller
@@ -144,6 +144,9 @@
formatta l'indirizzo della lista chiamate TEDESCO
+
+ formatta l'indirizzo della lista chiamate Virtual task
+
formatta il riferimento impainto (html)
@@ -211,7 +214,7 @@
Manutenzioni per tecnico e azienda (tenant). Intervallo: 1 mese prima e 1 mese dopo rispetto a GETDATE() con GENERATO diverso da S return:ActionResult
- prendi_in_carico: inserisce record su Prese con i dati dell'intervento return:ActionResult
+ prendi_in_carico: inserisce record su Prese con i dati dell'intervento return:ActionResult TEDES_MAGAZZINIDbContext
chiudi: 1) crea un nuovo seriale per RAPP_NEW 2)inserisce record su RAPP_NEW con i dati dell'intervento return:ActionResult
@@ -432,6 +435,9 @@
VIRTUAL TASK: inserisce buono
+
+ VIRTUAL TASK: Timbrature da App
+
Contiene i campi di SALDIART
@@ -614,6 +620,21 @@
data inserimento
+
+ Buono per Lift web
+
+
+ azienda
+
+
+ seriale buono
+
+
+ immagine
+
+
+ data inserimento
+
Causali rapportino
@@ -640,6 +661,24 @@
codice intervento
+
+ Oggetto Vista abbinamento codice chiusura-codice intervento
+
+
+ Azienda
+
+
+ codice di chiusura PIASSCHIU
+
+
+ codice intervento PIASSCHIU
+
+
+ codice intervento CODINTE
+
+
+ descrizione intervento CODINTE
+
@@ -2659,6 +2698,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3793,6 +3844,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -6831,6 +6894,15 @@
Form registrazione: check 4
+
+ Richiesta del moduulo Timesheet
+
+
+ Richiesta del moduulo Rapportini
+
+
+ Ragione sociale
+
Contiene i campi di SALDIART
@@ -8512,6 +8584,11 @@
data fine attività tecnico
+
+
+ Flag utente Amministratore per Azienda. Se 1 Amministratore e entra in VT, 0 non entra
+
+
(Virtual Task) Contiene i campi di TECNICI
@@ -9120,6 +9197,18 @@
+
+ Questo db context serve per creare l'eleco delle commesse da fornire all'APP
+
+
+
+
+
+
+
+
+
+
@@ -9312,6 +9401,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ApiPolo/bin/Release/net6.0/ApiPolo.dll b/ApiPolo/bin/Release/net6.0/ApiPolo.dll
index 71a2f90..3906f81 100644
Binary files a/ApiPolo/bin/Release/net6.0/ApiPolo.dll and b/ApiPolo/bin/Release/net6.0/ApiPolo.dll differ
diff --git a/ApiPolo/bin/Release/net6.0/ApiPolo.pdb b/ApiPolo/bin/Release/net6.0/ApiPolo.pdb
index 35d8e6c..61fe83f 100644
Binary files a/ApiPolo/bin/Release/net6.0/ApiPolo.pdb and b/ApiPolo/bin/Release/net6.0/ApiPolo.pdb differ
diff --git a/ApiPolo/bin/Release/net6.0/ApiPolo.xml b/ApiPolo/bin/Release/net6.0/ApiPolo.xml
index ac2ecfc..9d65719 100644
--- a/ApiPolo/bin/Release/net6.0/ApiPolo.xml
+++ b/ApiPolo/bin/Release/net6.0/ApiPolo.xml
@@ -9,7 +9,7 @@
Controller unico
-
+
polocontroller
@@ -144,6 +144,9 @@
formatta l'indirizzo della lista chiamate TEDESCO
+
+ formatta l'indirizzo della lista chiamate Virtual task
+
formatta il riferimento impainto (html)
@@ -211,7 +214,7 @@
Manutenzioni per tecnico e azienda (tenant). Intervallo: 1 mese prima e 1 mese dopo rispetto a GETDATE() con GENERATO diverso da S return:ActionResult
- prendi_in_carico: inserisce record su Prese con i dati dell'intervento return:ActionResult
+ prendi_in_carico: inserisce record su Prese con i dati dell'intervento return:ActionResult TEDES_MAGAZZINIDbContext
chiudi: 1) crea un nuovo seriale per RAPP_NEW 2)inserisce record su RAPP_NEW con i dati dell'intervento return:ActionResult
@@ -432,6 +435,9 @@
VIRTUAL TASK: inserisce buono
+
+ VIRTUAL TASK: Timbrature da App
+
Contiene i campi di SALDIART
@@ -614,6 +620,21 @@
data inserimento
+
+ Buono per Lift web
+
+
+ azienda
+
+
+ seriale buono
+
+
+ immagine
+
+
+ data inserimento
+
Causali rapportino
@@ -640,6 +661,24 @@
codice intervento
+
+ Oggetto Vista abbinamento codice chiusura-codice intervento
+
+
+ Azienda
+
+
+ codice di chiusura PIASSCHIU
+
+
+ codice intervento PIASSCHIU
+
+
+ codice intervento CODINTE
+
+
+ descrizione intervento CODINTE
+
@@ -2659,6 +2698,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3793,6 +3844,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -6831,6 +6894,15 @@
Form registrazione: check 4
+
+ Richiesta del moduulo Timesheet
+
+
+ Richiesta del moduulo Rapportini
+
+
+ Ragione sociale
+
Contiene i campi di SALDIART
@@ -8512,6 +8584,11 @@
data fine attività tecnico
+
+
+ Flag utente Amministratore per Azienda. Se 1 Amministratore e entra in VT, 0 non entra
+
+
(Virtual Task) Contiene i campi di TECNICI
@@ -9120,6 +9197,18 @@
+
+ Questo db context serve per creare l'eleco delle commesse da fornire all'APP
+
+
+
+
+
+
+
+
+
+
@@ -9312,6 +9401,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ApiPolo/obj/Debug/net6.0/ApiPolo.csproj.CoreCompileInputs.cache b/ApiPolo/obj/Debug/net6.0/ApiPolo.csproj.CoreCompileInputs.cache
index b47aa5d..4885697 100644
--- a/ApiPolo/obj/Debug/net6.0/ApiPolo.csproj.CoreCompileInputs.cache
+++ b/ApiPolo/obj/Debug/net6.0/ApiPolo.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-176d63897cfc0614b5bfe24857cce51a153d09d4
+24e948b894f3a9c8b0dbb7ceb95d91ec4ad7f149
diff --git a/ApiPolo/obj/Debug/net6.0/ApiPolo.dll b/ApiPolo/obj/Debug/net6.0/ApiPolo.dll
index be3298a..7984f64 100644
Binary files a/ApiPolo/obj/Debug/net6.0/ApiPolo.dll and b/ApiPolo/obj/Debug/net6.0/ApiPolo.dll differ
diff --git a/ApiPolo/obj/Debug/net6.0/ApiPolo.pdb b/ApiPolo/obj/Debug/net6.0/ApiPolo.pdb
index 10cf098..67eccfd 100644
Binary files a/ApiPolo/obj/Debug/net6.0/ApiPolo.pdb and b/ApiPolo/obj/Debug/net6.0/ApiPolo.pdb differ
diff --git a/ApiPolo/obj/Debug/net6.0/ApiPolo.xml b/ApiPolo/obj/Debug/net6.0/ApiPolo.xml
index ac2ecfc..9d65719 100644
--- a/ApiPolo/obj/Debug/net6.0/ApiPolo.xml
+++ b/ApiPolo/obj/Debug/net6.0/ApiPolo.xml
@@ -9,7 +9,7 @@
Controller unico
-
+
polocontroller
@@ -144,6 +144,9 @@
formatta l'indirizzo della lista chiamate TEDESCO
+
+ formatta l'indirizzo della lista chiamate Virtual task
+
formatta il riferimento impainto (html)
@@ -211,7 +214,7 @@
Manutenzioni per tecnico e azienda (tenant). Intervallo: 1 mese prima e 1 mese dopo rispetto a GETDATE() con GENERATO diverso da S return:ActionResult
- prendi_in_carico: inserisce record su Prese con i dati dell'intervento return:ActionResult
+ prendi_in_carico: inserisce record su Prese con i dati dell'intervento return:ActionResult TEDES_MAGAZZINIDbContext
chiudi: 1) crea un nuovo seriale per RAPP_NEW 2)inserisce record su RAPP_NEW con i dati dell'intervento return:ActionResult
@@ -432,6 +435,9 @@
VIRTUAL TASK: inserisce buono
+
+ VIRTUAL TASK: Timbrature da App
+
Contiene i campi di SALDIART
@@ -614,6 +620,21 @@
data inserimento
+
+ Buono per Lift web
+
+
+ azienda
+
+
+ seriale buono
+
+
+ immagine
+
+
+ data inserimento
+
Causali rapportino
@@ -640,6 +661,24 @@
codice intervento
+
+ Oggetto Vista abbinamento codice chiusura-codice intervento
+
+
+ Azienda
+
+
+ codice di chiusura PIASSCHIU
+
+
+ codice intervento PIASSCHIU
+
+
+ codice intervento CODINTE
+
+
+ descrizione intervento CODINTE
+
@@ -2659,6 +2698,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3793,6 +3844,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -6831,6 +6894,15 @@
Form registrazione: check 4
+
+ Richiesta del moduulo Timesheet
+
+
+ Richiesta del moduulo Rapportini
+
+
+ Ragione sociale
+
Contiene i campi di SALDIART
@@ -8512,6 +8584,11 @@
data fine attività tecnico
+
+
+ Flag utente Amministratore per Azienda. Se 1 Amministratore e entra in VT, 0 non entra
+
+
(Virtual Task) Contiene i campi di TECNICI
@@ -9120,6 +9197,18 @@
+
+ Questo db context serve per creare l'eleco delle commesse da fornire all'APP
+
+
+
+
+
+
+
+
+
+
@@ -9312,6 +9401,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ApiPolo/obj/Debug/net6.0/project.razor.vs.json b/ApiPolo/obj/Debug/net6.0/project.razor.vs.json
new file mode 100644
index 0000000..dd06473
--- /dev/null
+++ b/ApiPolo/obj/Debug/net6.0/project.razor.vs.json
@@ -0,0 +1 @@
+{"SerializedFilePath":"C:\\Users\\audif\\source\\repos\\ApiManutenzioni\\ApiPolo\\obj\\Debug\\net6.0\\project.razor.vs.json","FilePath":"C:\\Users\\audif\\source\\repos\\ApiManutenzioni\\ApiPolo\\ApiPolo.csproj","Configuration":{"ConfigurationName":"MVC-3.0","LanguageVersion":"6.0","Extensions":[{"ExtensionName":"MVC-3.0"}]},"ProjectWorkspaceState":{"TagHelpers":[{"HashCode":456704173,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator","AssemblyName":"Microsoft.AspNetCore.Components.Forms","Documentation":"\r\n \r\n Adds Data Annotations validation support to an .\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"DataAnnotationsValidator"}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator","Common.TypeNameIdentifier":"DataAnnotationsValidator"}},{"HashCode":1602179958,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator","AssemblyName":"Microsoft.AspNetCore.Components.Forms","Documentation":"\r\n \r\n Adds Data Annotations validation support to an .\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator"}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Components.NameMatch":"Components.FullyQualifiedNameMatch","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator","Common.TypeNameIdentifier":"DataAnnotationsValidator"}},{"HashCode":-572663461,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.EditForm","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n Renders a form element that cascades an to descendants.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"EditForm"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created form element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"EditContext","TypeName":"Microsoft.AspNetCore.Components.Forms.EditContext","Documentation":"\r\n \r\n Supplies the edit context explicitly. If using this parameter, do not\r\n also supply , since the model value will be taken\r\n from the property.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.Forms.EditContext","Common.PropertyName":"EditContext"}},{"Kind":"Components.Component","Name":"Model","TypeName":"System.Object","Documentation":"\r\n \r\n Specifies the top-level model object for the form. An edit context will\r\n be constructed for this model. If using this parameter, do not also supply\r\n a value for .\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Object","Common.PropertyName":"Model"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\r\n \r\n Specifies the content to be rendered inside this .\r\n \r\n ","Metadata":{"Components.ChildContent":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Common.PropertyName":"ChildContent"}},{"Kind":"Components.Component","Name":"OnSubmit","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n A callback that will be invoked when the form is submitted.\r\n \r\n If using this parameter, you are responsible for triggering any validation\r\n manually, e.g., by calling .\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Common.PropertyName":"OnSubmit"}},{"Kind":"Components.Component","Name":"OnValidSubmit","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n A callback that will be invoked when the form is submitted and the\r\n is determined to be valid.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Common.PropertyName":"OnValidSubmit"}},{"Kind":"Components.Component","Name":"OnInvalidSubmit","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n A callback that will be invoked when the form is submitted and the\r\n is determined to be invalid.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Common.PropertyName":"OnInvalidSubmit"}},{"Kind":"Components.Component","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for all child content expressions.","Metadata":{"Common.PropertyName":"Context","Components.ChildContentParameterName":"True"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.EditForm","Common.TypeNameIdentifier":"EditForm"}},{"HashCode":-588114541,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.EditForm","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n Renders a form element that cascades an to descendants.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.EditForm"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created form element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"EditContext","TypeName":"Microsoft.AspNetCore.Components.Forms.EditContext","Documentation":"\r\n \r\n Supplies the edit context explicitly. If using this parameter, do not\r\n also supply , since the model value will be taken\r\n from the property.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.Forms.EditContext","Common.PropertyName":"EditContext"}},{"Kind":"Components.Component","Name":"Model","TypeName":"System.Object","Documentation":"\r\n \r\n Specifies the top-level model object for the form. An edit context will\r\n be constructed for this model. If using this parameter, do not also supply\r\n a value for .\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Object","Common.PropertyName":"Model"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\r\n \r\n Specifies the content to be rendered inside this .\r\n \r\n ","Metadata":{"Components.ChildContent":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Common.PropertyName":"ChildContent"}},{"Kind":"Components.Component","Name":"OnSubmit","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n A callback that will be invoked when the form is submitted.\r\n \r\n If using this parameter, you are responsible for triggering any validation\r\n manually, e.g., by calling .\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Common.PropertyName":"OnSubmit"}},{"Kind":"Components.Component","Name":"OnValidSubmit","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n A callback that will be invoked when the form is submitted and the\r\n is determined to be valid.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Common.PropertyName":"OnValidSubmit"}},{"Kind":"Components.Component","Name":"OnInvalidSubmit","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n A callback that will be invoked when the form is submitted and the\r\n is determined to be invalid.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Common.PropertyName":"OnInvalidSubmit"}},{"Kind":"Components.Component","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for all child content expressions.","Metadata":{"Common.PropertyName":"Context","Components.ChildContentParameterName":"True"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Components.NameMatch":"Components.FullyQualifiedNameMatch","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.EditForm","Common.TypeNameIdentifier":"EditForm"}},{"HashCode":924762995,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Forms.EditForm.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n Specifies the content to be rendered inside this .\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"EditForm"}],"BoundAttributes":[{"Kind":"Components.ChildContent","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for the 'ChildContent' child content expression.","Metadata":{"Common.PropertyName":"Context","Components.ChildContentParameterName":"True"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.ChildContent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.EditForm.ChildContent","Common.TypeNameIdentifier":"EditForm"}},{"HashCode":1969597621,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Forms.EditForm.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n Specifies the content to be rendered inside this .\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"Microsoft.AspNetCore.Components.Forms.EditForm"}],"BoundAttributes":[{"Kind":"Components.ChildContent","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for the 'ChildContent' child content expression.","Metadata":{"Common.PropertyName":"Context","Components.ChildContentParameterName":"True"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Components.NameMatch":"Components.FullyQualifiedNameMatch","Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.ChildContent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.EditForm.ChildContent","Common.TypeNameIdentifier":"EditForm"}},{"HashCode":-1362667734,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputCheckbox","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n An input component for editing values.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputCheckbox"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"Value","TypeName":"System.Boolean","Documentation":"\r\n \r\n Gets or sets the value of the input. This should be used with two-way binding.\r\n \r\n \r\n @bind-Value=\"model.PropertyName\"\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Boolean","Common.PropertyName":"Value"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Gets or sets a callback that updates the bound value.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Common.PropertyName":"ValueChanged"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\r\n \r\n Gets or sets an expression that identifies the bound value.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Common.PropertyName":"ValueExpression"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the display name for this field.\r\n This value is used when generating error messages when the input value fails to parse correctly.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"DisplayName"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputCheckbox","Common.TypeNameIdentifier":"InputCheckbox"}},{"HashCode":390316276,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputCheckbox","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n An input component for editing values.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputCheckbox"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"Value","TypeName":"System.Boolean","Documentation":"\r\n \r\n Gets or sets the value of the input. This should be used with two-way binding.\r\n \r\n \r\n @bind-Value=\"model.PropertyName\"\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Boolean","Common.PropertyName":"Value"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Gets or sets a callback that updates the bound value.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Common.PropertyName":"ValueChanged"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\r\n \r\n Gets or sets an expression that identifies the bound value.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Common.PropertyName":"ValueExpression"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the display name for this field.\r\n This value is used when generating error messages when the input value fails to parse correctly.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"DisplayName"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Components.NameMatch":"Components.FullyQualifiedNameMatch","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputCheckbox","Common.TypeNameIdentifier":"InputCheckbox"}},{"HashCode":-1311768412,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputDate","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n An input component for editing date values.\r\n Supported types are and .\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputDate"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputDate component.","Metadata":{"Components.TypeParameterIsCascading":"False","Components.TypeParameter":"True","Common.PropertyName":"TValue"}},{"Kind":"Components.Component","Name":"Type","TypeName":"Microsoft.AspNetCore.Components.Forms.InputDateType","IsEnum":true,"Documentation":"\r\n \r\n Gets or sets the type of HTML input to be rendered.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.Forms.InputDateType","Common.PropertyName":"Type"}},{"Kind":"Components.Component","Name":"ParsingErrorMessage","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the error message used when displaying an a parsing error.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"ParsingErrorMessage"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\r\n \r\n Gets or sets the value of the input. This should be used with two-way binding.\r\n \r\n \r\n @bind-Value=\"model.PropertyName\"\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True","Common.PropertyName":"Value"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Gets or sets a callback that updates the bound value.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.GenericTyped":"True","Common.PropertyName":"ValueChanged"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\r\n \r\n Gets or sets an expression that identifies the bound value.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True","Common.PropertyName":"ValueExpression"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the display name for this field.\r\n This value is used when generating error messages when the input value fails to parse correctly.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"DisplayName"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputDate","Components.GenericTyped":"True","Common.TypeNameIdentifier":"InputDate"}},{"HashCode":-27656975,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputDate","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n An input component for editing date values.\r\n Supported types are and .\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputDate"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputDate component.","Metadata":{"Components.TypeParameterIsCascading":"False","Components.TypeParameter":"True","Common.PropertyName":"TValue"}},{"Kind":"Components.Component","Name":"Type","TypeName":"Microsoft.AspNetCore.Components.Forms.InputDateType","IsEnum":true,"Documentation":"\r\n \r\n Gets or sets the type of HTML input to be rendered.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.Forms.InputDateType","Common.PropertyName":"Type"}},{"Kind":"Components.Component","Name":"ParsingErrorMessage","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the error message used when displaying an a parsing error.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"ParsingErrorMessage"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\r\n \r\n Gets or sets the value of the input. This should be used with two-way binding.\r\n \r\n \r\n @bind-Value=\"model.PropertyName\"\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True","Common.PropertyName":"Value"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Gets or sets a callback that updates the bound value.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.GenericTyped":"True","Common.PropertyName":"ValueChanged"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\r\n \r\n Gets or sets an expression that identifies the bound value.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True","Common.PropertyName":"ValueExpression"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the display name for this field.\r\n This value is used when generating error messages when the input value fails to parse correctly.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"DisplayName"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Components.NameMatch":"Components.FullyQualifiedNameMatch","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputDate","Components.GenericTyped":"True","Common.TypeNameIdentifier":"InputDate"}},{"HashCode":512248358,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputFile","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n A component that wraps the HTML file input element and supplies a for each file's contents.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputFile"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"OnChange","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Gets or sets the event callback that will be invoked when the collection of selected files changes.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Common.PropertyName":"OnChange"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the input element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IDictionary","Common.PropertyName":"AdditionalAttributes"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputFile","Common.TypeNameIdentifier":"InputFile"}},{"HashCode":-793686601,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputFile","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n A component that wraps the HTML file input element and supplies a for each file's contents.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputFile"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"OnChange","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Gets or sets the event callback that will be invoked when the collection of selected files changes.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Common.PropertyName":"OnChange"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the input element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IDictionary","Common.PropertyName":"AdditionalAttributes"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Components.NameMatch":"Components.FullyQualifiedNameMatch","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputFile","Common.TypeNameIdentifier":"InputFile"}},{"HashCode":983649175,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputNumber","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n An input component for editing numeric values.\r\n Supported numeric types are , , , , , .\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputNumber"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputNumber component.","Metadata":{"Components.TypeParameterIsCascading":"False","Components.TypeParameter":"True","Common.PropertyName":"TValue"}},{"Kind":"Components.Component","Name":"ParsingErrorMessage","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the error message used when displaying an a parsing error.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"ParsingErrorMessage"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\r\n \r\n Gets or sets the value of the input. This should be used with two-way binding.\r\n \r\n \r\n @bind-Value=\"model.PropertyName\"\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True","Common.PropertyName":"Value"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Gets or sets a callback that updates the bound value.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.GenericTyped":"True","Common.PropertyName":"ValueChanged"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\r\n \r\n Gets or sets an expression that identifies the bound value.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True","Common.PropertyName":"ValueExpression"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the display name for this field.\r\n This value is used when generating error messages when the input value fails to parse correctly.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"DisplayName"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputNumber","Components.GenericTyped":"True","Common.TypeNameIdentifier":"InputNumber"}},{"HashCode":-556115839,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputNumber","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n An input component for editing numeric values.\r\n Supported numeric types are , , , , , .\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputNumber"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputNumber component.","Metadata":{"Components.TypeParameterIsCascading":"False","Components.TypeParameter":"True","Common.PropertyName":"TValue"}},{"Kind":"Components.Component","Name":"ParsingErrorMessage","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the error message used when displaying an a parsing error.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"ParsingErrorMessage"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\r\n \r\n Gets or sets the value of the input. This should be used with two-way binding.\r\n \r\n \r\n @bind-Value=\"model.PropertyName\"\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True","Common.PropertyName":"Value"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Gets or sets a callback that updates the bound value.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.GenericTyped":"True","Common.PropertyName":"ValueChanged"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\r\n \r\n Gets or sets an expression that identifies the bound value.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True","Common.PropertyName":"ValueExpression"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the display name for this field.\r\n This value is used when generating error messages when the input value fails to parse correctly.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"DisplayName"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Components.NameMatch":"Components.FullyQualifiedNameMatch","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputNumber","Components.GenericTyped":"True","Common.TypeNameIdentifier":"InputNumber"}},{"HashCode":323724845,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputRadio","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n An input component used for selecting a value from a group of choices.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputRadio"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputRadio component.","Metadata":{"Components.TypeParameterIsCascading":"False","Components.TypeParameter":"True","Common.PropertyName":"TValue"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the input element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\r\n \r\n Gets or sets the value of this input.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True","Common.PropertyName":"Value"}},{"Kind":"Components.Component","Name":"Name","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the name of the parent input radio group.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"Name"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputRadio","Components.GenericTyped":"True","Common.TypeNameIdentifier":"InputRadio"}},{"HashCode":1048570729,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputRadio","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n An input component used for selecting a value from a group of choices.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputRadio"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputRadio component.","Metadata":{"Components.TypeParameterIsCascading":"False","Components.TypeParameter":"True","Common.PropertyName":"TValue"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the input element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\r\n \r\n Gets or sets the value of this input.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True","Common.PropertyName":"Value"}},{"Kind":"Components.Component","Name":"Name","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the name of the parent input radio group.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"Name"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Components.NameMatch":"Components.FullyQualifiedNameMatch","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputRadio","Components.GenericTyped":"True","Common.TypeNameIdentifier":"InputRadio"}},{"HashCode":3845135,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n Groups child components.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputRadioGroup"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputRadioGroup component.","Metadata":{"Components.TypeParameterIsCascading":"False","Components.TypeParameter":"True","Common.PropertyName":"TValue"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\r\n \r\n Gets or sets the child content to be rendering inside the .\r\n \r\n ","Metadata":{"Components.ChildContent":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Common.PropertyName":"ChildContent"}},{"Kind":"Components.Component","Name":"Name","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the name of the group.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"Name"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\r\n \r\n Gets or sets the value of the input. This should be used with two-way binding.\r\n \r\n \r\n @bind-Value=\"model.PropertyName\"\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True","Common.PropertyName":"Value"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Gets or sets a callback that updates the bound value.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.GenericTyped":"True","Common.PropertyName":"ValueChanged"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\r\n \r\n Gets or sets an expression that identifies the bound value.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True","Common.PropertyName":"ValueExpression"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the display name for this field.\r\n This value is used when generating error messages when the input value fails to parse correctly.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"DisplayName"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup","Components.GenericTyped":"True","Common.TypeNameIdentifier":"InputRadioGroup"}},{"HashCode":-325820364,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n Groups child components.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputRadioGroup component.","Metadata":{"Components.TypeParameterIsCascading":"False","Components.TypeParameter":"True","Common.PropertyName":"TValue"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\r\n \r\n Gets or sets the child content to be rendering inside the .\r\n \r\n ","Metadata":{"Components.ChildContent":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Common.PropertyName":"ChildContent"}},{"Kind":"Components.Component","Name":"Name","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the name of the group.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"Name"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\r\n \r\n Gets or sets the value of the input. This should be used with two-way binding.\r\n \r\n \r\n @bind-Value=\"model.PropertyName\"\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True","Common.PropertyName":"Value"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Gets or sets a callback that updates the bound value.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.GenericTyped":"True","Common.PropertyName":"ValueChanged"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\r\n \r\n Gets or sets an expression that identifies the bound value.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True","Common.PropertyName":"ValueExpression"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the display name for this field.\r\n This value is used when generating error messages when the input value fails to parse correctly.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"DisplayName"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Components.NameMatch":"Components.FullyQualifiedNameMatch","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup","Components.GenericTyped":"True","Common.TypeNameIdentifier":"InputRadioGroup"}},{"HashCode":68095476,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n Gets or sets the child content to be rendering inside the .\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"InputRadioGroup"}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.ChildContent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup.ChildContent","Common.TypeNameIdentifier":"InputRadioGroup"}},{"HashCode":-2140436893,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n Gets or sets the child content to be rendering inside the .\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup"}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Components.NameMatch":"Components.FullyQualifiedNameMatch","Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.ChildContent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup.ChildContent","Common.TypeNameIdentifier":"InputRadioGroup"}},{"HashCode":501651446,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputSelect","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n A dropdown selection component.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputSelect"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputSelect component.","Metadata":{"Components.TypeParameterIsCascading":"False","Components.TypeParameter":"True","Common.PropertyName":"TValue"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\r\n \r\n Gets or sets the child content to be rendering inside the select element.\r\n \r\n ","Metadata":{"Components.ChildContent":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Common.PropertyName":"ChildContent"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\r\n \r\n Gets or sets the value of the input. This should be used with two-way binding.\r\n \r\n \r\n @bind-Value=\"model.PropertyName\"\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True","Common.PropertyName":"Value"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Gets or sets a callback that updates the bound value.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.GenericTyped":"True","Common.PropertyName":"ValueChanged"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\r\n \r\n Gets or sets an expression that identifies the bound value.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True","Common.PropertyName":"ValueExpression"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the display name for this field.\r\n This value is used when generating error messages when the input value fails to parse correctly.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"DisplayName"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputSelect","Components.GenericTyped":"True","Common.TypeNameIdentifier":"InputSelect"}},{"HashCode":-1014469851,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputSelect","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n A dropdown selection component.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputSelect"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputSelect component.","Metadata":{"Components.TypeParameterIsCascading":"False","Components.TypeParameter":"True","Common.PropertyName":"TValue"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\r\n \r\n Gets or sets the child content to be rendering inside the select element.\r\n \r\n ","Metadata":{"Components.ChildContent":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Common.PropertyName":"ChildContent"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\r\n \r\n Gets or sets the value of the input. This should be used with two-way binding.\r\n \r\n \r\n @bind-Value=\"model.PropertyName\"\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True","Common.PropertyName":"Value"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Gets or sets a callback that updates the bound value.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.GenericTyped":"True","Common.PropertyName":"ValueChanged"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\r\n \r\n Gets or sets an expression that identifies the bound value.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True","Common.PropertyName":"ValueExpression"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the display name for this field.\r\n This value is used when generating error messages when the input value fails to parse correctly.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"DisplayName"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Components.NameMatch":"Components.FullyQualifiedNameMatch","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputSelect","Components.GenericTyped":"True","Common.TypeNameIdentifier":"InputSelect"}},{"HashCode":-2086620057,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Forms.InputSelect.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n Gets or sets the child content to be rendering inside the select element.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"InputSelect"}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.ChildContent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputSelect.ChildContent","Common.TypeNameIdentifier":"InputSelect"}},{"HashCode":240832860,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Forms.InputSelect.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n Gets or sets the child content to be rendering inside the select element.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"Microsoft.AspNetCore.Components.Forms.InputSelect"}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Components.NameMatch":"Components.FullyQualifiedNameMatch","Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.ChildContent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputSelect.ChildContent","Common.TypeNameIdentifier":"InputSelect"}},{"HashCode":-1352458492,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputText","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n An input component for editing values.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputText"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"Value","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the value of the input. This should be used with two-way binding.\r\n \r\n \r\n @bind-Value=\"model.PropertyName\"\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"Value"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Gets or sets a callback that updates the bound value.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Common.PropertyName":"ValueChanged"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\r\n \r\n Gets or sets an expression that identifies the bound value.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Common.PropertyName":"ValueExpression"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the display name for this field.\r\n This value is used when generating error messages when the input value fails to parse correctly.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"DisplayName"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputText","Common.TypeNameIdentifier":"InputText"}},{"HashCode":-226117494,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputText","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n An input component for editing values.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputText"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"Value","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the value of the input. This should be used with two-way binding.\r\n \r\n \r\n @bind-Value=\"model.PropertyName\"\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"Value"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Gets or sets a callback that updates the bound value.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Common.PropertyName":"ValueChanged"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\r\n \r\n Gets or sets an expression that identifies the bound value.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Common.PropertyName":"ValueExpression"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the display name for this field.\r\n This value is used when generating error messages when the input value fails to parse correctly.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"DisplayName"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Components.NameMatch":"Components.FullyQualifiedNameMatch","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputText","Common.TypeNameIdentifier":"InputText"}},{"HashCode":-1100667989,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputTextArea","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n A multiline input component for editing values.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputTextArea"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"Value","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the value of the input. This should be used with two-way binding.\r\n \r\n \r\n @bind-Value=\"model.PropertyName\"\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"Value"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Gets or sets a callback that updates the bound value.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Common.PropertyName":"ValueChanged"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\r\n \r\n Gets or sets an expression that identifies the bound value.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Common.PropertyName":"ValueExpression"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the display name for this field.\r\n This value is used when generating error messages when the input value fails to parse correctly.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"DisplayName"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputTextArea","Common.TypeNameIdentifier":"InputTextArea"}},{"HashCode":919219871,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputTextArea","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n A multiline input component for editing values.\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputTextArea"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"Value","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the value of the input. This should be used with two-way binding.\r\n \r\n \r\n @bind-Value=\"model.PropertyName\"\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"Value"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Gets or sets a callback that updates the bound value.\r\n \r\n ","Metadata":{"Components.EventCallback":"True","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Common.PropertyName":"ValueChanged"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\r\n \r\n Gets or sets an expression that identifies the bound value.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Common.PropertyName":"ValueExpression"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\r\n \r\n Gets or sets the display name for this field.\r\n This value is used when generating error messages when the input value fails to parse correctly.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.String","Common.PropertyName":"DisplayName"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Components.NameMatch":"Components.FullyQualifiedNameMatch","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputTextArea","Common.TypeNameIdentifier":"InputTextArea"}},{"HashCode":-1478366108,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.ValidationMessage","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n Displays a list of validation messages for a specified field within a cascaded .\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ValidationMessage"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.ValidationMessage component.","Metadata":{"Components.TypeParameterIsCascading":"False","Components.TypeParameter":"True","Common.PropertyName":"TValue"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created div element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"For","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\r\n \r\n Specifies the field for which validation messages should be displayed.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True","Common.PropertyName":"For"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.ValidationMessage","Components.GenericTyped":"True","Common.TypeNameIdentifier":"ValidationMessage"}},{"HashCode":-1327564734,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.ValidationMessage","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n \r\n Displays a list of validation messages for a specified field within a cascaded .\r\n \r\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.ValidationMessage"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.ValidationMessage component.","Metadata":{"Components.TypeParameterIsCascading":"False","Components.TypeParameter":"True","Common.PropertyName":"TValue"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\r\n \r\n Gets or sets a collection of additional attributes that will be applied to the created div element.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary","Common.PropertyName":"AdditionalAttributes"}},{"Kind":"Components.Component","Name":"For","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\r\n \r\n Specifies the field for which validation messages should be displayed.\r\n \r\n ","Metadata":{"Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True","Common.PropertyName":"For"}}],"Metadata":{"Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Components.NameMatch":"Components.FullyQualifiedNameMatch","Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.ValidationMessage","Components.GenericTyped":"True","Common.TypeNameIdentifier":"ValidationMessage"}},{"HashCode":-1104507193,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.ValidationSummary","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\r\n