From d826d275fbba0909d4d2c5229e234e29147ad8c6 Mon Sep 17 00:00:00 2001 From: Marco Audiffredi Date: Mon, 24 Mar 2025 17:08:15 +0100 Subject: [PATCH] scrematura iniziale --- ApiPolo/Controllers/PoloController.cs | 3235 +++--------------- ApiPolo/Data/Maras_DbContext.cs | 6 +- ApiPolo/Interfaces/ITenantDbContext.cs | 9 + ApiPolo/Interfaces/TenantDbContextFactory.cs | 5 +- ApiPolo/Models/VT_Buoni_DbContext.cs | 27 - ApiPolo/Services/MyCronJob1.cs | 70 +- ApiPolo/Startup.cs | 23 +- 7 files changed, 452 insertions(+), 2923 deletions(-) delete mode 100644 ApiPolo/Models/VT_Buoni_DbContext.cs diff --git a/ApiPolo/Controllers/PoloController.cs b/ApiPolo/Controllers/PoloController.cs index c5911e4..42f3c52 100644 --- a/ApiPolo/Controllers/PoloController.cs +++ b/ApiPolo/Controllers/PoloController.cs @@ -1,13 +1,4 @@ using ApiPolo.Models; -using ApiPolo.Models.Discovery_dbcontext; -using ApiPolo.Models.Ferrari_dbcontext; -using ApiPolo.Models.Marrocco_dbcontext; -using ApiPolo.Models.Sicilia_dbcontext; -using ApiPolo.Models.Sarom_dbcontext; -using ApiPolo.Models.Gitoga_dbcontext; -using ApiPolo.Models.Lifta_dbcontext; -using ApiPolo.Models.Lift_web_dbcontext; -using ApiPolo.Models.Tedesco_dbcontext; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; @@ -17,23 +8,17 @@ using System.IdentityModel.Tokens.Jwt; using System.Net; using System.Security.Claims; using System.Text; - -using ApiPolo.Models.Sinergo_dbcontext; -using System.Collections.Generic; -using System.Drawing; using FirebaseAdmin; using FirebaseAdmin.Messaging; using Google.Apis.Auth.OAuth2; using Newtonsoft.Json; -using static ApiPolo.Controllers.PoloController; using System.Net.Http.Headers; using Newtonsoft.Json.Linq; using System.Linq.Expressions; -using ApiPolo.Models.Siet_dbcontext; + using FirebaseAdmin.Auth.Multitenancy; using System.Globalization; -using ApiPolo.Models.PMS_dbcontext; -using ApiPolo.Models.VT_dbcontext; + using System.Diagnostics.Contracts; using Microsoft.EntityFrameworkCore.Storage; using System.Diagnostics.Metrics; @@ -46,7 +31,7 @@ using static Microsoft.Extensions.Logging.EventSource.LoggingEventSource; using static System.Net.Mime.MediaTypeNames; using System.IO; using Microsoft.AspNetCore.Http; -using ApiPolo.Models.Security_dbcontext; + using System.Data; using System.Linq; using Microsoft.Extensions.Primitives; @@ -54,6 +39,7 @@ using System.Text.RegularExpressions; using System.Runtime.CompilerServices; using System.Diagnostics; using ApiPolo.Data; +using ApiPolo.Interfaces; namespace ApiPolo.Controllers { @@ -67,11 +53,12 @@ namespace ApiPolo.Controllers private string _token = string.Empty; private readonly ConfigurazioniDbContext? _config; private readonly IConfiguration? _configuration; + private readonly ITenantDbContextFactory _dbContextFactory; private readonly TokenDbContext? _tokens; - - private readonly Maras_DbContext _Maras; + + /* #region TECNICI private readonly FERRA_TECNICIDbContext _Ferra_tecnici; private readonly MARRO_TECNICIDbContext _Marro_tecnici; @@ -482,6 +469,8 @@ namespace ApiPolo.Controllers private readonly DISCO_CC_CI_Vista_DbContext _Disco_ccciView; #endregion + */ + private DbSet? _tecnici; private DbSet? _rapp_new; private DbSet? _chiamate; @@ -528,7 +517,7 @@ namespace ApiPolo.Controllers private DbSet? _magazziniVT; private DbSet? _commDesc; - private DbSet? _commDescSiet; + private DbSet? _ccci; private DbSet? _ccciView; @@ -539,8 +528,10 @@ namespace ApiPolo.Controllers public PoloController( IConfiguration configuration, ConfigurazioniDbContext config, + ITenantDbContextFactory dbContextFactory, TokenDbContext tokens, - Maras_DbContext maras, + Maras_DbContext maras + /* #region tecnici FERRA_TECNICIDbContext Ferra_tecnici, @@ -901,15 +892,18 @@ namespace ApiPolo.Controllers VT_MAGAZZINI_DbContext VT_Magazzini #endregion - +*/ ) { + _dbContextFactory = dbContextFactory; _configuration = configuration; _config = config; _tokens = tokens; - + _Maras = maras; + + /* #region TECNICI _Ferra_tecnici = Ferra_tecnici; _Marro_tecnici = Marro_tecnici; @@ -1266,10 +1260,140 @@ namespace ApiPolo.Controllers _LW_Buoni = LW_Buoni; _Sys_Buoni = Sys_Buoni; #endregion + */ - _Maras = maras; } + #region GET_BY_TENANT + private DbSet getTecniciByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Tecnici; // Use Set() to handle different DbContexts + } + private DbSet getRappNewByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Rapps; // Use Set() to handle different DbContexts + } + private DbSet getChiamateByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Chiamate; // Use Set() to handle different DbContexts + } + private DbSet? getChiusureByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Chiusure; + } + private DbSet getManutenzioniByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Manutenzioni; // Use Set() to handle different DbContexts + } + private DbSet getPreseByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Prese; // Use Set() to handle different DbContexts + } + private DbSet getSto_RappByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.StoRapp; // Use Set() to handle different DbContexts + } + private DbSet getClientiByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Clienti; // Use Set() to handle different DbContexts + } + private DbSet getCausaliRappByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Causali; // Use Set() to handle different DbContexts + } + private DbSet getPagamentiByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Pagamenti; // Use Set() to handle different DbContexts + } + + private DbSet getSaldiartByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Saldi; // Use Set() to handle different DbContexts + } + private DbSet getCpwarnByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Prog; // Use Set() to handle different DbContexts + } + private DbSet getChiamateProgressiviByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Progressivi; // Use Set() to handle different DbContexts + } + + /// + /// CONFLITTO CON Compo_Impia_Table + /// + /* + private DbSet getComponentiByTenant(string tenant) + { // IN CONFLITTO CON Compo_Impia_Table + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Componen; // Use Set() to handle different DbContexts + }*/ + private DbSet getComponentiTableByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Componen; // Use Set() to handle different DbContexts + } + private DbSet getMagazziniByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Magaz; // Use Set() to handle different DbContexts + } + private DbSet getMag_NewByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Mag; // Use Set() to handle different DbContexts + } + private DbSet getImpiantiByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Impia; // Use Set() to handle different DbContexts + } + private DbSet getCommesseByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Commesse; // Use Set() to handle different DbContexts + } + private DbSet getTimbratureByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Timbr; // Use Set() to handle different DbContexts + } + + private DbSet getStoricoImpiantoByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.StoImp; // Use Set() to handle different DbContexts + } + private DbSet getAziendeRifByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Azi; // Use Set() to handle different DbContexts + } + private DbSet getSostituzioneByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Sost; // Use Set() to handle different DbContexts + } + private DbSet getComponentiByTenant(string tenant) + { + var dbContext = _dbContextFactory.GetDbContext(tenant); + return dbContext.Compo; // Use Set() to handle different DbContexts + } + #endregion + #region Utility private async Task readConf(string ten) { @@ -1377,6 +1501,9 @@ namespace ApiPolo.Controllers } return t; } + + + /* private DbSet getTecniciByTenant(string tenant) { DbSet? _tecs; @@ -2417,6 +2544,8 @@ namespace ApiPolo.Controllers } return _cpwarn; } + + */ private bool checkSostituzioneAbilitata(string tenant) { bool abilitata; @@ -2465,19 +2594,9 @@ namespace ApiPolo.Controllers { ten = tenConf; } + _rapp_new = getRappNewByTenant(ten); - switch (ten) - { - case Clienti.VT: - _rapp_new = _VT_rapptable.Rapps; - //ten = ten2; - break; - default: - _rapp_new = getRappNewByTenant(ten); - break; - } - - + string suff_rapp = string.Empty; string primo_seriale = string.Empty; //D000000004 @@ -2550,7 +2669,6 @@ namespace ApiPolo.Controllers && t.seriale_rapportino.Contains(suff_rapp)).OrderByDescending(t => t.seriale_rapportino).Take(1).ToListAsync()); - string? ser=string.Empty; if (rapp.Any()) { @@ -2689,16 +2807,8 @@ namespace ApiPolo.Controllers { ten = tenConf; } + _chiamate = getChiamateByTenant(ten); - if (ten.Equals(Clienti.VT)) - { - ten = getClaimValueByToken(token, "tenant2"); - _chiamate= _VT_chia.Chiamate; - } - else - { - _chiamate = getChiamateByTenant(ten); - } var calltec = await _chiamate.Where( t => t.chserial == ser_chiamata @@ -2787,17 +2897,8 @@ namespace ApiPolo.Controllers { //tipo rapportino ="" int trovati = 0; + _rapp_new = getRappNewByTenant(ten); - switch (ten) - { - case Clienti.VT: - _rapp_new= _VT_rapptable.Rapps; - ten = ten2; - break; - default: - _rapp_new = getRappNewByTenant(ten); - break; - } var rapp = await _rapp_new.Where(t => t.azienda_impianto == ten && t.seriale_chiamata !=null && t.seriale_chiamata.Equals(serChiamata) @@ -2814,17 +2915,8 @@ namespace ApiPolo.Controllers { //tipo rapportino ="" Rapp_New trovati = null; - switch (ten) - { - case Clienti.VT: - _rapp_new = _VT_rapptable.Rapps; - ten = ten2; - break; - default: - _rapp_new = getRappNewByTenant(ten); - break; - } + _rapp_new = getRappNewByTenant(ten); var rapp = await _rapp_new.Where(t => t.azienda_impianto == ten && t.seriale_rapportino != null && t.seriale_rapportino.Equals(serRapportino) && t.tipo_rapportino != null && t.tipo_rapportino.Equals(tipo) @@ -2840,17 +2932,8 @@ namespace ApiPolo.Controllers { //tipo rapportino ="" int trovati = 0; - switch (ten) - { - case Clienti.VT: - _rapp_new = _VT_rapptable.Rapps; - ten = ten2; - break; - default: - _rapp_new = getRappNewByTenant(ten); - break; - } + _rapp_new = getRappNewByTenant(ten); var rapp = await _rapp_new.Where(t => t.azienda_impianto == ten && t.seriale_chiamata != null && t.seriale_chiamata.Equals(serChiamata) && t.tipo_rapportino != null && t.tipo_rapportino.Equals(tipo) @@ -2867,15 +2950,8 @@ namespace ApiPolo.Controllers //tipo rapportino =3 o tipo rapportino=4 int trovati = 0; - if(ten.Equals(Clienti.VT)) - { - _rapp_new = _VT_rapptable.Rapps; - } - else - { - _rapp_new = getRappNewByTenant(ten); - } - + + _rapp_new = getRappNewByTenant(ten); var rapp = await _rapp_new.Where(t => t.azienda_impianto == ten && t.seriale_chiamata != null && t.seriale_chiamata.Equals(serChiamata) && t.tipo_rapportino != null && (t.tipo_rapportino.Equals(TipoRapportino.ChiamataChiusa) || t.tipo_rapportino.Equals(TipoRapportino.ChiamataDaCommessa))).ToListAsync(); @@ -3890,29 +3966,9 @@ namespace ApiPolo.Controllers ten = tenAdhoc; } - if (ten.Equals(Clienti.VT)) - { - _magazziniVT = _VT_Magazzini.Magazzini; - - List magaVTList = new List(); - magaVTList = await _magazziniVT.Where(x => x.Azienda.Equals(ten2)).ToListAsync(); - - foreach (var magVT in magaVTList) - { - Magazzini maga = new Magazzini(); - maga.mgcodmag = magVT.Mgcodmag.TrimEnd(); - maga.mgdesmag = magVT.Mgdesmag.TrimEnd(); - - lst.Add(maga); - } - return lst; - } - else - { - _magazzini = getMagazziniByTenant(ten); - return await _magazzini.ToListAsync(); - } + _magazzini = getMagazziniByTenant(ten); + return await _magazzini.ToListAsync(); } /// Login iniziale return:ActionResult @@ -3933,26 +3989,17 @@ namespace ApiPolo.Controllers else { var tecnico=new List(); - 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 + //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(); + + - tecnico = await _tecnici.Where(t => t.tcuser == model.Username && t.tcpwd == model.Password && t.tccodazi == tenAdHoc).Take(1).ToListAsync(); - break; - } if (tecnico == null || (tecnico != null && tecnico.Count == 0)) { @@ -4040,21 +4087,9 @@ namespace ApiPolo.Controllers cc.time_sheet = _confLette.time_sheet; cc.time_sheet_offline = _confLette.time_sheet_offline; - //per VT il costo lo devo leggere dal profilo del tecnico - if (model.Tenant.Equals(Clienti.VT)) - { - string 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(); - cc.costo_orario = costo.tccoor; - } - else - { - cc.costo_orario = _confLette.costo_orario; - } - + cc.costo_orario = _confLette.costo_orario; + cc.ftp_port= _confLette.ftp_port; cc.manutenzioni_rifiuta_barcode = _confLette.manutenzioni_rifiuta_barcode; cc.storico = _confLette.storico; @@ -4113,57 +4148,7 @@ namespace ApiPolo.Controllers } } - if(bCercaAziVT) - { - - ten = model.Tenant; - string 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(); - if (t.Any()) - { - foreach (DatiAzienda appo in t) - { - AziendaRif ar = new AziendaRif(); - //https://localhost:7068/VIRTU/AZI01/AZI01_LOGO.jpg - string logo = !string.IsNullOrEmpty(appo.url_logo) ? appo.url_logo.Trim() : string.Empty; - //var uriBuilder = new UriBuilder(Request.Scheme, Request.Host.Host, Request.Host.Port ?? -1); - //logo = uriBuilder + logo; - ar.pilogurl = logo; - ar.picodtec = appo.tecnico; - ar.pinomede = appo.ragsoc; - ar.pitextin = appo.testo_buono; - ar.pirifazi = appo.azienda; - ar.piazihoc = model.Tenant; - - l.Add(ar); - } - } - /* - _azi_coll = _VT_azi.Azi; - var a= await _azi_coll.Where(t => t.piazihoc != null && t.piazihoc.Equals(ten) - && t.picodtec != null && t.picodtec.Trim().Equals(o.Tccodice.Trim()) - && t.pirifazi!=null && t.pirifazi.Equals(ten2) - ).ToListAsync(); - - if(a.Any()) - { - foreach (AziendaRif appo in a) - { - - //https://localhost:7068/VIRTU/AZI01/AZI01_LOGO.jpg - 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); - } - } - */ - - } o.aziende_coll = l; } return StatusCode(StatusCodes.Status200OK, o); @@ -4187,18 +4172,8 @@ namespace ApiPolo.Controllers { //inizializzo il buono nel caso non lo trovi in tabella (per Sicilia è stato così) string seriale = pref+"00000"; + _rapp_new = getRappNewByTenant(ten); - switch (ten) - { - case Clienti.VT: - _rapp_new = _VT_rapptable.Rapps; - 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 @@ -4227,18 +4202,8 @@ namespace ApiPolo.Controllers { ten = tenConf; } + _chiamate = getChiamateByTenant(ten); - switch (ten) - { - case Clienti.VT: - _chiamate = _VT_chia.Chiamate; - ten = getClaimValueByToken(token, "tenant2"); - - break; - default: - _chiamate = getChiamateByTenant(ten); - break; - } //i = fakeInput(i,ten); var chia = await _chiamate.Where(t => t.chserial.Trim().Equals(i.seriale_chiamata.Trim())).OrderBy(t => t.chdtapp).ToListAsync(); @@ -4292,18 +4257,8 @@ namespace ApiPolo.Controllers { ten = tenConf; } + _chiamate = getChiamateByTenant(ten); - switch (ten) - { - case Clienti.VT: - _chiamate = _VT_chia.Chiamate; - ten = getClaimValueByToken(token, "tenant2"); - - break; - default: - _chiamate = getChiamateByTenant(ten); - break; - } var chia = await _chiamate.Where(t => t.chserial == i.seriale_chiamata).OrderBy(t => t.chdtapp).ToListAsync(); @@ -4357,18 +4312,8 @@ namespace ApiPolo.Controllers } var sBuono = await getSerBuonoChiamata(ten, co.prefisso_buoni_chia,ten2); + _chiamate = getChiamateByTenant(ten); - switch (ten) - { - case Clienti.VT: - _chiamate = _VT_chia.Chiamate; - ten = getClaimValueByToken(token, "tenant2"); - - break; - default: - _chiamate = getChiamateByTenant(ten); - break; - } var chiam = await _chiamate.Where( @@ -4648,26 +4593,7 @@ namespace ApiPolo.Controllers 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)) @@ -5557,30 +5483,7 @@ namespace ApiPolo.Controllers o.imrefref = i.imrefref; return o; } - private string getCommessaSietBySerial(string seriale) - { - string commessa = string.Empty; - try - { - _commDescSiet = _Siet_commDesc.Commdesc; - var c = _commDescSiet.Where(c => c.laserial.Equals(seriale)).First(); - if (c != null && !string.IsNullOrEmpty(c.lacodcom)) - { - commessa = c.lacodcom.Trim(); - if (!string.IsNullOrEmpty(c.lacodcen)) - { - commessa = commessa + " - " + c.lacodcen.Trim(); - } - } - } - catch - { - Console.WriteLine(string.Format("*********** {1} Errore Chiamata al metodo getCommessaSietBySerial: seriale:{0} ", seriale, DateTime.Now.ToString())); - } - - return commessa; - } private Chiamate_out inputToChiamateOut(Input i) { Chiamate_out c = new Chiamate_out(); @@ -5604,83 +5507,12 @@ namespace ApiPolo.Controllers { ten = tenConf; } + _chiusure = getChiusureByTenant(ten); - switch (ten) - { - case Clienti.VT: - _chiusure = _VT_chiu.Chiu; - ten = getClaimValueByToken(token, "tenant2"); - - break; - default: - _chiusure = getChiusureByTenant(ten); - break; - } var l = await _chiusure.Where(c => c.cccodazi.Equals(ten)).ToListAsync(); - //per DISCOVERY devo riempire anche gli abbinamenti con il tipo manutenzione - switch (ten) - { - case Clienti.Discovery: - - //_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 _ccciView.Where(c => c.picodazi!=null && c.picodazi.Equals(ten) && c.picodchi != null && c.picodchi.Equals(cod)).ToListAsync(); - if (appo != null && appo.Count() > 0) - { - //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); - } - - //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; - default: - - break; - } - return StatusCode(StatusCodes.Status200OK, l); } @@ -5707,19 +5539,9 @@ namespace ApiPolo.Controllers if(string.IsNullOrEmpty(ten)) { ten = tenConf; - } - - switch (ten) - { - case Clienti.VT: - _chiamate = _VT_chia.Chiamate; - ten = getClaimValueByToken(token, "tenant2"); - - break; - default: - _chiamate = getChiamateByTenant(ten); - break; } + _chiamate = getChiamateByTenant(ten); + @@ -5824,133 +5646,136 @@ namespace ApiPolo.Controllers string newSerial = string.Empty; newSerial = await getSeriale(token); Rapp_New r = await fillRappNewByInput(model, token, newSerial, _confLette); - 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.Sicilia: - using (var transaction = _Sicilia_rapp.Database.BeginTransaction()) - { - await _Sicilia_rapp.Rapps.AddAsync(r); - await _Sicilia_rapp.SaveChangesAsync(); - transaction.Commit(); - } - break; - case Clienti.Discovery: - using (var transaction = _Disco_rapp.Database.BeginTransaction()) - { - await _Disco_rapp.Rapps.AddAsync(r); - await _Disco_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.Siet: - using (var transactionSiet = _Siet_rapp.Database.BeginTransaction()) - { - await _Siet_rapp.Rapps.AddAsync(r); - await _Siet_rapp.SaveChangesAsync(); - transactionSiet.Commit(); - } - break; - case Clienti.PMS: - using (var transactionPMS = _Pms_rapp.Database.BeginTransaction()) - { - await _Pms_rapp.Rapps.AddAsync(r); - await _Pms_rapp.SaveChangesAsync(); - transactionPMS.Commit(); - } - break; - case Clienti.VT: - using (var transactionVT = _VT_rapptable.Database.BeginTransaction()) - { - await _VT_rapptable.Rapps.AddAsync(r); - await _VT_rapptable.SaveChangesAsync(); - transactionVT.Commit(); - } - break; - case Clienti.LW: - using (var transactionLW = _LW_rapp.Database.BeginTransaction()) - { - await _LW_rapp.Rapps.AddAsync(r); - await _LW_rapp.SaveChangesAsync(); - transactionLW.Commit(); - } - break; - case Clienti.Tedesco: - using (var transactionTedes = _Tedes_rapp.Database.BeginTransaction()) - { - await _Tedes_rapp.Rapps.AddAsync(r); - await _Tedes_rapp.SaveChangesAsync(); - transactionTedes.Commit(); - } - break; - case Clienti.Syscom: - using (var transactionSys = _Sys_rapp.Database.BeginTransaction()) - { - await _Sys_rapp.Rapps.AddAsync(r); - await _Sys_rapp.SaveChangesAsync(); - transactionSys.Commit(); - } - break; - default: - break; - } + + //DbContext dbContext = (DbContext)_dbContextFactory.GetDbContext(ten); + + + //using (var transaction = dbContext.Database.BeginTransaction()) + //{ + // await dbContext.Rapps.AddAsync(r); + // await dbContext.SaveChangesAsync(); + // transaction.Commit(); + //} + + + //scrittura test + /* + 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.Sicilia: + using (var transaction = _Sicilia_rapp.Database.BeginTransaction()) + { + await _Sicilia_rapp.Rapps.AddAsync(r); + await _Sicilia_rapp.SaveChangesAsync(); + transaction.Commit(); + } + break; + case Clienti.Discovery: + using (var transaction = _Disco_rapp.Database.BeginTransaction()) + { + await _Disco_rapp.Rapps.AddAsync(r); + await _Disco_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.Siet: + using (var transactionSiet = _Siet_rapp.Database.BeginTransaction()) + { + await _Siet_rapp.Rapps.AddAsync(r); + await _Siet_rapp.SaveChangesAsync(); + transactionSiet.Commit(); + } + break; + case Clienti.PMS: + using (var transactionPMS = _Pms_rapp.Database.BeginTransaction()) + { + await _Pms_rapp.Rapps.AddAsync(r); + await _Pms_rapp.SaveChangesAsync(); + transactionPMS.Commit(); + } + break; + case Clienti.VT: + using (var transactionVT = _VT_rapptable.Database.BeginTransaction()) + { + await _VT_rapptable.Rapps.AddAsync(r); + await _VT_rapptable.SaveChangesAsync(); + transactionVT.Commit(); + } + break; + case Clienti.LW: + using (var transactionLW = _LW_rapp.Database.BeginTransaction()) + { + await _LW_rapp.Rapps.AddAsync(r); + await _LW_rapp.SaveChangesAsync(); + transactionLW.Commit(); + } + break; + case Clienti.Tedesco: + using (var transactionTedes = _Tedes_rapp.Database.BeginTransaction()) + { + await _Tedes_rapp.Rapps.AddAsync(r); + await _Tedes_rapp.SaveChangesAsync(); + transactionTedes.Commit(); + } + break; + case Clienti.Syscom: + using (var transactionSys = _Sys_rapp.Database.BeginTransaction()) + { + await _Sys_rapp.Rapps.AddAsync(r); + await _Sys_rapp.SaveChangesAsync(); + transactionSys.Commit(); + } + break; + default: + break; + } + */ //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 { @@ -5995,6 +5820,8 @@ namespace ApiPolo.Controllers newSerial = await getSeriale(token); Rapp_New r = await fillRappNewRifiutoByInput(model, token, newSerial, _confLette); + //scrittura + /* switch (ten) { case Clienti.Marrocco: @@ -6105,6 +5932,8 @@ namespace ApiPolo.Controllers default: break; } + + */ calltec = await getChiamataBySerial(model.seriale_chiamata, token); calltec_out = fillChiamateOut(calltec, ten); calltec_out.err_status_code = StatiRisposta.Ok; @@ -6166,7 +5995,8 @@ namespace ApiPolo.Controllers Rapp_New r = await fillRappNewChiudiByInput(model, token, newSerial, _confLette); - + //scrittura + /* switch (ten) { case Clienti.Marrocco: @@ -6555,6 +6385,8 @@ namespace ApiPolo.Controllers default: break; } + + */ calltec = await getChiamataBySerial(r.seriale_chiamata, token); calltec_out = fillChiamateOut(calltec, ten); calltec_out.err_status_code = StatiRisposta.Ok; @@ -6604,6 +6436,7 @@ namespace ApiPolo.Controllers { if ((r=await checkChiamataDaRilasciare (ten, model.seriale_rapportino, TipoRapportino.PresaInCarico, ten2))!=null) { + /* switch (ten) { case Clienti.Marrocco: @@ -6725,6 +6558,7 @@ namespace ApiPolo.Controllers default: break; } + */ calltec = await getChiamataBySerial(r.seriale_chiamata, token); calltec_out = fillChiamateOut(calltec, ten); calltec_out.err_status_code = StatiRisposta.Ok; @@ -7458,7 +7292,7 @@ namespace ApiPolo.Controllers private async Task getDescrImpTedesco(string codimp, string ten) { string descImp = string.Empty; - _impianto = _Tedes_impianti.Impia; + _impianto = getImpiantiByTenant(ten); var l = await _impianto.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten) && t.imcodimp != null && t.imcodimp.Equals(codimp)).ToListAsync(); if (l != null && l.Count()>0 ) { @@ -7547,6 +7381,9 @@ namespace ApiPolo.Controllers { Prese r = fillPreseByInput(model, token); + + //scrittura + /* switch (ten) { case Clienti.Marrocco: @@ -7649,6 +7486,8 @@ namespace ApiPolo.Controllers break; } + */ + //man = await getManutenzioneByChiave(model, token); man = await getManutenzioneByChiave2(r, token); @@ -7697,7 +7536,7 @@ namespace ApiPolo.Controllers string newSerial = string.Empty; newSerial = await getSeriale(token); Rapp_New r = await fillRappNewChiudiManByInput(model, token, newSerial, _confLette); - + /* switch (ten) { case Clienti.Marrocco: @@ -8027,6 +7866,7 @@ namespace ApiPolo.Controllers default: break; } + */ man = await getManutenzioneByChiaveOut(model, token,r); output = fillManprogOut(man, ten); output.err_status_code = StatiRisposta.Ok; @@ -8068,8 +7908,8 @@ namespace ApiPolo.Controllers { if ((pre=await checkManutenzioneDaRilasciare(ten, model.pimpianto, model.picodint, model.pidatman)) !=null) { - //_prese = getPreseByTenant(ten); - //var pre = _prese.SingleOrDefault(t => t.picodazi.Equals(ten) && t.pimpianto.Equals(model.pimpianto) && t.picodint.Equals(model.picodint) && t.pidatman == model.pidatman); + //scrittura + /* switch (ten) { case Clienti.Marrocco: @@ -8171,8 +8011,8 @@ namespace ApiPolo.Controllers default: break; } + */ - //man = await getManutenzioneByChiave(model, token); man = await getManutenzioneByChiave2(pre, token); output = fillManprogOut(man, ten); @@ -8440,38 +8280,7 @@ namespace ApiPolo.Controllers } 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: #region inserimento tabella @@ -8488,21 +8297,16 @@ namespace ApiPolo.Controllers 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 = _LW_Buoni.Database.BeginTransaction()) { await _LW_Buoni.buoni.AddAsync(model2); await _LW_Buoni.SaveChangesAsync(); transaction.Commit(); } + */ + #endregion break; case Clienti.Tedesco: @@ -8528,13 +8332,15 @@ namespace ApiPolo.Controllers string base64String = Convert.ToBase64String(byteArray); modelsys.immagine = base64String; } - + //scrittura + /* using (var transaction = _Sys_Buoni.Database.BeginTransaction()) { await _Sys_Buoni.buoni.AddAsync(modelsys); await _Sys_Buoni.SaveChangesAsync(); transaction.Commit(); } + */ #endregion break; default: @@ -8669,6 +8475,7 @@ namespace ApiPolo.Controllers try { + /* switch (ten) { case Clienti.Sicilia: @@ -8722,7 +8529,7 @@ namespace ApiPolo.Controllers default: break; } - + */ co_out.err_status_code = StatiRisposta.Ok; return StatusCode(StatusCodes.Status200OK, co_out); @@ -8760,6 +8567,7 @@ namespace ApiPolo.Controllers co_out = fillCompoImpiaOUTByInput(t); try { + /* switch (ten) { case Clienti.Sicilia: @@ -8813,7 +8621,7 @@ namespace ApiPolo.Controllers default: break; } - + */ co_out.err_status_code = StatiRisposta.Ok; return StatusCode(StatusCodes.Status200OK, co_out); @@ -8850,62 +8658,7 @@ namespace ApiPolo.Controllers string ten2 = getClaimValueByToken(token, "tenant2"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); - //27/02/2025 aggiunta gestione Articoli - if (tenConf.Equals(Clienti.VT)) - { - _articoliTable = _VT_articoliTable.Articoli; - var listaFiltro = new List(); - - listaFiltro = await _articoliTable.Where(x => x.Azienda.Equals(ten2)).ToListAsync(); - - if (!string.IsNullOrEmpty(art)) - { - listaFiltro = await _articoliTable.Where(x => x.SlCodice.Contains(art)).ToListAsync(); - } - - if (!string.IsNullOrEmpty(desart)) - { - listaFiltro = await _articoliTable.Where(x => x.ArDesArt.Contains(desart)).ToListAsync(); - } - - if (!string.IsNullOrEmpty(maga)) - { - listaFiltro = await _articoliTable.Where(x => x.SlCodMag.Contains(maga)).ToListAsync(); - } - - List listaSaldiArt = new List(); - - foreach (Articoli a in listaFiltro) - { - Saldiart saldo = new Saldiart(); - - saldo.slcodice = a.SlCodice.TrimEnd(); - saldo.ardesart = a.ArDesArt.TrimEnd(); - saldo.slcodmag = a.SlCodMag.TrimEnd(); - saldo.slqtaper = a.SlQtAper; - saldo.amcodice = !string.IsNullOrEmpty(a.AmCodice) ? a.AmCodice.TrimEnd():string.Empty; - saldo.locodice = !string.IsNullOrEmpty(a.LoCodice) ? a.LoCodice.TrimEnd() : string.Empty; - saldo.licodlis = !string.IsNullOrEmpty(a.LiCodLis) ? a.LiCodLis.TrimEnd() : string.Empty; - saldo.licodart = !string.IsNullOrEmpty(a.LiCodArt) ? a.LiCodArt.TrimEnd() : string.Empty; - saldo.lidatatt = a.LiDatAtt; - saldo.liquanti = a.LiQuanti; - saldo.liprezzo = a.LiPrezzo; - saldo.liscont1 = a.LiScont1; - saldo.liscont2 = a.LiScont2; - saldo.liscont3 = a.LiScont3; - saldo.liscont4 = a.LiScont4; - saldo.gest_matr = a.Gest_Matr.TrimEnd(); - saldo.gest_lotti = a.Gest_Lotti.TrimEnd(); - saldo.desc_sup = a.Desc_sup.TrimEnd(); - - listaSaldiArt.Add(saldo); - } - - return StatusCode(StatusCodes.Status200OK, listaSaldiArt); - } - else - { _saldi = getSaldiartByTenant(ten); Configurazioni conf = await readConf(tenConf); int max_record = 0; @@ -8968,7 +8721,7 @@ namespace ApiPolo.Controllers } co = co.Take(max_record).ToList(); return StatusCode(StatusCodes.Status200OK, co); - } + } catch (Exception ex) @@ -9054,6 +8807,7 @@ namespace ApiPolo.Controllers try { + /* switch (ten) { case Clienti.Sicilia: @@ -9107,7 +8861,7 @@ namespace ApiPolo.Controllers default: break; } - + */ co_out.err_status_code = StatiRisposta.Ok; return StatusCode(StatusCodes.Status200OK, co_out); } @@ -11673,15 +11427,8 @@ namespace ApiPolo.Controllers { string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); - if(ten.Equals(Clienti.VT)) - { - ten = ten2; - _impianto = _VT_impia.Impia; - } - else - { - _impianto = getImpiantiByTenant(ten); - } + _impianto = getImpiantiByTenant(ten); + var l = await _impianto.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten)).ToListAsync(); if (!string.IsNullOrEmpty(codimp)) @@ -11722,15 +11469,8 @@ namespace ApiPolo.Controllers string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); string tecnico = getClaimValueByToken(token, "tccodice"); - if(ten.Equals(Clienti.VT)) - { - _sto_rapp = _VT_StoRapp.StoRapp; - ten = ten2; - } - else - { - _sto_rapp = getSto_RappByTenant(ten); - } + + _sto_rapp = getSto_RappByTenant(ten); var l = await _sto_rapp.Where(t => t.azienda_impianto != null && t.azienda_impianto.Equals(ten)).ToListAsync(); //var l = await _sto_rapp.Where(t => t.azienda_impianto != null && t.azienda_impianto.Equals(ten) && t.codice_impianto != null && t.codice_impianto.Equals(codimp)).ToListAsync(); @@ -11778,39 +11518,9 @@ namespace ApiPolo.Controllers } Anag aa = new Anag(); - switch (ten) - { - - case Clienti.VT: - string ten2 = getClaimValueByToken(token, "tenant2"); - _clientiVT = _VT_anag.Anag; - - var t = await _clientiVT.Where( - t => t.antipcon.Equals("C") - && t.andtobso == null - && t.ancodazi.Equals(ten2) - && t.ancodice.Equals(codcli) - ).ToListAsync(); - AnagVT a = t.First(); - aa.antipcon = a.antipcon; - aa.ancodice = a.ancodice; - aa.ancodfis = a.ancodfis; - aa.anpariva = a.anpariva; - aa.annumlis = a.annumlis; - aa.an_email = a.an_email; - aa.an_empec = a.an_empec; - aa.andescri = a.andescri; - aa.anindiri = a.anindiri; - aa.annumcel = a.annumcel; - aa.antelefo = a.antelefo; - aa.annumlis = a.annumlis; - break; - default: - _clienti = getClientiByTenant(ten); - var an = await _clienti.Where(t => t.ancodice == codcli).ToListAsync(); - aa = an.First(); - break; - } + _clienti = getClientiByTenant(ten); + var an = await _clienti.Where(t => t.ancodice == codcli).ToListAsync(); + aa = an.First(); return StatusCode(StatusCodes.Status200OK, aa); @@ -12076,43 +11786,7 @@ namespace ApiPolo.Controllers string ten2 = getClaimValueByToken(token, "tenant2"); string tecnico = getClaimValueByToken(token, "tccodice"); 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) - { - CommesseAdHoc_out c = new CommesseAdHoc_out(); - c = formattaCommessaVT(a); - ll.Add(c); - } - } - else if(ten.Equals(Clienti.Marrocco)) - { - _comm = getCommesseByTenant(ten); - var l = await _comm.OrderByDescending(t => t.ladatchi).ToListAsync(); - List commesse_filtrate = new List(); - _commDesc = _Marro_commDesc.Commdesc; - var commesse_tecnico = _commDesc.Where((t => t.latecsup!=null && t.latecsup.Equals(tecnico))).ToList(); - foreach(CommessaDesc c in commesse_tecnico) - { - var co = _comm.Where(t => t.laserial.Equals(c.laserial)).ToList(); - if(co!=null && co.Count > 0) - { - commesse_filtrate.Add(co.First()); - } - } - foreach(Commessa c in commesse_filtrate) - { - CommesseAdHoc_out co = new CommesseAdHoc_out(); - co=formattaCommessa(c); - ll.Add(co); - } - } - else - { + _comm = getCommesseByTenant(ten); var l = await _comm.OrderByDescending(t => t.ladatchi).ToListAsync(); foreach (Commessa c in l) @@ -12121,7 +11795,7 @@ namespace ApiPolo.Controllers co = formattaCommessa(c); ll.Add(co); } - } + return StatusCode(StatusCodes.Status200OK, ll); } @@ -12155,6 +11829,7 @@ namespace ApiPolo.Controllers { Timbratura t = await fillTimbratura(model, token); + /* switch (ten) { case Clienti.Sicilia: @@ -12232,6 +11907,8 @@ namespace ApiPolo.Controllers default: break; } + */ + tOut = fillTimbraturaOut(model, ten, t.id); tOut.err_status_code = StatiRisposta.Ok; return StatusCode(StatusCodes.Status200OK, tOut); @@ -12471,41 +12148,7 @@ namespace ApiPolo.Controllers //else //{ string ten = getClaimValueByToken(token, "tenant"); - if (ten.Equals(Clienti.VT)) - { - string ten2= getClaimValueByToken(token, "tenant2"); - _VT_Commesse = _VT_Comm.Comm; - var l = await _VT_Commesse.Where(t=>t.lacodazi.Equals(ten2)).ToListAsync(); - if (!string.IsNullOrEmpty(codimp)) - { - l = l.Where(t => t.imcodimp != null && t.imcodimp.Contains(codimp)).ToList(); - } - if (!string.IsNullOrEmpty(indirizzo_imp)) - { - l = l.Where(t => t.imindiri2 != null && t.imindiri2.ToUpper().Contains(indirizzo_imp.ToUpper())).ToList(); - } - if (!string.IsNullOrEmpty(cli)) - { - l = l.Where(t => t.andescri != null && t.andescri.ToUpper().Contains(cli.ToUpper())).ToList(); - } - if (!string.IsNullOrEmpty(comm)) - { - l = l.Where(t => t.lacodcom != null && t.lacodcom.ToUpper().Contains(comm.ToUpper())).ToList(); - } - l = l.Take(300).ToList(); - - foreach (CommesseVT i in l) - { - Output_Ricerca o = new Output_Ricerca(); - o = fillOutputRicercaVT(i); - lis.Add(o); - } - st = StatusCodes.Status200OK; - - } - else - { //string ten = getClaimValueByToken(token, "tenant"); _comm = getCommesseByTenant(ten); var l = await _comm.ToListAsync(); @@ -12534,11 +12177,7 @@ namespace ApiPolo.Controllers lis.Add(o); } st = StatusCodes.Status200OK; - //} - - - //return StatusCode(StatusCodes.Status200OK, lis); - } + } catch (Exception ex) { @@ -12570,29 +12209,7 @@ namespace ApiPolo.Controllers //else //{ string ten = getClaimValueByToken(token, "tenant"); - if (ten.Equals(Clienti.VT)) - { - string ten2 = getClaimValueByToken(token, "tenant2"); - var l = await _VT_impia.Impia.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten2)).ToListAsync(); - if (!string.IsNullOrEmpty(codimp)) - { - l = l.Where(t => t.imcodimp != null && t.imcodimp.Contains(codimp)).ToList(); - } - if (!string.IsNullOrEmpty(indirizzo_imp)) - { - l = l.Where(t => t.imindiri2 != null && t.imindiri2.ToUpper().Contains(indirizzo_imp.ToUpper())).ToList(); - } - l = l.Take(300).ToList(); - foreach (Impianto i in l) - { - Output_Ricerca o = new Output_Ricerca(); - o = fillOutputRicercaByImpianto(i); - lis.Add(o); - } - st = StatusCodes.Status200OK; - } - else - { + _impianto = getImpiantiByTenant(ten); var l = await _impianto.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten)).ToListAsync(); if (!string.IsNullOrEmpty(codimp)) @@ -12611,8 +12228,7 @@ namespace ApiPolo.Controllers lis.Add(o); } st = StatusCodes.Status200OK; - } - //} + } catch (Exception ex) { @@ -12669,86 +12285,6 @@ namespace ApiPolo.Controllers try { - if (ten.Equals(Clienti.VT)) - { - _VT_Commesse = _VT_Comm.Comm; - var l = await _VT_Commesse.Where(t => t.lacodazi.Equals(ten2)).ToListAsync(); - if (!string.IsNullOrEmpty(codimp)) - { - l = l.Where(t => t.imcodimp != null && t.imcodimp.ToUpper().Contains(codimp.ToUpper())).ToList(); - } - if (!string.IsNullOrEmpty(indirizzo_imp)) - { - l = l.Where(t => t.imindiri2 != null && t.imindiri2.ToUpper().Contains(indirizzo_imp.ToUpper())).ToList(); - } - if (!string.IsNullOrEmpty(cli)) - { - l = l.Where(t => t.andescri != null && t.andescri.ToUpper().Contains(cli.ToUpper())).ToList(); - } - if (!string.IsNullOrEmpty(comm)) - { - l = l.Where(t => t.lacodcom != null && t.lacodcom.ToUpper().Contains(comm.ToUpper())).ToList(); - } - l = l.Take(300).ToList(); - - foreach (CommesseVT i in l) - { - Output_Ricerca o = new Output_Ricerca(); - o = fillOutputRicercaVT(i); - lis.Add(o); - } - st = StatusCodes.Status200OK; - - } - else if(ten.Equals(Clienti.Marrocco)) - { - - // qui devo filtrare per tecnico capoogruppo come faccio nella ricerca commesse del timesheet - _comm = getCommesseByTenant(ten); - var l = await _comm.OrderByDescending(t => t.ladatchi).ToListAsync(); - List commesse_filtrate = new List(); - _commDesc = _Marro_commDesc.Commdesc; - var commesse_tecnico = _commDesc.Where((t => t.latecsup != null && t.latecsup.Equals(tecnico))).ToList(); - foreach (CommessaDesc c in commesse_tecnico) - { - var co = _comm.Where(t => t.laserial.Equals(c.laserial)).ToList(); - if (co != null && co.Count > 0) - { - commesse_filtrate.Add(co.First()); - } - } - if(commesse_filtrate.Count()==0) - { - commesse_filtrate = l; - } - if (!string.IsNullOrEmpty(codimp)) - { - commesse_filtrate = commesse_filtrate.Where(t => t.imcodimp != null && t.imcodimp.ToUpper().Contains(codimp.ToUpper())).ToList(); - } - if (!string.IsNullOrEmpty(indirizzo_imp)) - { - commesse_filtrate = commesse_filtrate.Where(t => t.imindiri2 != null && t.imindiri2.ToUpper().Contains(indirizzo_imp.ToUpper())).ToList(); - } - if (!string.IsNullOrEmpty(cli)) - { - commesse_filtrate = commesse_filtrate.Where(t => t.andescri != null && t.andescri.ToUpper().Contains(cli.ToUpper())).ToList(); - } - if (!string.IsNullOrEmpty(comm)) - { - commesse_filtrate = commesse_filtrate.Where(t => t.lacodcom != null && t.lacodcom.ToUpper().Contains(comm.ToUpper())).ToList(); - } - commesse_filtrate = commesse_filtrate.Take(300).ToList(); - - foreach (Commessa i in commesse_filtrate) - { - Output_Ricerca o = new Output_Ricerca(); - o = fillOutputRicerca(i); - lis.Add(o); - } - st = StatusCodes.Status200OK; - } - else - { //string ten = getClaimValueByToken(token, "tenant"); _comm = getCommesseByTenant(ten); var l = await _comm.ToListAsync(); @@ -12777,11 +12313,7 @@ namespace ApiPolo.Controllers lis.Add(o); } st = StatusCodes.Status200OK; - //} - - - //return StatusCode(StatusCodes.Status200OK, lis); - } + } catch (Exception ex) { @@ -12801,29 +12333,7 @@ namespace ApiPolo.Controllers //Radio Cliente, tipo 2, campi codimp e indirizzoImp try { - //string ten = getClaimValueByToken(token, "tenant"); - if (ten.Equals(Clienti.VT)) - { - var l = await _VT_impia.Impia.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten2)).ToListAsync(); - if (!string.IsNullOrEmpty(codimp)) - { - l = l.Where(t => t.imcodimp != null && t.imcodimp.ToUpper().Contains(codimp.ToUpper())).ToList(); - } - if (!string.IsNullOrEmpty(indirizzo_imp)) - { - l = l.Where(t => t.imindiri2 != null && t.imindiri2.ToUpper().Contains(indirizzo_imp.ToUpper())).ToList(); - } - l = l.Take(300).ToList(); - foreach (Impianto i in l) - { - Output_Ricerca o = new Output_Ricerca(); - o = fillOutputRicercaByImpianto(i); - lis.Add(o); - } - st = StatusCodes.Status200OK; - } - else - { + _impianto = getImpiantiByTenant(ten); var l = await _impianto.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten)).ToListAsync(); if (!string.IsNullOrEmpty(codimp)) @@ -12842,8 +12352,7 @@ namespace ApiPolo.Controllers lis.Add(o); } st = StatusCodes.Status200OK; - } - //} + } catch (Exception ex) { @@ -12862,25 +12371,7 @@ namespace ApiPolo.Controllers try { //Radio Cliente, tipo 2, campi cli - if (ten.Equals(Clienti.VT)) - { - var l = await _VT_impia.Impia.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten2)).ToListAsync(); - if (!string.IsNullOrEmpty(cli)) - { - l = l.Where(t => t.descCliente != null && t.descCliente.ToUpper().Contains(cli.ToUpper())).ToList(); - } - l = l.Take(300).ToList(); - foreach (Impianto i in l) - { - Output_Ricerca o = new Output_Ricerca(); - o = fillOutputRicercaByImpianto(i); - lis.Add(o); - } - st = StatusCodes.Status200OK; - } - else - { _impianto = getImpiantiByTenant(ten); var l = await _impianto.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten)).ToListAsync(); if (!string.IsNullOrEmpty(cli)) @@ -12895,7 +12386,7 @@ namespace ApiPolo.Controllers lis.Add(o); } st = StatusCodes.Status200OK; - } + } catch (Exception ex) { @@ -12984,8 +12475,8 @@ namespace ApiPolo.Controllers tablecodeProg = cpwarnNumChiamata.tablecode; warncodeProg = cpwarnNumChiamata.warncode; - _chiamateser = getChiamateSerialeByTenant(ten); - serialeChiamata = _chiamateser.First().pinumero; + //_chiamateser = getChiamateSerialeByTenant(ten); + //serialeChiamata = _chiamateser.First().pinumero; break; case Clienti.Siet: @@ -13046,28 +12537,7 @@ namespace ApiPolo.Controllers serialeLetto = cpwarnSerialeDecimal.autonum; break; - case Clienti.VT: - //string ten2 = getClaimValueByToken(token, "tenant2"); - _VT_prog = _VT_progtable.progr; - var t = await _VT_prog.Where(t => t.azienda.Equals(ten2)).ToListAsync(); - foreach (Progressivo ch in t) - { - string tipoprog = string.Empty; - tipoprog = ch.tipo_prog; - int? val = 0; - val = ch.val_prog; - if(!string.IsNullOrEmpty(tipoprog) && tipoprog.Equals("NUM_CHIAMA")) - { - progChiamata= Convert.ToString(val); - progressivoLetto = val; - } - if (!string.IsNullOrEmpty(tipoprog) && tipoprog.Equals("SER_CHIAMA")) - { - serialeChiamata = Convert.ToString(val); - serialeLetto = val; - } - } - break; + case Clienti.Syscom: cpwarnNumChiamataDecimal = await leggiCpwarnProgDecimal(ten, "prog\\NUMCHI\\", esercizio); progChiamata = Convert.ToString(cpwarnNumChiamataDecimal.autonum); @@ -13088,26 +12558,16 @@ namespace ApiPolo.Controllers //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) + if (!string.IsNullOrEmpty(codice_commessa)) { - case Clienti.VT: - if (!string.IsNullOrEmpty(codice_commessa)) - { - serial_comm = await leggiSerialeByCodCommessaVT(ten2, codice_commessa); - } - tOut.uscita = await inserimentoChiamata2(ten, tecnico, codimp, serialeChiamata, progChiamata, serial_comm,ten2, tenConf); - break; - default: - if(!string.IsNullOrEmpty(codice_commessa)) - { - serial_comm = await leggiSerialeByCodCommessa(ten, codice_commessa); - } - - - //tOut.uscita = await inserimentoChiamata2(ten, tecnico, codimp, serialeChiamata, progChiamata, serial_comm,ten); - tOut.uscita = await inserimentoChiamata2(tenConf, tecnico, codimp, serialeChiamata, progChiamata, serial_comm, ten, tenConf); - break; + serial_comm = await leggiSerialeByCodCommessa(ten, codice_commessa); } + + + //tOut.uscita = await inserimentoChiamata2(ten, tecnico, codimp, serialeChiamata, progChiamata, serial_comm,ten); + tOut.uscita = await inserimentoChiamata2(tenConf, tecnico, codimp, serialeChiamata, progChiamata, serial_comm, ten, tenConf); + + //aggiornamento seriali e progressivi string serialeUpdate = string.Empty; @@ -13167,17 +12627,7 @@ namespace ApiPolo.Controllers progressivoLetto = progressivoLetto + 1; tOut.prog_Out = await aggiornaprogressivoDecimal(ten, progressivoLetto, tablecodeProg, warncodeProg); break; - case Clienti.VT: - serialeLetto = serialeLetto + 1; - int val = Convert.ToInt32(serialeLetto); - await aggiornaprogressivoVT(ten2, "SER_CHIAMA", val); - serialeUpdate = tOut.uscita.chserial; - progressivoLetto = progressivoLetto + 1; - val = Convert.ToInt32(progressivoLetto); - await aggiornaprogressivoVT(ten2, "NUM_CHIAMA", val); - - break; case Clienti.Syscom: serialeUpdate = tOut.uscita.chserial; serialeLetto = serialeLetto + 1; @@ -13533,18 +12983,8 @@ namespace ApiPolo.Controllers private async Task getCodCliByImp(string tenant, string codiceImpianto) { string codiceCliente = string.Empty; - switch (tenant) - { - case Clienti.LW: - _impianto = _LW_impianti.Impia; - break; - case Clienti.Syscom: - _impianto = _Sys_impianti.Impia; - break; - default: - // code block - break; - } + _impianto = getImpiantiByTenant(tenant); + var i = await _impianto.Where(t => t.imcodimp!=null && t.imcodimp.Equals(codiceImpianto)).ToListAsync(); if(i!=null) { @@ -13584,32 +13024,17 @@ namespace ApiPolo.Controllers { ten = ten2; } - _chiatable = getChiamateTableByTenant(ten); - _chiatableTaskManager = getChiamateTableTaskManagerByTenant(ten); + //_chiatable = getChiamateTableByTenant(ten); + //_chiatableTaskManager = getChiamateTableTaskManagerByTenant(ten); - switch (ten) - { - case Clienti.VT: - _confLette = await readConf(ten2); - serialeTemplate = _confLette.seriale_template_chi; - tt = await _chiatable.Where(t => t.chcodazi != null && t.chcodazi.Equals(ten2) && t.chserial != null && t.chserial.Equals(serialeTemplate)).ToListAsync(); - break; - case Clienti.LW: - case Clienti.Syscom: - _confLette = await readConf(tenConf); - serialeTemplate = _confLette.seriale_template_chi; - ttTaskManager = await _chiatableTaskManager.Where(t => t.chcodazi != null && t.chcodazi.Equals(ten2) && t.chserial != null && t.chserial.Equals(serialeTemplate)).ToListAsync(); - break; - default: - _confLette = await readConf(tenConf); - serialeTemplate = _confLette.seriale_template_chi; - tt = await _chiatable.Where(t => t.chcodazi != null && t.chcodazi.Equals(ten) && t.chserial != null && t.chserial.Equals(serialeTemplate)).ToListAsync(); - break; - } - + _confLette = await readConf(tenConf); + serialeTemplate = _confLette.seriale_template_chi; + tt = await _chiatable.Where(t => t.chcodazi != null && t.chcodazi.Equals(ten) && t.chserial != null && t.chserial.Equals(serialeTemplate)).ToListAsync(); - + + //scrittura + /* switch (ten) { case Clienti.Marrocco: @@ -13701,7 +13126,7 @@ namespace ApiPolo.Controllers break; } - + */ _chiamate = getChiamateByTenant(ten); switch (ten) { @@ -13738,6 +13163,8 @@ namespace ApiPolo.Controllers string newSerial = string.Empty; newSerial = await getSeriale(token); Rapp_New r = await fillRappNewByInput(model, token, newSerial, _confLette); + //scrittura + /* switch (ten) { case Clienti.Marrocco: @@ -13823,6 +13250,7 @@ namespace ApiPolo.Controllers default: break; } + */ //restituisco la chiamata calltec = await getChiamataBySerial(model.seriale_chiamata, token); calltec_out = fillChiamateOut(calltec, ten); @@ -13842,6 +13270,8 @@ namespace ApiPolo.Controllers ChiamataSeriale_out cso = new ChiamataSeriale_out(); string cpcccchk = getCpccchk(10); + //scrittura + /* switch (tenant) { case Clienti.Marrocco: @@ -13903,6 +13333,7 @@ namespace ApiPolo.Controllers default: break; } + */ return cso; } private async Task aggiornaprogressivo(string tenant, float nuovoProg,string tablecode,string warncode) @@ -13910,6 +13341,8 @@ namespace ApiPolo.Controllers Prog_out cso = new Prog_out(); string cpcccchk = getCpccchk(10); + //scrittura + /* switch (tenant) { case Clienti.Marrocco: @@ -13955,6 +13388,7 @@ namespace ApiPolo.Controllers default: break; } + */ return cso; } private async Task aggiornaprogressivoDecimal(string tenant, decimal? nuovoProg, string tablecode, string warncode) @@ -13962,6 +13396,8 @@ namespace ApiPolo.Controllers Prog_out cso = new Prog_out(); string cpcccchk = getCpccchk(10); + //scrittura + /* switch (tenant) { case Clienti.Sicilia: @@ -14019,42 +13455,10 @@ namespace ApiPolo.Controllers default: break; } + */ return cso; } - private async Task aggiornaprogressivoVT(string tenant, string tipoProg, int valore) - { - Progressivo_out cso = new Progressivo_out(); - string cpcccchk = getCpccchk(10); - Progressivo model = new Progressivo(); - //model.tipo_prog = tipoProg; - //model.azienda = tenant; - //model.val_prog = valore; - var p =await _VT_progtable.progr.Where(t => t.azienda.Equals(tenant) && t.tipo_prog.Equals(tipoProg)).ToListAsync(); - model = p.FirstOrDefault(); - model.val_prog = valore; - try - { - - using (var transaction = _VT_progtable.Database.BeginTransaction()) - { - _VT_progtable.Entry(model).State = EntityState.Modified; - await _VT_progtable.SaveChangesAsync(); - transaction.Commit(); - } - - cso.azienda = model.azienda; - cso.tipo_prog = model.tipo_prog; - cso.val_prog = model.val_prog; - } - catch (Exception ex) - { - string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; - cso.err_detail = errmsg; - - } - return cso; - } private async Task leggiCpwarnSeriale(string tenant, string tablecode) { //autorun float @@ -14094,1857 +13498,10 @@ namespace ApiPolo.Controllers serial = ser.laserial; return serial; } - private async Task leggiSerialeByCodCommessaVT(string tenant, string codice_commessa) - { - string serial = string.Empty; - _VT_Commesse = _VT_Comm.Comm; - //var t = await _VT_Commesse.Where(t => t.lacodazi.Equals(tenant)).ToListAsync(); - var ser = await _VT_Commesse.Where(p => p.lacodcom != null && p.lacodcom.Equals(codice_commessa) && p.lacodazi.Equals(tenant)).FirstAsync(); - serial = ser.laserial; - return serial; - } #endregion - #region VIRTUAL TASK - /// Login iniziale return:ActionResult - [HttpPost("loginTechnicalVT")] - public async Task> loginTechnicalVT([FromBody] LoginModel model) - { - LoginOut o = new LoginOut(); - try - { - if (string.IsNullOrEmpty(model.Username) || string.IsNullOrEmpty(model.Password)) - { - o.err_detail = "Username e Password non possono essere vuoti."; - o.err_title = "Username e Password non possono essere vuoti."; - o.err_status_code = StatiRisposta.OperazioneNonAmmessa; - return StatusCode(StatusCodes.Status200OK, o); - } - else - { - _tecnici = _VT_tecnici.Tecnici; - //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 && t.tccodute==1).Take(1).ToListAsync(); - if (tecnico == null || (tecnico != null && tecnico.Count == 0)) - { - o.err_detail = "Username o Password non trovati."; - o.err_title = "Username o Password non trovati."; - o.err_status_code = StatiRisposta.OperazioneNonAmmessa; - return StatusCode(StatusCodes.Status404NotFound, o); - } - else - { - var authClaims = new List - { - new Claim(ClaimTypes.Name, model.Username), - new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), - new Claim("tenant", model.Tenant), - new Claim("tenant2", tecnico.First().tccodazi), - new Claim("tccodice", tecnico.First().tccodice), - }; - var authSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JWT:Secret"])); - var token = new JwtSecurityToken( - issuer: _configuration["JWT:ValidIssuer"], - audience: _configuration["JWT:ValidAudience"], - expires: DateTime.Now.AddMonths(3), - claims: authClaims, - signingCredentials: new SigningCredentials(authSigningKey, SecurityAlgorithms.HmacSha256) - ); - string tok = new JwtSecurityTokenHandler().WriteToken(token); - _token = tok; - - - o.Tok = tok; - o.Tcdescri = tecnico.First().Tcdescri; - o.Tccodice = tecnico.First().tccodice; - o.Tcsuper = tecnico.First().tcsuper; - o.Tenant = tecnico.First().tccodazi; - //o.tciden = tecnico.First().tciden; - - Conf cc = new Conf(); - //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; - cc.abilita_chiamate = _confLette.abilita_chiamate; - cc.abilita_barcode = _confLette.abilita_barcode; - - cc.abilita_manutenzioni = _confLette.abilita_manutenzioni; - cc.chiamate_accetta = _confLette.chiamate_accetta; - cc.chiamate_accetta_barcode = _confLette.chiamate_accetta_barcode; - cc.chiamate_accetta_offline = _confLette.chiamate_accetta_offline; - cc.chiamate_rifiuta = _confLette.chiamate_rifiuta; - cc.chiamate_rifiuta_barcode = _confLette.chiamate_rifiuta_barcode; - cc.chiamate_rifiuta_offline = _confLette.chiamate_rifiuta_offline; - cc.chiamate_chiudi_barcode = _confLette.chiamate_chiudi_barcode; - cc.chiamate_firma_barcode = _confLette.chiamate_firma_barcode; - cc.chiamate_chiudi_salva_barcode = _confLette.chiamate_chiudi_salva_barcode; - cc.chiamate_chiudi_salva_offline = _confLette.chiamate_chiudi_salva_offline; - - cc.manutenzioni_accetta = _confLette.manutenzioni_accetta; - cc.manutenzioni_rifiuta = _confLette.manutenzioni_rifiuta; - cc.manutenzioni_accetta_barcode = _confLette.manutenzioni_accetta_barcode; - cc.manutenzioni_accetta_offline = _confLette.manutenzioni_accetta_offline; - cc.manutenzioni_chiudi_barcode = _confLette.manutenzioni_chiudi_barcode; - cc.manutenzioni_firma_barcode = _confLette.manutenzioni_firma_barcode; - cc.manutenzioni_chiudi_salva_barcode = _confLette.manutenzioni_chiudi_salva_barcode; - cc.manutenzioni_chiudi_salva_offline = _confLette.manutenzioni_chiudi_salva_offline; - - cc.dpi_checkbox = _confLette.dpi_checkbox; - - cc.anagrafica = _confLette.anagrafica; - cc.stato_finale = _confLette.stato_finale; - cc.descrizione_intervento = _confLette.descrizione_intervento; - cc.composizione_impianto = _confLette.composizione_impianto; - cc.note_intervento = _confLette.note_intervento; - cc.esito_intervento = _confLette.esito_intervento; - cc.ora_inizio_fine = _confLette.ora_inizio_fine; - cc.materiali = _confLette.materiali; - cc.diritto_chiamata = _confLette.diritto_chiamata; - cc.manodopera = _confLette.manodopera; - cc.spese_viaggio = _confLette.spese_viaggio; - cc.tipo_pagamento = _confLette.tipo_pagamento; - cc.note_pagamento = _confLette.note_pagamento; - cc.causale = _confLette.causale; - - cc.time_sheet = _confLette.time_sheet; - cc.time_sheet_offline = _confLette.time_sheet_offline; - cc.costo_orario = _confLette.costo_orario; - cc.ftp_port = _confLette.ftp_port; - cc.manutenzioni_rifiuta_barcode = _confLette.manutenzioni_rifiuta_barcode; - cc.storico = _confLette.storico; - cc.storico_tecnico = _confLette.storico_tecnico; - cc.storico_interventi = _confLette.storico_interventi; - cc.storico_impianto = _confLette.storico_impianto; - cc.ricerca_impianti = _confLette.ricerca_impianti; - - cc.ora_inizio_fine_automatica = _confLette.ora_inizio_fine_automatica; - cc.stampa_orario = _confLette.stampa_orario; - cc.intestazione_stampa = _confLette.intestazione_stampa; - cc.seriale_template_chi = _confLette.seriale_template_chi; - cc.abilita_inserimento_chiamate = _confLette.abilita_inserimento_chiamate; - - o.Config = cc; - - //cerco le aziende collegate - List l = new List(); - string ten = model.Tenant; - bool bCercaAzcoll = false; - switch (ten) - { - case Clienti.Discovery: - bCercaAzcoll = 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); - } - - } - } - o.aziende_coll = l; - } - return StatusCode(StatusCodes.Status200OK, o); - } - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - o.err_detail = err; - o.err_title = err; - o.err_status_code = StatiRisposta.ErroreInterno; - return StatusCode(StatusCodes.Status500InternalServerError, o); - } - - } - - /// VIRTUAL TASK: Tecnici per azienda - [HttpGet("tecniciList")] - public async Task>> tecniciList(string token) - { - try - { - List ilist = new List(); - string ten = getClaimValueByToken(token, "tenant2"); - string tecnico = getClaimValueByToken(token, "tccodice"); - _tecTable = _VT_tectable.Tectable; - - - var t = await _tecTable.Where( - t => t.tccodazi.Equals(ten) - && t.tcuser != null - ).ToListAsync(); - - foreach (TecniciTable ch in t) - { - ilist.Add(ch); - } - return StatusCode(StatusCodes.Status200OK, ilist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); - } - } - /// VIRTUAL TASK: Tecnici per azienda - [HttpGet("tecniciListAll")] - public async Task>> tecniciListAll(string usr,string pwd) - { - try - { - List ilist = new List(); - _tecTable = _VT_tectable.Tectable; - var t = await _tecTable.Where( - t => t.tcpwd.Equals(pwd) - && t.tcuser.Equals(usr) - ).ToListAsync(); - - foreach (TecniciTable ch in t) - { - ilist.Add(ch); - } - return StatusCode(StatusCodes.Status200OK, ilist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); - } - } - /// VIRTUAL TASK: crea un tecnico return:ActionResult - [HttpPost] - [Route("tecnici/add")] - public async Task> addtecnico([FromBody] TecniciTable model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - model.tccodazi = ten; - try - { - using (var transaction = _VT_tectable.Database.BeginTransaction()) - { - await _VT_tectable.Tectable.AddAsync(model); - await _VT_tectable.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); - } - } - - /// VIRTUAL TASK: cancella un tecnico return:ActionResult - [HttpPost] - [Route("tecnici/del")] - public async Task> deltecnico(string codice, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - _tecTable = _VT_tectable.Tectable; - var t = await _tecTable.Where(t => t.tccodice == codice && t.tccodazi == ten).ToListAsync(); - - TecniciTable model = t.First(); - model.tcdatobs = DateTime.Now; - try - { - using (var transaction = _VT_tectable.Database.BeginTransaction()) - { - _VT_tectable.Entry(model).State = EntityState.Modified; - await _VT_tectable.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); - } - } - - /// VIRTUAL TASK: modifica un tecnico return:ActionResult - [HttpPost] - [Route("tecnici/mod")] - public async Task> modtecnico([FromBody] TecniciTable model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - model.tccodazi = ten; - try - { - using (var transaction = _VT_tectable.Database.BeginTransaction()) - { - _VT_tectable.Entry(model).State = EntityState.Modified; - await _VT_tectable.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); - } - } - - - /// VIRTUAL TASK: Codici di chiusura - [HttpGet("chiusureVtList")] - public async Task>> chiusureVtList(string token) - { - try - { - List ilist = new List(); - string ten = getClaimValueByToken(token, "tenant2"); - string tecnico = getClaimValueByToken(token, "tccodice"); - - _chiuTable = _VT_chiutable.Chiutable; - - var t = await _chiuTable.Where(t => t.cccodazi.Equals(ten) && t.codtobso==null).ToListAsync(); - - foreach (ChiusureTable ch in t) - { - ilist.Add(ch); - } - return StatusCode(StatusCodes.Status200OK, ilist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); - } - } - - /// VIRTUAL TASK: crea un codice chiusura return:ActionResult - [HttpPost] - [Route("chiusure/add")] - public async Task> addchiusura([FromBody] ChiusureTable model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - model.cccodazi = ten; - try - { - using (var transaction = _VT_chiutable.Database.BeginTransaction()) - { - await _VT_chiutable.Chiutable.AddAsync(model); - await _VT_chiutable.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); - } - } - - /// VIRTUAL TASK: cancella un codice chiusura return:ActionResult - [HttpPost] - [Route("chiusure/del")] - public async Task> delchiusura(string codice, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - _chiuTable = _VT_chiutable.Chiutable; - var cod = await _chiuTable.Where(t => t.cccodice == codice && t.cccodazi == ten ).ToListAsync(); - - ChiusureTable model = cod.First(); - model.codtobso = DateTime.Now; - try - { - //using (var transaction = _VT_chiutable.Database.BeginTransaction()) - //{ - // _VT_chiutable.Entry(model).State = EntityState.Deleted; - // await _VT_chiutable.SaveChangesAsync(); - // transaction.Commit(); - //} - using (var transaction = _VT_chiutable.Database.BeginTransaction()) - { - _VT_chiutable.Entry(model).State = EntityState.Modified; - await _VT_chiutable.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); - } - } - - /// VIRTUAL TASK: modifica un codice chiusura return:ActionResult - [HttpPost] - [Route("chiusure/mod")] - public async Task> modchiusura([FromBody] ChiusureTable model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - model.cccodazi = ten; - try - { - using (var transaction = _VT_chiutable.Database.BeginTransaction()) - { - _VT_chiutable.Entry(model).State = EntityState.Modified; - await _VT_chiutable.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); - } - } - - /// VIRTUAL TASK: anagrafiche clienti per azienda - [HttpGet("anagraficheList")] - public async Task>> anagraficheList(string token) - { - try - { - List ilist = new List(); - string ten = getClaimValueByToken(token, "tenant2"); - string tecnico = getClaimValueByToken(token, "tccodice"); - _clientiVT = _VT_anag.Anag; - - var t = await _clientiVT.Where( - t => t.antipcon.Equals("C") - && t.andtobso == null - && t.ancodazi.Equals(ten) - ).ToListAsync(); - - foreach (AnagVT ch in t) - { - ilist.Add(ch); - } - return StatusCode(StatusCodes.Status200OK, ilist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); - } - } - - /// VIRTUAL TASK: crea una anagrafica return:ActionResult - [HttpPost] - [Route("anagrafiche/add")] - public async Task> addAnagrafica([FromBody] AnagTable model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - - model.annumlis = null; - model.andtobso = null; - model.ancodazi = ten; - try - { - using (var transaction = _VT_anagtable.Database.BeginTransaction()) - { - await _VT_anagtable.Anagtable.AddAsync(model); - await _VT_anagtable.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); - } - } - /// VIRTUAL TASK: crea una anagrafica return:ActionResult - [HttpPost] - [Route("anagrafiche/addCommImp")] - public async Task> addAnagraficaCommessaImpianto([FromBody] AnagCommImp model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - - model.cli.annumlis = null; - model.cli.andtobso = null; - model.cli.ancodazi = ten; - model.cli.antipcon = "C"; - model.imp.imcodazi = ten; - string ten2 = getClaimValueByToken(token, "tenant2"); - model.comm.latipcli = "C"; - model.comm.lacodazi = ten2; - - - try - { - - var strategy = _VT_anagtable.Database.CreateExecutionStrategy(); - await strategy.ExecuteAsync(async () => - { - - using var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled); - await _VT_anagtable.Anagtable.AddAsync(model.cli); - await _VT_impiatable.Impia.AddAsync(model.imp); - await _VT_CommTable.CommTable.AddAsync(model.comm); - - await _VT_anagtable.SaveChangesAsync(); - await _VT_impiatable.SaveChangesAsync(); - await _VT_CommTable.SaveChangesAsync(); - - scope.Complete(); - }); - - - //await _VT_anagtable.Anagtable.AddAsync(model.cli); - //await _VT_anagtable.SaveChangesAsync(); - - ////step 1: INSERISCO IMPIANTO - //_VT_impiatable.Database.UseTransaction(transaction.GetDbTransaction()); - //await _VT_impiatable.Impia.AddAsync(model.imp); - //await _VT_impiatable.SaveChangesAsync(); - - ////step 2: inserimento commessa - //_VT_CommTable.Database.UseTransaction(transaction.GetDbTransaction()); - //await _VT_CommTable.CommTable.AddAsync(model.comm); - //await _VT_CommTable.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); - } - } - /// VIRTUAL TASK: modifica una anagrafica return:ActionResult - [HttpPost] - [Route("anagrafiche/mod")] - public async Task> modAnagrafica([FromBody] AnagTable model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - model.ancodazi = ten; - try - { - using (var transaction = _VT_anagtable.Database.BeginTransaction()) - { - _VT_anagtable.Entry(model).State = EntityState.Modified; - await _VT_anagtable.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); - } - } - - /// VIRTUAL TASK: cancella una anagrafica (valorizza data obsolescenza) return:ActionResult - [HttpPost] - [Route("anagrafiche/del")] - public async Task> delAnagrafica([FromBody] AnagTable model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - model.ancodazi = ten; - model.andtobso = DateTime.Now; - try - { - using (var transaction = _VT_anagtable.Database.BeginTransaction()) - { - _VT_anagtable.Entry(model).State = EntityState.Modified; - await _VT_anagtable.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); - } - } - - /// VIRTUAL TASK: rapp_new per azienda - [HttpGet("rappnewList")] - public async Task>> rappnewList(string token) - { - try - { - List ilist = new List(); - string ten = getClaimValueByToken(token, "tenant2"); - string tecnico = getClaimValueByToken(token, "tccodice"); - _rapp_new_view = _VT_rapp.Rapps; - - var t = await _rapp_new_view.Where(t => t.azienda_chiamata.Equals(ten)).Take(100).ToListAsync(); - - foreach (Rapp_New_View ch in t) - { - ilist.Add(ch); - } - return StatusCode(StatusCodes.Status200OK, ilist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); - } - } - - /// VIRTUAL TASK: crea una rappnew return:ActionResult - [HttpPost] - [Route("rappnew/add")] - public async Task> addRappnew([FromBody] Rapp_New model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - model.azienda_chiamata = ten; - model.azienda_impianto = ten; - model.azienda_tecnico = ten; - try - { - using (var transaction = _VT_rapptable.Database.BeginTransaction()) - { - await _VT_rapptable.Rapps.AddAsync(model); - await _VT_rapptable.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); - } - } - - /// VIRTUAL TASK: modifica una anagrafica return:ActionResult - [HttpPost] - [Route("rappnew/mod")] - public async Task> modRappnew([FromBody] Rapp_New model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - model.azienda_chiamata = ten; - model.azienda_impianto = ten; - model.azienda_tecnico = ten; - try - { - using (var transaction = _VT_rapptable.Database.BeginTransaction()) - { - _VT_rapptable.Entry(model).State = EntityState.Modified; - await _VT_rapptable.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); - } - } - - /// VIRTUAL TASK: cancella una rapp_new return:ActionResult - [HttpPost] - [Route("rappnew/del")] - public async Task> delRappnew(string serialeRapportino, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - _rapp_new = _VT_rapptable.Rapps; - var t = await _rapp_new.Where(t => t.seriale_rapportino.Equals(serialeRapportino) && t.azienda_chiamata.Equals(ten)).ToListAsync(); - - Rapp_New model = t.First(); - try - { - using (var transaction = _Marro_rapp.Database.BeginTransaction()) - { - _Marro_rapp.Entry(model).State = EntityState.Deleted; - await _Marro_rapp.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); - } - } - - /// VIRTUAL TASK: impianti per azienda - [HttpGet("impiantiList")] - public async Task>> impiantiList(string token) - { - try - { - List ilist = new List(); - string ten = getClaimValueByToken(token, "tenant2"); - string tecnico = getClaimValueByToken(token, "tccodice"); - _impianto = _VT_impia.Impia; - - var t = await _impianto.Where(t => t.imcodazi.Equals(ten)).ToListAsync(); - - foreach (Impianto ch in t) - { - ilist.Add(ch); - } - return StatusCode(StatusCodes.Status200OK, ilist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); - } - } - - /// VIRTUAL TASK: impianti per azienda - [HttpGet("impiantiListMngr")] - public async Task>> impiantiListMngr(string token) - { - try - { - List ilist = new List(); - string ten = getClaimValueByToken(token, "tenant2"); - string tecnico = getClaimValueByToken(token, "tccodice"); - _impianto = _VT_impiaMngr.Impia; - - var t = await _impianto.Where(t => t.imcodazi.Equals(ten)).ToListAsync(); - - foreach (Impianto ch in t) - { - ilist.Add(ch); - } - return StatusCode(StatusCodes.Status200OK, ilist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); - } - } - - /// VIRTUAL TASK: crea un impianto return:ActionResult - [HttpPost] - [Route("impianti/add")] - public async Task> addImpianto([FromBody] ImpiantoTable model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - model.imcodazi = ten; - - try - { - using (var transaction = _VT_impiatable.Database.BeginTransaction()) - { - await _VT_impiatable.Impia.AddAsync(model); - await _VT_impiatable.SaveChangesAsync(); - transaction.Commit(); - } - - - return StatusCode(StatusCodes.Status200OK, model); - } - catch (Exception ex) - { - string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; - //co_out.err_title = ex.Message; - //co_out.err_detail = errmsg; - //co_out.err_status_code = StatiRisposta.ErroreInterno; - return StatusCode(StatusCodes.Status500InternalServerError, errmsg); - } - //return co_out; - } - - /// VIRTUAL TASK: modifica un impianto return:ActionResult - [HttpPost] - [Route("impianto/mod")] - public async Task> modImpianto([FromBody] ImpiantoTable model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - model.imcodazi = ten; - - try - { - using (var transaction = _VT_impiatable.Database.BeginTransaction()) - { - _VT_impiatable.Entry(model).State = EntityState.Modified; - await _VT_impiatable.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); - } - } - - /// VIRTUAL TASK: cancella un impianto return:ActionResult - [HttpPost] - [Route("impianto/del")] - public async Task> delImpianto(string imcodimp, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - _impiaTable = _VT_impiatable.Impia; - var t = await _impiaTable.Where(t => t.imcodimp.Equals(imcodimp) && t.imcodazi.Equals(ten)).ToListAsync(); - - ImpiantoTable model = t.First(); - model.imfinatt = DateTime.Now; - try - { - using (var transaction = _VT_impiatable.Database.BeginTransaction()) - { - _VT_impiatable.Entry(model).State = EntityState.Modified; - await _VT_impiatable.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); - } - } - - /// VIRTUAL TASK: chiamate per azienda - [HttpGet("chiamateList")] - public async Task>> chiamateList(string token) - { - try - { - List ilist = new List(); - string ten = getClaimValueByToken(token, "tenant2"); - string tecnico = getClaimValueByToken(token, "tccodice"); - _chiamate = _VT_chia.Chiamate; - - var t = await _chiamate.Where(t => t.chcodazi.Equals(ten)).ToListAsync(); - - foreach (Chiamate ch in t) - { - ilist.Add(ch); - } - return StatusCode(StatusCodes.Status200OK, ilist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); - } - } - - /// VIRTUAL TASK: chiamate per azienda - [HttpGet("chiamateListMngr")] - public async Task>> chiamateListMngr(string token) - { - try - { - List ilist = new List(); - string ten = getClaimValueByToken(token, "tenant2"); - string tecnico = getClaimValueByToken(token, "tccodice"); - _chiamate = _VT_chiaMngr.Chiamate; - - var t = await _chiamate.Where(t => t.chcodazi.Equals(ten)).ToListAsync(); - - foreach (Chiamate ch in t) - { - ilist.Add(ch); - } - return StatusCode(StatusCodes.Status200OK, ilist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); - } - } - - /// VIRTUAL TASK: crea una chiamata return:ActionResult - [HttpPost] - [Route("chiamata/add")] - public async Task> addChiamata([FromBody] ChiamateTable model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - model.chcodazi = ten; - try - { - using (var transaction = _VT_chiatable.Database.BeginTransaction()) - { - await _VT_chiatable.Chi.AddAsync(model); - await _VT_chiatable.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); - } - } - - /// VIRTUAL TASK: modifica una chiamata return:ActionResult - [HttpPost] - [Route("chiamata/mod")] - public async Task> modChiamata([FromBody] ChiamateTable model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - model.chcodazi = ten; - - try - { - using (var transaction = _VT_chiatable.Database.BeginTransaction()) - { - _VT_chiatable.Entry(model).State = EntityState.Modified; - await _VT_chiatable.SaveChangesAsync(); - transaction.Commit(); - } - return StatusCode(StatusCodes.Status200OK, model); - } - catch (Exception ex) - { - string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; - //co_out.err_title = ex.Message; - //co_out.err_detail = errmsg; - //co_out.err_status_code = StatiRisposta.ErroreInterno; - return StatusCode(StatusCodes.Status500InternalServerError, errmsg); - } - //return co_out; - } - - /// VIRTUAL TASK: cancella una chiamata return:ActionResult - [HttpPost] - [Route("chiamata/del")] - public async Task> delChiamata(string chserial, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - _chiatable = _VT_chiatable.Chi; - var t = await _chiatable.Where(t => t.chserial.Equals(chserial) && t.chcodazi.Equals(ten)).ToListAsync(); - - ChiamateTable model = t.First(); - try - { - using (var transaction = _VT_chiatable.Database.BeginTransaction()) - { - _VT_chiatable.Entry(model).State = EntityState.Deleted; - await _VT_chiatable.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); - } - } - - /// VIRTUAL TASK: progressivi per azienda - [HttpGet("progressiviList")] - public async Task>> progressiviList(string token) - { - try - { - List ilist = new List(); - string ten = getClaimValueByToken(token, "tenant2"); - string tecnico = getClaimValueByToken(token, "tccodice"); - _VT_prog = _VT_progtable.progr; - - var t = await _VT_prog.Where(t => t.azienda.Equals(ten)).ToListAsync(); - - foreach (Progressivo ch in t) - { - ilist.Add(ch); - } - return StatusCode(StatusCodes.Status200OK, ilist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); - } - } - - /// VIRTUAL TASK: modifica un progressivo return:ActionResult - [HttpPost] - [Route("progressivo/mod")] - public async Task> modProgressivo([FromBody] Progressivo model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - model.azienda = ten; - try - { - using (var transaction = _VT_progtable.Database.BeginTransaction()) - { - _VT_progtable.Entry(model).State = EntityState.Modified; - await _VT_progtable.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); - } - } - - /// VIRTUAL TASK: dati azienda - [HttpGet("aziendeList")] - public async Task>> aziendeList(string token) - { - try - { - List ilist = new List(); - string ten = getClaimValueByToken(token, "tenant2"); - string tecnico = getClaimValueByToken(token, "tccodice"); - _azi_coll = _VT_azi.Azi; - - var t = await _azi_coll.Where(t => t.pirifazi.Equals(ten)).ToListAsync(); - - foreach (AziendaRif ch in t) - { - ilist.Add(ch); - } - return StatusCode(StatusCodes.Status200OK, ilist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); - } - } - - /// VIRTUAL TASK: crea una azienda return:ActionResult - [HttpPost] - [Route("azienda/add")] - public async Task> addAzienda([FromBody] AziendaRif model, string token) - { - string ten = getClaimValueByToken(token, "tenant"); - string ten2 = getClaimValueByToken(token, "tenant2"); - model.piazihoc = ten; - model.pirifazi = ten2; - _confLette = await readConf(ten2); - try - { - using (var transaction = _VT_azi.Database.BeginTransaction()) - { - await _VT_azi.Azi.AddAsync(model); - await _VT_azi.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); - } - } - - /// VIRTUAL TASK: modifica un progressivo return:ActionResult - [HttpPost] - [Route("azienda/mod")] - public async Task> modAzienda([FromBody] AziendaRif model, string token) - { - string ten = getClaimValueByToken(token, "tenant"); - string ten2 = getClaimValueByToken(token, "tenant2"); - model.piazihoc = ten; - model.pirifazi = ten2; - try - { - using (var transaction = _VT_azi.Database.BeginTransaction()) - { - _VT_azi.Entry(model).State = EntityState.Modified; - await _VT_azi.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); - } - } - - /// VIRTUAL TASK: cancella una azienda return:ActionResult - [HttpPost] - [Route("azienda/del")] - public async Task> delAzienda(string picodtec, string token) - { - string ten = getClaimValueByToken(token, "tenant"); - string ten2 = getClaimValueByToken(token, "tenant2"); - - _azi_coll = _VT_azi.Azi; - var t = await _azi_coll.Where(t => t.piazihoc.Equals(ten) && t.pirifazi.Equals(ten2) && t.picodtec.Equals(picodtec)).ToListAsync(); - - AziendaRif model = t.First(); - try - { - using (var transaction = _VT_azi.Database.BeginTransaction()) - { - _VT_azi.Entry(model).State = EntityState.Deleted; - await _VT_azi.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); - } - } - - - /// VIRTUAL TASK: registrazioni - [HttpGet("registrazioniList")] - public async Task>> registrazioniList() - { - try - { - List ilist = new List(); - //string ten = getClaimValueByToken(token, "tenant2"); - //string tecnico = getClaimValueByToken(token, "tccodice"); - _VT_regi = _VT_reg.Reg; - - //var t = await _azi_coll.Where(t => t.pirifazi.Equals(ten)).ToListAsync(); - - foreach (Registrazione ch in _VT_regi) - { - ilist.Add(ch); - } - return StatusCode(StatusCodes.Status200OK, ilist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); - } - } - - /// VIRTUAL TASK: crea una registrazione return:ActionResult - [HttpPost] - [Route("registrazioni/add")] - public async Task> addRegistrazione([FromBody] Registrazione model) - { - try - { - using (var transaction = _VT_reg.Database.BeginTransaction()) - { - await _VT_reg.Reg.AddAsync(model); - await _VT_reg.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); - } - } - - /// VIRTUAL TASK: modifica una registrazione return:ActionResult - [HttpPost] - [Route("registrazioni/mod")] - public async Task> modregistrazione([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()) - { - _VT_reg.Entry(model).State = EntityState.Modified; - await _VT_reg.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); - } - } - - /// VIRTUAL TASK: cancella una registrazione return:ActionResult - [HttpPost] - [Route("registrazioni/del")] - public async Task> delRegistrazione(int Id) - { - //string ten = getClaimValueByToken(token, "tenant"); - //string ten2 = getClaimValueByToken(token, "tenant2"); - - _VT_regi = _VT_reg.Reg; - var t = await _VT_regi.Where(t => t.Id==Id ).ToListAsync(); - - Registrazione model = t.First(); - try - { - using (var transaction = _VT_reg.Database.BeginTransaction()) - { - _VT_reg.Entry(model).State = EntityState.Deleted; - await _VT_reg.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); - } - } - - /// VIRTUAL TASK: registrazioni - [HttpGet("AziendePresentiList")] - public async Task>> AziendePresentiList() - { - try - { - List ilist = new List(); - //string ten = getClaimValueByToken(token, "tenant2"); - //string tecnico = getClaimValueByToken(token, "tccodice"); - _VT_AziPresenti = _VT_AziPres.Aziende; - - //var t = await _azi_coll.Where(t => t.pirifazi.Equals(ten)).ToListAsync(); - - foreach (AziendaPres ch in _VT_AziPresenti) - { - ilist.Add(ch); - } - return StatusCode(StatusCodes.Status200OK, ilist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); - } - } - - - /// VIRTUAL TASK: commesse - [HttpGet("commesseList")] - public async Task>> commesseList(string token) - { - try - { - List ilist = new List(); - string ten = getClaimValueByToken(token, "tenant2"); - //string tecnico = getClaimValueByToken(token, "tccodice"); - _VT_Commesse = _VT_Comm.Comm; - - var t = await _VT_Commesse.Where(t => t.lacodazi.Equals(ten)).ToListAsync(); - - foreach (CommesseVT ch in t) - { - ilist.Add(ch); - } - return StatusCode(StatusCodes.Status200OK, ilist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); - } - } - - /// VIRTUAL TASK: crea una commessa return:ActionResult - [HttpPost] - [Route("commesseVT/add")] - public async Task> addCommessaVT([FromBody] CommesseVT_Table model, string token) - { - string ten = getClaimValueByToken(token, "tenant"); - string ten2 = getClaimValueByToken(token, "tenant2"); - model.latipcli = "C"; - model.lacodazi = ten2; - try - { - using (var transaction = _VT_CommTable.Database.BeginTransaction()) - { - await _VT_CommTable.CommTable.AddAsync(model); - await _VT_CommTable.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); - } - } - - /// VIRTUAL TASK: modifica una commessa return:ActionResult - [HttpPost] - [Route("commesseVT/mod")] - public async Task> modCommessaVT([FromBody] CommesseVT_Table model, string token) - { - string ten = getClaimValueByToken(token, "tenant"); - string ten2 = getClaimValueByToken(token, "tenant2"); - - try - { - using (var transaction = _VT_CommTable.Database.BeginTransaction()) - { - _VT_CommTable.Entry(model).State = EntityState.Modified; - await _VT_CommTable.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); - } - } - - /// VIRTUAL TASK: cancella una commessa (valorizza data obsolescenza) return:ActionResult - [HttpPost] - [Route("commesseVT/del")] - public async Task> delCommessaVT([FromBody] CommesseVT_Table model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - - model.ladatchi = DateTime.Now; - try - { - using (var transaction = _VT_CommTable.Database.BeginTransaction()) - { - _VT_CommTable.Entry(model).State = EntityState.Modified; - await _VT_CommTable.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); - } - } - - - /// VIRTUAL TASK: dati Azienda - [HttpGet("datiaziendaList")] - public async Task>> datiaziendaList(string token) - { - try - { - List ilist = new List(); - string ten = getClaimValueByToken(token, "tenant2"); - //string tecnico = getClaimValueByToken(token, "tccodice"); - _VT_DatiAzi =_VT_DatiAzienda.Dati; - - var t = await _VT_DatiAzi.Where(t => t.azienda.Equals(ten)).ToListAsync(); - - foreach (DatiAzienda ch in t) - { - ilist.Add(ch); - } - return StatusCode(StatusCodes.Status200OK, ilist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); - } - } - - /// VIRTUAL TASK: crea dati azienda return:ActionResult - [HttpPost] - [Route("datiazienda/add")] - public async Task> addDatiAzienda([FromBody] DatiAzienda model, string token) - { - string ten = getClaimValueByToken(token, "tenant"); - string ten2 = getClaimValueByToken(token, "tenant2"); - _confLette = await readConf(ten2); - //model.latipcli = "C"; - //model.lacodazi = ten2; - try - { - using (var transaction = _VT_DatiAzienda.Database.BeginTransaction()) - { - await _VT_DatiAzienda.Dati.AddAsync(model); - await _VT_DatiAzienda.SaveChangesAsync(); - transaction.Commit(); - } - //devo fare la copia del logo e metterlo nella cartella del server a partire dal logo scritto in tabella - model = await readImgAndSave(model.azienda, model.tecnico, _confLette.path_buoni); - - return StatusCode(StatusCodes.Status200OK, model); - } - catch (Exception ex) - { - string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, errmsg); - } - } - - /// VIRTUAL TASK: modifica una commessa return:ActionResult - [HttpPost] - [Route("datiazienda/mod")] - public async Task> modDatiAzienda([FromBody] DatiAzienda model, string token) - { - string ten = getClaimValueByToken(token, "tenant"); - string ten2 = getClaimValueByToken(token, "tenant2"); - - try - { - using (var transaction = _VT_DatiAzienda.Database.BeginTransaction()) - { - _VT_DatiAzienda.Entry(model).State = EntityState.Modified; - await _VT_DatiAzienda.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); - } - } - - /// VIRTUAL TASK: cancella una dati azienda return:ActionResult - [HttpPost] - [Route("datiazienda/del")] - public async Task> delDatiAzienda(string azienda, string tecnico) - { - //string ten = getClaimValueByToken(token, "tenant"); - //string ten2 = getClaimValueByToken(token, "tenant2"); - - _VT_DatiAzi = _VT_DatiAzienda.Dati; - var t = await _VT_DatiAzi.Where(t => t.azienda.Equals(azienda) && t.tecnico.Equals(tecnico)).ToListAsync(); - - DatiAzienda model = t.First(); - try - { - using (var transaction = _VT_DatiAzienda.Database.BeginTransaction()) - { - _VT_DatiAzienda.Entry(model).State = EntityState.Deleted; - await _VT_DatiAzienda.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); - } - } - - /// VIRTUAL TASK: cancella una dati azienda return:ActionResult - [HttpPost] - [Route("datiazienda/saveFile")] - public async Task> saveFileDatiAzienda(string azienda, string tecnico, string pathSrv) - { - DatiAzienda model=new DatiAzienda(); - try - { - model = await readImgAndSave(azienda,tecnico,pathSrv); - return StatusCode(StatusCodes.Status200OK, model); - } - catch (Exception ex) - { - string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, errmsg); - } - } - - /// VIRTUAL TASK: legge e salva su server return:ActionResult - private async Task readImgAndSave(string azienda, string tecnico, string pathSrv) - { - _VT_DatiAzi = _VT_DatiAzienda.Dati; - var t = await _VT_DatiAzi.Where(t => t.azienda.Equals(azienda) && t.tecnico.Equals(tecnico)).ToListAsync(); - - DatiAzienda model = t.First(); - - string path = string.Empty; - string nomeFile = string.Empty; - nomeFile = getNomeFile(model.url_logo); - - path = pathSrv; - path = path +@"\"+azienda+ @"\" + nomeFile; - SaveByteArrayToFileWithBinaryWriter(model.logo, path); - return model; - } - - /// VIRTUAL TASK: salvataggio su disco - public static void SaveByteArrayToFileWithBinaryWriter(byte[] data, string filePath) - { - using var writer = new BinaryWriter(System.IO.File.OpenWrite(filePath)); - writer.Write(data); - //System.IO.File.WriteAllBytes("Foo.txt", data); - } - - /// VIRTUAL TASK: ricava il nome del file a partire dal path web - public static string getNomeFile(string path) - { - string nome = string.Empty; - string[] words = path.Split('/'); - int l = words.Length; - nome = words[l - 1]; - return nome; - } - - /// VIRTUAL TASK: dati Azienda - [HttpGet("rapportiniList")] - public async Task>> rapportiniList(string token) - { - try - { - List ilist = new List(); - string ten = getClaimValueByToken(token, "tenant2"); - //string tecnico = getClaimValueByToken(token, "tccodice"); - _VT_rapport = _VT_Rapportini.Rapportini; - - var t = await _VT_rapport.Where(t => t.azienda_impianto.Equals(ten)).ToListAsync(); - - foreach (Rapportino ch in t) - { - ilist.Add(ch); - } - return StatusCode(StatusCodes.Status200OK, ilist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); - } - } - - /// VIRTUAL TASK: inserisce buono - [HttpGet("buoni/add")] - public async Task> addBuoni([FromBody] Buoni model, string token) - { - string ten = getClaimValueByToken(token, "tenant"); - string ten2 = getClaimValueByToken(token, "tenant2"); - model.dt_ins = DateTime.Now; - //model.lacodazi = ten2; - try - { - using (var transaction = _VT_Buoni.Database.BeginTransaction()) - { - await _VT_Buoni.buoni.AddAsync(model); - await _VT_Buoni.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); - } - } - - /// 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); - } - } - - /// VIRTUAL TASK: lista articoli per azienda - [HttpGet("articoliList")] - public async Task>> ArticoliList(string token) - { - try - { - List alist = new List(); - string ten = getClaimValueByToken(token, "tenant2"); - string tecnico = getClaimValueByToken(token, "tccodice"); - _articoliTable = _VT_articoliTable.Articoli; - - var art = await _articoliTable.Where(x => x.Azienda.Equals(ten)).ToListAsync(); - - foreach (Articoli a in art) - { - alist.Add(a); - } - return StatusCode(StatusCodes.Status200OK, alist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); ; - } - } - - /// VIRTUAL TASK : crea nuovo articolo return: ActionResult - [HttpPost] - [Route("articolo/add")] - public async Task> addArticolo([FromBody] Articoli model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - model.Azienda = ten; - try - { - using (var transaction = _VT_articoliTable.Database.BeginTransaction()) - { - await _VT_articoliTable.Articoli.AddAsync(model); - await _VT_articoliTable.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); ; - } - } - - /// VIRTUAL TASK : modifica articolo return: ActionResult - [HttpPost] - [Route("articolo/mod")] - public async Task> modArticolo([FromBody] Articoli model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - model.Azienda = ten; - - try - { - using (var transaction = _VT_articoliTable.Database.BeginTransaction()) - { - _VT_articoliTable.Entry(model).State = EntityState.Modified; - await _VT_articoliTable.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); - } - } - - /// VIRTUAL TASK: cancella un articolo return:ActionResult - [HttpPost] - [Route("articolo/del")] - public async Task> delArticolo(string artcodice, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - _articoliTable = _VT_articoliTable.Articoli; - var art = await _articoliTable.Where(a => a.SlCodice.Equals(artcodice) && a.Azienda.Equals(ten)).ToListAsync(); - - Articoli model = art.First(); - model.DataObso = DateTime.Now; - - try - { - using (var transaction = _VT_articoliTable.Database.BeginTransaction()) - { - _VT_articoliTable.Entry(model).State = EntityState.Modified; - await _VT_articoliTable.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); - } - } - - /// VIRTUAL TASK: lista mag_new per azienda - [HttpGet("VTMagNewList")] - public async Task>> VTMagNewList(string token) - { - try - { - List mnlist = new List(); - string ten = getClaimValueByToken(token, "tenant2"); - string tecnico = getClaimValueByToken(token, "tccodice"); - _magNewVT = _VT_MagNew.MagNewVt; - - var listaMn = await _magNewVT.Where(x => x.Azienda.Equals(ten)).ToListAsync(); - foreach (Vt_Mag_New mg in listaMn) - { - mnlist.Add(mg); - } - return StatusCode(StatusCodes.Status200OK, mnlist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); ; - } - } - - /// VIRTUAL TASK: lista Magazzini per azienda - [HttpGet("magazziniVTList")] - public async Task>> MagazziniVTList(string token) - { - try - { - List maglist = new List(); - string ten = getClaimValueByToken(token, "tenant2"); - string tecnico = getClaimValueByToken(token, "tccodice"); - _magazziniVT = _VT_Magazzini.Magazzini; - - var magazziniList = await _magazziniVT.Where(x => x.Azienda.Equals(ten)).ToListAsync(); - foreach (MagazziniVT magaz in magazziniList) - { - maglist.Add(magaz); - } - return StatusCode(StatusCodes.Status200OK, maglist); - } - catch (Exception ex) - { - string err = "Errore: " + ex.Message; - return StatusCode(StatusCodes.Status500InternalServerError, err); ; - } - } - - /// VIRTUAL TASK : crea nuovo magazzino return: ActionResult - [HttpPost] - [Route("magazziniVT/add")] - public async Task> addMagazzinoVT([FromBody] MagazziniVT model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - model.Azienda = ten; - try - { - using (var transaction = _VT_Magazzini.Database.BeginTransaction()) - { - await _VT_Magazzini.Magazzini.AddAsync(model); - await _VT_Magazzini.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); ; - } - } - - /// VIRTUAL TASK : modifica magazzino return: ActionResult - [HttpPost] - [Route("magazziniVT/mod")] - public async Task> modMagazzino([FromBody] MagazziniVT model, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - model.Azienda = ten; - - try - { - using (var transaction = _VT_Magazzini.Database.BeginTransaction()) - { - _VT_Magazzini.Entry(model).State = EntityState.Modified; - await _VT_Magazzini.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); - } - } - - /// VIRTUAL TASK: cancella un magazzino return:ActionResult - [HttpPost] - [Route("magazziniVT/del")] - public async Task> delMagazzino(string magCodice, string token) - { - string ten = getClaimValueByToken(token, "tenant2"); - _magazziniVT = _VT_Magazzini.Magazzini; - var art = await _magazziniVT.Where(a => a.Mgcodmag.Equals(magCodice) && a.Azienda.Equals(ten)).ToListAsync(); - - MagazziniVT model = art.First(); - model.DataObso = DateTime.Now; - - try - { - using (var transaction = _VT_Magazzini.Database.BeginTransaction()) - { - _VT_Magazzini.Entry(model).State = EntityState.Modified; - await _VT_Magazzini.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 Logging /// Upload return:ActionResult diff --git a/ApiPolo/Data/Maras_DbContext.cs b/ApiPolo/Data/Maras_DbContext.cs index b88f741..d8d0089 100644 --- a/ApiPolo/Data/Maras_DbContext.cs +++ b/ApiPolo/Data/Maras_DbContext.cs @@ -1,6 +1,6 @@ using ApiPolo.Interfaces; using ApiPolo.Models; -using ApiPolo.Models.Security_dbcontext; + using Microsoft.EntityFrameworkCore; namespace ApiPolo.Data @@ -55,6 +55,10 @@ namespace ApiPolo.Data public DbSet? Timbr { get; set; } public DbSet? Commesse { get; set; } + + public DbSet? Prog { get; set; } + public DbSet? Progressivi { get; set; } + public DbSet? Compo { get; set; } #endregion /// diff --git a/ApiPolo/Interfaces/ITenantDbContext.cs b/ApiPolo/Interfaces/ITenantDbContext.cs index c4025ab..bbf59f9 100644 --- a/ApiPolo/Interfaces/ITenantDbContext.cs +++ b/ApiPolo/Interfaces/ITenantDbContext.cs @@ -3,6 +3,7 @@ using ApiPolo.Models; namespace ApiPolo.Interfaces { + /// public interface ITenantDbContext { DbSet? Causali { get; set; } @@ -28,5 +29,13 @@ namespace ApiPolo.Interfaces DbSet? Tecnici { get; set; } DbSet? Timbr { get; set; } DbSet? StoImp { get; set; } + + DbSet? Prog { get; set; } + DbSet? Progressivi { get; set; } + DbSet? Compo { get; set; } + + void UpdateRapps(Rapp_New obj); } + + } diff --git a/ApiPolo/Interfaces/TenantDbContextFactory.cs b/ApiPolo/Interfaces/TenantDbContextFactory.cs index 58c790e..2ea5bd5 100644 --- a/ApiPolo/Interfaces/TenantDbContextFactory.cs +++ b/ApiPolo/Interfaces/TenantDbContextFactory.cs @@ -1,11 +1,14 @@ using ApiPolo.Data; using ApiPolo.Interfaces; +using Microsoft.EntityFrameworkCore; using static ApiPolo.Controllers.PoloController; +/// public class TenantDbContextFactory : ITenantDbContextFactory { private readonly IServiceProvider _serviceProvider; + /// public TenantDbContextFactory(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; @@ -19,7 +22,7 @@ public class TenantDbContextFactory : ITenantDbContextFactory return tenant switch { Clienti.Maras => scope.ServiceProvider.GetRequiredService(), - Clienti.Marrocco => scope.ServiceProvider.GetRequiredService(), + // Add other tenants as needed // Clienti.AnotherTenant => scope.ServiceProvider.GetRequiredService(), _ => throw new KeyNotFoundException($"No DbContext found for tenant: {tenant}") diff --git a/ApiPolo/Models/VT_Buoni_DbContext.cs b/ApiPolo/Models/VT_Buoni_DbContext.cs deleted file mode 100644 index 726b093..0000000 --- a/ApiPolo/Models/VT_Buoni_DbContext.cs +++ /dev/null @@ -1,27 +0,0 @@ -using ApiPolo.Models.VT_dbcontext; -using Microsoft.EntityFrameworkCore; - -namespace ApiPolo.Models -{ - /// - public class VT_Buoni_DbContext : DbContext - { - /// - public DbSet? buoni { get; set; } - - /// - public VT_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/Services/MyCronJob1.cs b/ApiPolo/Services/MyCronJob1.cs index dbb231f..4d1f13f 100644 --- a/ApiPolo/Services/MyCronJob1.cs +++ b/ApiPolo/Services/MyCronJob1.cs @@ -4,7 +4,7 @@ using Google.Apis.Auth.OAuth2; using static ApiPolo.Controllers.PoloController; using static Google.Apis.Requests.BatchRequest; using System.Text; -using ApiPolo.Models.Marrocco_dbcontext; + using ApiPolo.Models; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; @@ -102,18 +102,18 @@ namespace ApiPolo.Services { List lst = new List(); #region Marrocco - var optionsBuilder = new DbContextOptionsBuilder(); - optionsBuilder.UseSqlServer(Configuration.GetConnectionString("MARRO")); + //var optionsBuilder = new DbContextOptionsBuilder(); + //optionsBuilder.UseSqlServer(Configuration.GetConnectionString("MARRO")); - using (var dbContext = new MARRO_NOTIFICHEDbContext(optionsBuilder.Options)) - { - var listaNot = dbContext.Notif.Where(t => t.pidattim == null&& t.picodazi!=null && t.picodazi.Equals("MARRO") && t.picodtec!=null && t.picodtec.Equals("ZZZ")).OrderBy(t=>t.piserial).Take(1).ToList(); + //using (var dbContext = new MARRO_NOTIFICHEDbContext(optionsBuilder.Options)) + //{ + // var listaNot = dbContext.Notif.Where(t => t.pidattim == null&& t.picodazi!=null && t.picodazi.Equals("MARRO") && t.picodtec!=null && t.picodtec.Equals("ZZZ")).OrderBy(t=>t.piserial).Take(1).ToList(); - foreach(Notifiche n in listaNot) - { - lst.Add(n); - } - } + // foreach(Notifiche n in listaNot) + // { + // lst.Add(n); + // } + //} #endregion return lst; @@ -122,37 +122,37 @@ namespace ApiPolo.Services private void markNotify(List lst) { #region MARRO - var optionsBuilder = new DbContextOptionsBuilder(); - optionsBuilder.UseSqlServer(Configuration.GetConnectionString("MARRO")); - using (var dbContext = new MARRO_NOTIFICHEDbContext(optionsBuilder.Options)) - { - foreach (MexPush n in lst) - { - Notifiche r = n.notifi; - r.pidattim = DateTime.Now; - dbContext.Entry(r).State = EntityState.Modified; - dbContext.SaveChanges(); + //var optionsBuilder = new DbContextOptionsBuilder(); + //optionsBuilder.UseSqlServer(Configuration.GetConnectionString("MARRO")); + //using (var dbContext = new MARRO_NOTIFICHEDbContext(optionsBuilder.Options)) + //{ + // foreach (MexPush n in lst) + // { + // Notifiche r = n.notifi; + // r.pidattim = DateTime.Now; + // dbContext.Entry(r).State = EntityState.Modified; + // dbContext.SaveChanges(); - } - } + // } + //} #endregion } private void markNotify2(List lst) { #region MARRO - var optionsBuilder = new DbContextOptionsBuilder(); - optionsBuilder.UseSqlServer(Configuration.GetConnectionString("MARRO")); - using (var dbContext = new MARRO_NOTIFICHEDbContext(optionsBuilder.Options)) - { - foreach (Notifiche n in lst) - { - Notifiche r = n; - r.pidattim = DateTime.Now; - dbContext.Entry(r).State = EntityState.Modified; - dbContext.SaveChanges(); + //var optionsBuilder = new DbContextOptionsBuilder(); + //optionsBuilder.UseSqlServer(Configuration.GetConnectionString("MARRO")); + //using (var dbContext = new MARRO_NOTIFICHEDbContext(optionsBuilder.Options)) + //{ + // foreach (Notifiche n in lst) + // { + // Notifiche r = n; + // r.pidattim = DateTime.Now; + // dbContext.Entry(r).State = EntityState.Modified; + // dbContext.SaveChanges(); - } - } + // } + //} #endregion } diff --git a/ApiPolo/Startup.cs b/ApiPolo/Startup.cs index f432278..4b97e1f 100644 --- a/ApiPolo/Startup.cs +++ b/ApiPolo/Startup.cs @@ -1,21 +1,7 @@ using ApiPolo.Models; -using ApiPolo.Models.Discovery_dbcontext; -using ApiPolo.Models.Ferrari_dbcontext; -using ApiPolo.Models.Marrocco_dbcontext; -using ApiPolo.Models.Sicilia_dbcontext; -using ApiPolo.Models.Sarom_dbcontext; -using ApiPolo.Models.Gitoga_dbcontext; -using ApiPolo.Models.Lifta_dbcontext; using Microsoft.EntityFrameworkCore; using Microsoft.OpenApi.Models; -using ApiPolo.Models.Sinergo_dbcontext; using ApiPolo.Services; -using ApiPolo.Models.Siet_dbcontext; -using ApiPolo.Models.PMS_dbcontext; -using ApiPolo.Models.VT_dbcontext; -using ApiPolo.Models.Tedesco_dbcontext; -using ApiPolo.Models.Lift_web_dbcontext; -using ApiPolo.Models.Security_dbcontext; using ApiPolo.Interfaces; using ApiPolo.Data; @@ -40,7 +26,7 @@ namespace ApiPolo services.AddControllers(); services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("ApiStr"))); services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("ApiStr"))); - +/* #region FERRARI services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("FERRA") , options => { options.CommandTimeout(commandTimeoutInSeconds); } @@ -1015,15 +1001,12 @@ namespace ApiPolo )); #endregion - - //TEST + */ + services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("MARAS") , options => { options.CommandTimeout(commandTimeoutInSeconds); } )); - services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("MARRO") - , options => { options.CommandTimeout(commandTimeoutInSeconds); } - )); // FACTORY MUTI-TENANT