Modifiche per gestione Foto

This commit is contained in:
Marco Audiffredi 2025-09-23 16:19:01 +02:00
parent 927dc4f52d
commit bd567c74da
4 changed files with 38 additions and 468 deletions

View File

@ -380,10 +380,10 @@ namespace ApiPolo.Controllers
c.note_interv_stampa = a.note_interv_stampa != null ? a.note_interv_stampa :false;
c.ftp_url_stor = a.ftp_url_stor != null ? a.ftp_url_stor : string.Empty;
c.ftp_url_stor = a.ftp_url_stor != null ? a.ftp_url_stor.Trim() : string.Empty;
c.ftp_usr_stor = a.ftp_usr_stor != null ? a.ftp_usr_stor : string.Empty;
c.ftp_pwd_stor = a.ftp_pwd_stor != null ? a.ftp_pwd_stor : string.Empty;
c.root_stor = a.root_stor != null ? a.root_stor : string.Empty;
c.root_stor = a.root_stor != null ? a.root_stor.Trim() : string.Empty;
c.abilita_foto = a.abilita_foto != null ? a.abilita_foto : false;
}
@ -2553,6 +2553,7 @@ namespace ApiPolo.Controllers
{
LoginOut o = new LoginOut();
string tenAdHoc = string.Empty;
string ten2 = string.Empty;
try
{
if (string.IsNullOrEmpty(model.Username) || string.IsNullOrEmpty(model.Password))
@ -2565,26 +2566,8 @@ namespace ApiPolo.Controllers
else
{
var tecnico=new List<Tecnici>();
switch (model.Tenant)
{
case Clienti.VT:
_tecnici= _VT_tec.Tecnici;
tecnico = await _tecnici.Where(t => t.tcuser == model.Username && t.tcpwd == model.Password ).Take(1).ToListAsync();
string ten2 = tecnico.First().tccodazi;
tenAdHoc = model.Tenant;
_confLette = await readConf(ten2);
break;
default:
//2024-11-26: leggo le configurazioni prima perchè come tenant non devo più leggere AZIENDA ma AZIENDA_ADHOC
_confLette = await readConf(model.Tenant);
tenAdHoc = (_confLette != null && _confLette.azienda_adhoc!=null)? _confLette.azienda_adhoc:string.Empty;
_tecnici = getTecniciByTenant(tenAdHoc);
//model.Tenant = tenAdHoc;// lo valoriozzo con quello iniziale per non cambiare il passaggio nel token
tecnico = await _tecnici.Where(t => t.tcuser == model.Username && t.tcpwd == model.Password && t.tccodazi == tenAdHoc).Take(1).ToListAsync();
break;
}
_tecnici = _VT_tec.Tecnici;
tecnico = await _tecnici.Where(t => t.tcuser == model.Username && t.tcpwd == model.Password).Take(1).ToListAsync();
if (tecnico == null || (tecnico != null && tecnico.Count == 0))
{
@ -2595,6 +2578,10 @@ namespace ApiPolo.Controllers
}
else
{
ten2 = tecnico.First().tccodazi;
tenAdHoc = model.Tenant;
_confLette = await readConf(ten2);
var authClaims = new List<Claim>
{
//new Claim(ClaimTypes.Name, model.Username),
@ -2615,8 +2602,6 @@ namespace ApiPolo.Controllers
);
string tok = new JwtSecurityTokenHandler().WriteToken(token);
_token = tok;
o.Tok = tok;
o.Tcdescri = tecnico.First().Tcdescri;
o.Tccodice = tecnico.First().tccodice;
@ -2675,7 +2660,7 @@ namespace ApiPolo.Controllers
//per VT il costo lo devo leggere dal profilo del tecnico
if (model.Tenant.Equals(Clienti.VT))
{
string ten2 = tecnico.First().tccodazi;
ten2 = tecnico.First().tccodazi;
string codTec = tecnico.First().tccodice;
_tecTable = _VT_tectable.Tectable;
var costo = _tecTable.Where(t => t.tccodazi.Equals(ten2) && t.tccodice.Equals(codTec)).First();
@ -2709,49 +2694,23 @@ namespace ApiPolo.Controllers
cc.note_interv_stampa = _confLette.note_interv_stampa;
cc.desc_interv_stampa = _confLette.desc_interv_stampa;
cc.ftp_url_stor = _confLette.ftp_url_stor;
cc.ftp_usr_stor = _confLette.ftp_usr_stor;
cc.ftp_pwd_stor = _confLette.ftp_pwd_stor;
cc.abilita_foto = _confLette.abilita_foto;
cc.root_stor = _confLette.root_stor;
o.Config = cc;
//cerco le aziende collegate
List<AziendaRif> l = new List<AziendaRif>();
string ten = model.Tenant;
bool bCercaAzcoll = false;
bool bCercaAziVT = false;
bCercaAziVT = true;
//switch (ten)
//{
// case Clienti.Discovery:
// bCercaAzcoll = true;
// break;
// case Clienti.VT:
// bCercaAziVT = true;
// break;
//}
if (bCercaAzcoll)
{
//_azi_coll = getAziendeRifByTenant(ten);
var a = await _azi_coll.Where(t => t.piazihoc != null && t.piazihoc.Equals(ten) && t.picodtec!=null && t.picodtec.Trim().Equals(o.Tccodice.Trim())).ToListAsync();
if (a.Any())
{
foreach (AziendaRif appo in a)
{
string logo = !string.IsNullOrEmpty(appo.pilogurl) ? appo.pilogurl.Trim() : string.Empty;
//var uriBuilder = new UriBuilder(Request.Scheme, Request.Host.Host, Request.Host.Port ?? -1);
//logo = uriBuilder + logo;
appo.pilogurl = logo;
l.Add(appo);
}
}
}
bool bCercaAziVT = true;
if(bCercaAziVT)
{
ten = model.Tenant;
string ten2 = tecnico.First().tccodazi;
ten2 = tecnico.First().tccodazi;
string tecn= tecnico.First().tccodice;
_VT_DatiAzi = _VT_DatiAzienda.Dati;
var t = await _VT_DatiAzi.Where(t => t.azienda.Equals(ten2) && t.tecnico.Equals(tecn)).ToListAsync();
@ -2823,21 +2782,7 @@ namespace ApiPolo.Controllers
string seriale = pref+"00000";
_rapp_new = _VT_rapptable.Rapps;
//switch (ten)
//{
// case Clienti.VT:
// ten = ten2;
// break;
// default:
// _rapp_new = getRappNewByTenant(ten);
// break;
//}
//var rapp = await _rapp_new.Where(t => t.azienda_impianto == ten && t.ser_buono!=null && t.tipo_rapportino== TipoRapportino.ChiamataChiusa).OrderByDescending(t => t.ser_buono).Take(1).ToListAsync();
//var rapp = await _rapp_new.Where(t => t.azienda_impianto == ten && t.ser_buono != null && t.ser_buono.Trim().Contains(pref) && t.tipo_rapportino == TipoRapportino.ChiamataChiusa).OrderByDescending(t => t.ser_buono).Take(1).ToListAsync();
//tolto filtro su tipo rapportino per gestire anche il tipo 4 =commessa
var rapp = await _rapp_new.Where(t => t.azienda_impianto == ten && t.ser_buono != null && t.ser_buono.Trim().Contains(pref)).OrderByDescending(t => t.ser_buono).Take(1).ToListAsync();
var rapp = await _rapp_new.Where(t => t.azienda_impianto == ten2 && t.ser_buono != null && t.ser_buono.Trim().Contains(pref)).OrderByDescending(t => t.ser_buono).Take(1).ToListAsync();
if (rapp != null && rapp.Count() > 0)
{
@ -4857,395 +4802,7 @@ namespace ApiPolo.Controllers
}
}
//switch (ten)
//{
// case Clienti.Marrocco:
// using (var transaction = _Marro_rapp.Database.BeginTransaction())
// {
// await _Marro_rapp.Rapps.AddAsync(r);
// await _Marro_rapp.SaveChangesAsync();
// transaction.Commit();
// }
// break;
// case Clienti.Ferrari:
// using (var transaction = _Ferra_rapp.Database.BeginTransaction())
// {
// await _Ferra_rapp.Rapps.AddAsync(r);
// await _Ferra_rapp.SaveChangesAsync();
// transaction.Commit();
// }
// break;
// case Clienti.Sarom:
// using (var transaction = _Sarom_rapp.Database.BeginTransaction())
// {
// await _Sarom_rapp.Rapps.AddAsync(r);
// await _Sarom_rapp.SaveChangesAsync();
// transaction.Commit();
// }
// break;
// case Clienti.Gitoga:
// using (var transactionGit = _Gitoga_rapp.Database.BeginTransaction())
// {
// await _Gitoga_rapp.Rapps.AddAsync(r);
// await _Gitoga_rapp.SaveChangesAsync();
// transactionGit.Commit();
// }
// break;
// case Clienti.Lifta:
// using (var transactionLif = _Lifta_rapp.Database.BeginTransaction())
// {
// await _Lifta_rapp.Rapps.AddAsync(r);
// await _Lifta_rapp.SaveChangesAsync();
// transactionLif.Commit();
// }
// break;
// case Clienti.Sicilia:
// using (var transaction = _Sicilia_rapp.Database.BeginTransaction())
// {
// await _Sicilia_rapp.Rapps.AddAsync(r);
// await _Sicilia_rapp.SaveChangesAsync();
// transaction.Commit();
// }
// riga = 0;
// if (model.compo_add!=null && model.compo_add.Count()>0)
// {
// using (var transaction2 = _Sicilia_mag.Database.BeginTransaction())
// {
// foreach (Saldiart co in model.compo_add)
// {
// riga = riga + 1;
// Mag_New mn = new Mag_New();
// mn = saldiartToMag_New(co, riga, newSerial, tecnico);
// await _Sicilia_mag.Mag.AddAsync(mn);
// await _Sicilia_mag.SaveChangesAsync();
// }
// transaction2.Commit();
// }
// }
// if (model.compo_del != null && model.compo_del.Count() > 0)
// {
// using (var transaction3 = _Sicilia_mag.Database.BeginTransaction())
// {
// foreach (Compo_Impia co in model.compo_del)
// {
// Mag_New mn = new Mag_New();
// riga = riga + 1;
// mn = compo_ImpiaToMag_New(co, riga, newSerial, tecnico);
// await _Sicilia_mag.Mag.AddAsync(mn);
// await _Sicilia_mag.SaveChangesAsync();
// }
// transaction3.Commit();
// }
// }
// break;
// case Clienti.Discovery:
// using (var transaction = _Disco_rapp.Database.BeginTransaction())
// {
// await _Disco_rapp.Rapps.AddAsync(r);
// await _Disco_rapp.SaveChangesAsync();
// transaction.Commit();
// }
// riga = 0;
// if (model.compo_add != null && model.compo_add.Count() > 0)
// {
// using (var transaction2 = _Disco_mag.Database.BeginTransaction())
// {
// foreach (Saldiart co in model.compo_add)
// {
// riga = riga + 1;
// Mag_New mn = new Mag_New();
// mn = saldiartToMag_New(co, riga, newSerial, tecnico);
// await _Disco_mag.Mag.AddAsync(mn);
// await _Disco_mag.SaveChangesAsync();
// }
// transaction2.Commit();
// }
// }
// if (model.compo_del != null && model.compo_del.Count() > 0)
// {
// using (var transaction3 = _Disco_mag.Database.BeginTransaction())
// {
// foreach (Compo_Impia co in model.compo_del)
// {
// Mag_New mn = new Mag_New();
// riga = riga + 1;
// mn = compo_ImpiaToMag_New(co, riga, newSerial, tecnico);
// await _Disco_mag.Mag.AddAsync(mn);
// await _Disco_mag.SaveChangesAsync();
// }
// transaction3.Commit();
// }
// }
// break;
// case Clienti.Siet:
// using (var transaction = _Siet_rapp.Database.BeginTransaction())
// {
// await _Siet_rapp.Rapps.AddAsync(r);
// await _Siet_rapp.SaveChangesAsync();
// transaction.Commit();
// }
// riga = 0;
// if (model.compo_add != null && model.compo_add.Count() > 0)
// {
// using (var transaction2 = _Siet_mag.Database.BeginTransaction())
// {
// foreach (Saldiart co in model.compo_add)
// {
// riga = riga + 1;
// Mag_New mn = new Mag_New();
// mn = saldiartToMag_New(co, riga, newSerial, tecnico);
// await _Siet_mag.Mag.AddAsync(mn);
// await _Siet_mag.SaveChangesAsync();
// }
// transaction2.Commit();
// }
// }
// if (model.compo_del != null && model.compo_del.Count() > 0)
// {
// using (var transaction3 = _Siet_mag.Database.BeginTransaction())
// {
// foreach (Compo_Impia co in model.compo_del)
// {
// Mag_New mn = new Mag_New();
// riga = riga + 1;
// mn = compo_ImpiaToMag_New(co, riga, newSerial, tecnico);
// await _Siet_mag.Mag.AddAsync(mn);
// await _Siet_mag.SaveChangesAsync();
// }
// transaction3.Commit();
// }
// }
// break;
// case Clienti.PMS:
// using (var transaction = _Pms_rapp.Database.BeginTransaction())
// {
// await _Pms_rapp.Rapps.AddAsync(r);
// await _Pms_rapp.SaveChangesAsync();
// transaction.Commit();
// }
// riga = 0;
// if (model.compo_add != null && model.compo_add.Count() > 0)
// {
// using (var transaction2 = _PMS_mag.Database.BeginTransaction())
// {
// foreach (Saldiart co in model.compo_add)
// {
// riga = riga + 1;
// Mag_New mn = new Mag_New();
// mn = saldiartToMag_New(co, riga, newSerial, tecnico);
// await _PMS_mag.Mag.AddAsync(mn);
// await _PMS_mag.SaveChangesAsync();
// }
// transaction2.Commit();
// }
// }
// if (model.compo_del != null && model.compo_del.Count() > 0)
// {
// using (var transaction3 = _PMS_mag.Database.BeginTransaction())
// {
// foreach (Compo_Impia co in model.compo_del)
// {
// Mag_New mn = new Mag_New();
// riga = riga + 1;
// mn = compo_ImpiaToMag_New(co, riga, newSerial, tecnico);
// await _PMS_mag.Mag.AddAsync(mn);
// await _PMS_mag.SaveChangesAsync();
// }
// transaction3.Commit();
// }
// }
// break;
// case Clienti.VT:
// using (var transactionVT = _VT_rapptable.Database.BeginTransaction())
// {
// await _VT_rapptable.Rapps.AddAsync(r);
// await _VT_rapptable.SaveChangesAsync();
// transactionVT.Commit();
// }
// // 27/02/2025 agggiunta gestione Vt_MagNew
// riga = 0;
// if (model.compo_add != null && model.compo_add.Count() > 0)
// {
// using (var transactionVT2 = _VT_rapptable.Database.BeginTransaction())
// {
// foreach (Saldiart co in model.compo_add)
// {
// Vt_Mag_New vtmn = new Vt_Mag_New();
// riga = riga + 1;
// vtmn = SaldiArtToVtMag_New(co, riga, newSerial, tecnico, ten2);
// await _VT_MagNew.MagNewVt.AddAsync(vtmn);
// await _VT_MagNew.SaveChangesAsync();
// }
// transactionVT2.Commit();
// }
// }
// if (model.compo_del != null && model.compo_del.Count() > 0)
// {
// using (var transactionVt3 = _VT_rapptable.Database.BeginTransaction())
// {
// foreach (Compo_Impia co in model.compo_del)
// {
// Vt_Mag_New vtmn = new Vt_Mag_New();
// riga = riga + 1;
// vtmn = compo_ImpiaToVt_Mag_New(co, riga, newSerial, tecnico, ten2);
// await _VT_MagNew.MagNewVt.AddAsync(vtmn);
// await _VT_MagNew.SaveChangesAsync();
// }
// transactionVt3.Commit();
// }
// }
// break;
// case Clienti.LW:
// using (var transaction = _LW_rapp.Database.BeginTransaction())
// {
// await _LW_rapp.Rapps.AddAsync(r);
// await _LW_rapp.SaveChangesAsync();
// transaction.Commit();
// }
// riga = 0;
// if (model.compo_add != null && model.compo_add.Count() > 0)
// {
// using (var transaction2 = _LW_mag.Database.BeginTransaction())
// {
// foreach (Saldiart co in model.compo_add)
// {
// riga = riga + 1;
// Mag_New mn = new Mag_New();
// mn = saldiartToMag_New(co, riga, newSerial, tecnico);
// await _LW_mag.Mag.AddAsync(mn);
// await _LW_mag.SaveChangesAsync();
// }
// transaction2.Commit();
// }
// }
// if (model.compo_del != null && model.compo_del.Count() > 0)
// {
// using (var transaction3 = _LW_mag.Database.BeginTransaction())
// {
// foreach (Compo_Impia co in model.compo_del)
// {
// Mag_New mn = new Mag_New();
// riga = riga + 1;
// mn = compo_ImpiaToMag_New(co, riga, newSerial, tecnico);
// await _LW_mag.Mag.AddAsync(mn);
// await _LW_mag.SaveChangesAsync();
// }
// transaction3.Commit();
// }
// }
// break;
// case Clienti.Tedesco:
// using (var transaction = _Tedes_rapp.Database.BeginTransaction())
// {
// await _Tedes_rapp.Rapps.AddAsync(r);
// await _Tedes_rapp.SaveChangesAsync();
// transaction.Commit();
// }
// riga = 0;
// if (model.compo_add != null && model.compo_add.Count() > 0)
// {
// using (var transaction2 = _Tedes_mag.Database.BeginTransaction())
// {
// foreach (Saldiart co in model.compo_add)
// {
// riga = riga + 1;
// Mag_New mn = new Mag_New();
// mn = saldiartToMag_New(co, riga, newSerial, tecnico);
// await _Tedes_mag.Mag.AddAsync(mn);
// await _Tedes_mag.SaveChangesAsync();
// }
// transaction2.Commit();
// }
// }
// if (model.compo_del != null && model.compo_del.Count() > 0)
// {
// using (var transaction3 = _Tedes_mag.Database.BeginTransaction())
// {
// foreach (Compo_Impia co in model.compo_del)
// {
// Mag_New mn = new Mag_New();
// riga = riga + 1;
// mn = compo_ImpiaToMag_New(co, riga, newSerial, tecnico);
// await _Tedes_mag.Mag.AddAsync(mn);
// await _Tedes_mag.SaveChangesAsync();
// }
// transaction3.Commit();
// }
// }
// break;
// case Clienti.Syscom:
// using (var transaction = _Sys_rapp.Database.BeginTransaction())
// {
// await _Sys_rapp.Rapps.AddAsync(r);
// await _Sys_rapp.SaveChangesAsync();
// transaction.Commit();
// }
// riga = 0;
// if (model.compo_add != null && model.compo_add.Count() > 0)
// {
// using (var transaction2 = _Sys_mag.Database.BeginTransaction())
// {
// foreach (Saldiart co in model.compo_add)
// {
// riga = riga + 1;
// Mag_New mn = new Mag_New();
// mn = saldiartToMag_New(co, riga, newSerial, tecnico);
// await _Sys_mag.Mag.AddAsync(mn);
// await _Sys_mag.SaveChangesAsync();
// }
// transaction2.Commit();
// }
// }
// if (model.compo_del != null && model.compo_del.Count() > 0)
// {
// using (var transaction3 = _Sys_mag.Database.BeginTransaction())
// {
// foreach (Compo_Impia co in model.compo_del)
// {
// Mag_New mn = new Mag_New();
// riga = riga + 1;
// mn = compo_ImpiaToMag_New(co, riga, newSerial, tecnico);
// await _Sys_mag.Mag.AddAsync(mn);
// await _Sys_mag.SaveChangesAsync();
// }
// transaction3.Commit();
// }
// }
// break;
// default:
// break;
//}
calltec = await getChiamataBySerial(r.seriale_chiamata, token);
calltec_out = fillChiamateOut(calltec, ten);
calltec_out.err_status_code = StatiRisposta.Ok;

View File

@ -190,7 +190,20 @@ namespace ApiPolo.Models
/// <summary>stampa note intervento nel buono</summary>
public bool? desc_interv_stampa { get; set; }
/// <summary>url ftp per upload delle immagini nello STORAGE WEB</summary>
public string? ftp_url_stor { get; set; }
/// <summary>utente ftp per upload delle immagini nello STORAGE WEB</summary>
public string? ftp_usr_stor { get; set; }
/// <summary>password ftp per upload delle immagini nello STORAGE WEB</summary>
public string? ftp_pwd_stor { get; set; }
/// <summary>abilita l'upload delle foto impianto</summary>
public bool? abilita_foto { get; set; }
/// <summary>root (mappatura) dello STORAGE WEB</summary>
public string? root_stor { get; set; }
}
/// <summary>LoginOut (token+user)</summary>
public class LoginOut

View File

@ -14,8 +14,8 @@
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
//"applicationUrl": "https://localhost:7068;http://localhost:5068;http://10.0.0.187:5068;https://10.0.0.187:7068",
"applicationUrl": "https://localhost:7068;http://localhost:5068",
"applicationUrl": "https://localhost:7068;http://localhost:5068;http://10.0.0.187:5068;https://10.0.0.187:7068",
//"applicationUrl": "https://localhost:7068;http://localhost:5068",
"environmentVariables": {

View File

@ -11,11 +11,11 @@
//connessione non sicura: Encrypt=False
//"ApiStr": "Data Source=172.25.30.1;Initial Catalog=API_POLO;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//"ApiStr": "Data Source=dbsql01.poloinformatico.it;Initial Catalog=API_POLO;User Id=apipolo; Password=38HdflydkDrXI4l;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;Encrypt=False;TrustServerCertificate=True",
"ApiStr": "Data Source=MARCO_PC\\SQL_2022;Initial Catalog=API_POLO;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;Encrypt=False;TrustServerCertificate=True",
"ApiStr": "Data Source=dbsql01.poloinformatico.it;Initial Catalog=API_POLO;User Id=apipolo; Password=38HdflydkDrXI4l;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;Encrypt=False;TrustServerCertificate=True",
//"ApiStr": "Data Source=MARCO_PC\\SQL_2022;Initial Catalog=API_POLO;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;Encrypt=False;TrustServerCertificate=True",
//"VIRTUAL_TASK": "Data Source=dbsql01.poloinformatico.it;Initial Catalog=VIRTUAL_TASK;User Id=apipolo; Password=38HdflydkDrXI4l;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;Encrypt=False;TrustServerCertificate=True"
"VIRTUAL_TASK": "Data Source=MARCO_PC\\SQL_2022;Initial Catalog=VIRTUAL_TASK;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"VIRTUAL_TASK": "Data Source=dbsql01.poloinformatico.it;Initial Catalog=VIRTUAL_TASK;User Id=apipolo; Password=38HdflydkDrXI4l;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;Encrypt=False;TrustServerCertificate=True"
//"VIRTUAL_TASK": "Data Source=MARCO_PC\\SQL_2022;Initial Catalog=VIRTUAL_TASK;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//"VIRTUAL_TASK": "Data Source=172.25.30.1;Initial Catalog=VIRTUAL_TASK;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
},