using ApiPolo.Models; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.IdentityModel.Tokens; using Renci.SshNet; using System.IdentityModel.Tokens.Jwt; using System.Net; using System.Security.Claims; using System.Text; using FirebaseAdmin; using FirebaseAdmin.Messaging; using Google.Apis.Auth.OAuth2; using Newtonsoft.Json; using System.Net.Http.Headers; using Newtonsoft.Json.Linq; using System.Linq.Expressions; using FirebaseAdmin.Auth.Multitenancy; using System.Globalization; using System.Diagnostics.Contracts; using Microsoft.EntityFrameworkCore.Storage; using System.Diagnostics.Metrics; using System.Transactions; using System.Web.Razor.Parser; using System; using System.Collections; using Microsoft.EntityFrameworkCore.Metadata.Internal; using static Microsoft.Extensions.Logging.EventSource.LoggingEventSource; using static System.Net.Mime.MediaTypeNames; using System.IO; using Microsoft.AspNetCore.Http; using System.Data; using System.Linq; using Microsoft.Extensions.Primitives; using System.Text.RegularExpressions; using System.Runtime.CompilerServices; using System.Diagnostics; using ApiPolo.Data; using ApiPolo.Interfaces; using Microsoft.EntityFrameworkCore.Internal; namespace ApiPolo.Controllers { /// /// Controller unico /// [Route("api/[controller]")] [ApiController] public class PoloController : Controller { private string _token = string.Empty; private readonly ConfigurazioniDbContext? _config; private readonly IConfiguration? _configuration; private readonly ITenantDbContextFactory _dbContextFactory; private readonly Service _service; private readonly TokenDbContext? _tokens; /* #region TECNICI private readonly FERRA_TECNICIDbContext _Ferra_tecnici; private readonly MARRO_TECNICIDbContext _Marro_tecnici; private readonly SICILIA_TECNICIDbContext _Sicilia_tecnici; private readonly DISCO_TECNICIDbContext _Disco_tecnici; private readonly SAROM_TECNICIDbContext _Sarom_tecnici; private readonly SINERGO_TECNICIDbContext _Sinergo_tecnici; private readonly GITSR_TECNICI_Dbcontext _Gitoga_tecnici; private readonly LIFTA_TECNICI_Dbcontext _Lifta_tecnici; private readonly SIET_TECNICI_DbContext _Siet_tecnici; private readonly PMS_TECNICI_DbContext _Pms_tecnici; private readonly VT_TECNICI_DbContext _VT_tecnici; private readonly LIFT_WEB_TECNICIDbContext _LW_tecnici; private readonly TEDES_TECNICIDbContext _Tedes_tecnici; private readonly SECURITY_TECNICI_DbContext _Sys_tecnici; #endregion #region RAPP_NEW private readonly FERRA_RAPP_NEWDbContext _Ferra_rapp; private readonly MARRO_RAPP_NEWDbContext _Marro_rapp; private readonly SICILIA_RAPP_NEWDbContext _Sicilia_rapp; private readonly DISCO_RAPP_NEWDbContext _Disco_rapp; private readonly SAROM_RAPP_NEWDbContext _Sarom_rapp; private readonly GITSR_RAPP_NEW_Dbcontext _Gitoga_rapp; private readonly LIFTA_RAPP_NEW_Dbcontext _Lifta_rapp; private readonly SIET_RAPP_NEW_DbContext _Siet_rapp; private readonly PMS_RAPP_NEW_DbContext _Pms_rapp; private readonly LIFT_WEB_RAPP_NEWDbContext _LW_rapp; private readonly TEDES_RAPP_NEWDbContext _Tedes_rapp; private readonly SECURITY_RAPP_NEW_DbContext _Sys_rapp; #endregion #region CHIAMATE-TECNICI private readonly FERRA_CHIAMATEDbContext _Ferra_calltec; private readonly MARRO_CHIAMATEDbContext _Marro_calltec; private readonly SICILIA_CHIAMATEDbContext _Sicilia_calltec; private readonly DISCO_CHIAMATEDbContext _Disco_calltec; private readonly SAROM_CHIAMATEDbContext _Sarom_calltec; private readonly GITSR_CHIAMATE_Dbcontext _Gitoga_calltec; private readonly LIFTA_CHIAMATE_Dbcontext _Lifta_calltec; private readonly SIET_CHIAMATE_DbContext _Siet_calltec; private readonly PMS_CHIAMATE_DbContext _Pms_calltec; private readonly LIFT_WEB_CHIAMATEDbContext _LW_calltec; private readonly TEDES_CHIAMATE_DbContext _Tedes_calltec; private readonly SECURITY_CHIAMATEDbContext _Sys_calltec; #endregion #region CHIUSURE private readonly FERRA_CHIUSUREDbContext _Ferra_chiu; private readonly MARRO_CHIUSUREDbContext _Marro_chiu; private readonly SICILIA_CHIUSUREDbContext _Sicilia_chiu; private readonly DISCO_CHIUSUREDbContext _Disco_chiu; private readonly SAROM_CHIUSUREDbContext _Sarom_chiu; private readonly GITSR_CHIUSURE_Dbcontext _Gitoga_chiu; private readonly LIFTA_CHIUSURE_Dbcontext _Lifta_chiu; private readonly SIET_CHIUSURE_DbContext _Siet_chiu; private readonly PMS_CHIUSURE_DbContext _Pms_chiu; private readonly LIFT_WEB_CHIUSUREDbContext _LW_chiu; private readonly TEDES_CHIUSUREDbContext _Tedes_chiu; private readonly SECURITY_CHIUSURE_DbContext _Sys_chiu; #endregion #region PRESE private readonly FERRA_PRESEDbContext _Ferra_prese; private readonly MARRO_PRESEDbContext _Marro_prese; private readonly SICILIA_PRESEDbContext _Sicilia_prese; private readonly DISCO_PRESEDbContext _Disco_prese; private readonly SAROM_PRESEDbContext _Sarom_prese; private readonly GITSR_PRESE_Dbcontext _Gitoga_prese; private readonly LIFTA_PRESE_Dbcontext _Lifta_prese; private readonly SIET_PRESE_DbContext _Siet_prese; private readonly PMS_PRESE_DbContext _PMS_prese; private readonly LIFT_WEB_PRESEDbContext _LW_prese; private readonly TEDES_PRESEDbContext _Tedes_prese; private readonly SECURITY_PRESE_DbContext _Sys_prese; #endregion #region MANUTENZIONI PROGRAMMATE private readonly FERRA_MANPROG_TECDbContext _Ferra_mp; private readonly MARRO_MANPROG_TECDbContext _Marro_mp; private readonly SICILIA_MANPROG_TECDbContext _Sicilia_mp; private readonly DISCO_MANPROG_TECDbContext _Disco_mp; private readonly SAROM_MANPROG_TECDbContext _Sarom_mp; private readonly GITSR_MANPROG_TEC_Dbcontext _Gitoga_mp; private readonly LIFTA_MANPROG_TEC_Dbcontext _Lifta_mp; private readonly SIET_MANPROG_TEC_DbContext _Siet_mp; private readonly PMS_MANPROG_TEC_DbContext _PMS_mp; private readonly LIFT_WEB_MANPROG_TECDbContext _LW_mp; private readonly TEDES_MANPROG_TECDbContext _Tedes_mp; private readonly SECURITY_MANPROG_TECDbContext _Sys_mp; #endregion #region Componenti Impianti private readonly SICILIA_COMPO_IMPIADbContext _Sicilia_comp; private readonly DISCO_COMPO_IMPIADbContext _Disco_comp; private readonly SIET_COMPO_IMPIA_DbContext _Siet_comp; private readonly PMS_COMPO_IMPIA_DbContext _PMS_comp; private readonly LIFT_WEB_COMPO_IMPIADbContext _LW_comp; private readonly TEDES_COMPO_IMPIADbContext _Tedes_comp; private readonly SECURITY_COMPO_IMPIA_DbContext _Sys_comp; #endregion #region Componenti impianti TABELLA private readonly SICILIA_COMPO_IMPIA_TABLEDbContext _Sicilia_compTable; private readonly DISCO_COMPO_IMPIA_TABLEDbContext _Disco_compTable; private readonly SIET_COMPO_IMPIA_TABLE_DbContext _Siet_compTable; private readonly PMS_COMPO_IMPIA_TABLE_DbContext _PMS_compTable; private readonly LIFT_WEB_COMPO_IMPIA_TABLEDbContext _LW_compTable; private readonly TEDES_COMPO_IMPIA_TABLEDbContext _Tedes_compTable; private readonly SECURITY_COMPO_IMPIA_TABLE_DbContext _Sys_compTable; #endregion #region SaLDI ARTICOLI private readonly SICILIA_SALDIARTDbContext _Sicilia_saldi; private readonly DISCO_SALDIARTDbContext _Disco_saldi; private readonly SIET_SALDIART_DbContext _Siet_saldi; private readonly PMS_SALDIART_DbContext _PMS_saldi; private readonly LIFT_WEB_SALDIARTDbContext _LW_saldi; private readonly TEDES_SALDIARTDbContext _Tedes_saldi; private readonly SECURITY_SALDIART_DbContext _Sys_saldi; #endregion #region Magazzino articoli MAGNEW private readonly SICILIA_MAG_NEWDbContext _Sicilia_mag; private readonly DISCO_MAG_NEWDbContext _Disco_mag; private readonly SIET_MAG_NEW_DbContext _Siet_mag; private readonly PMS_MAG_NEW_DbContext _PMS_mag; private readonly LIFT_WEB_MAG_NEWDbContext _LW_mag; private readonly TEDES_MAG_NEWDbContext _Tedes_mag; private readonly SECURITY_MAG_NEW_DbContext _Sys_mag; #endregion #region Magazzini private readonly SICILIA_MAGAZZINIDbContext _Sicilia_magazzini; private readonly DISCO_MAGAZZINIDbContext _Disco_magazzini; private readonly SIET_MAGAZZINI_DbContext _Siet_magazzini; private readonly PMS_MAGAZZINI_DbContext _PMS_magazzini; private readonly LIFT_WEB_MAGAZZINIDbContext _LW_magazzini; private readonly TEDES_MAGAZZINIDbContext _Tedes_magazzini; private readonly SECURITY_MAGAZZINI_DbContext _Sys_magazzini; #endregion #region Storico rapportini private readonly SICILIA_STO_RAPPDbContext _Sicilia_sto_rapp; private readonly DISCO_STO_RAPPDbContext _Disco_sto_rapp; private readonly FERRA_STO_RAPPDbContext _Ferra_sto_rapp; private readonly MARRO_STO_RAPPDbContext _Marro_sto_rapp; private readonly SAROM_STO_RAPPDbContext _Sarom_sto_rapp; private readonly GITSR_STO_RAPP_Dbcontext _Gitoga_sto_rapp; private readonly LIFTA_STO_RAPP_Dbcontext _Lifta_sto_rapp; private readonly SIET_STO_RAPP_DbContext _Siet_sto_rapp; private readonly PMS_STO_RAPP_DbContext _PMS_sto_rapp; private readonly LIFT_WEB_STO_RAPPDbContext _LW_sto_rapp; private readonly TEDES_STO_RAPPDbContext _Tedes_sto_rapp; private readonly SECURITY_STO_RAPPDbContext _Sys_sto_rapp; #endregion #region anagrafica clienti private readonly SICILIA_CLIENTIDbContext _Sicilia_clienti; private readonly DISCO_CLIENTIDbContext _Disco_clienti; private readonly FERRA_CLIENTIDbContext _Ferra_clienti; private readonly MARRO_CLIENTIDbContext _Marro_clienti; private readonly SAROM_CLIENTIDbContext _Sarom_clienti; private readonly GITSR_CLIENTI_Dbcontext _Gitoga_clienti; private readonly LIFTA_CLIENTI_Dbcontext _Lifta_clienti; private readonly SIET_CLIENTI_DbContext _Siet_clienti; private readonly PMS_CLIENTI_DbContext _PMS_clienti; private readonly LIFT_WEB_CLIENTIDbContext _LW_clienti; private readonly TEDES_CLIENTIDbContext _Tedes_clienti; private readonly SECURITY_CLIENTI_DbContext _Sys_clienti; #endregion #region causali rapportino private readonly SICILIA_CAUS_RAPPDbContext _Sicilia_caus_rapp; private readonly DISCO_CAUS_RAPPDbContext _Disco_caus_rapp; private readonly FERRA_CAUS_RAPPDbContext _Ferra_caus_rapp; private readonly MARRO_CAUS_RAPPDbcontext _Marro_caus_rapp; private readonly SAROM_CAUS_RAPPDbcontext _Sarom_caus_rapp; private readonly GITSR_CAUS_RAPP_Dbcontext _Gitoga_caus_rapp; private readonly LIFTA_CAUS_RAPP_Dbcontext _Lifta_caus_rapp; private readonly SIET_CAUS_RAPP_DbContext _Siet_caus_rapp; private readonly PMS_CAUS_RAPP_DbContext _PMS_caus_rapp; private readonly LIFT_WEB_CAUS_RAPPDbContext _LW_caus_rapp; private readonly TEDES_CAUS_RAPP_DbContext _Tedes_caus_rapp; private readonly SECURITY_CAUS_RAPP_DbContext _Sys_caus_rapp; #endregion #region causali pagamenti private readonly SICILIA_PAGAMDbContext _Sicilia_pagam; private readonly DISCO_PAGAMDbContext _Disco_pagam; private readonly FERRA_PAGAMDbContext _Ferra_pagam; private readonly MARRO_PAGAMDbContext _Marro_pagam; private readonly SAROM_PAGAMDbContext _Sarom_pagam; private readonly GITSR_PAGAM_Dbcontext _Gitoga_pagam; private readonly LIFTA_PAGAM_Dbcontext _Lifta_pagam; private readonly SIET_PAGAM_DbContext _Siet_pagam; private readonly PMS_PAGAM_DbContext _PMS_pagam; private readonly LIFT_WEB_PAGAMDbContext _LW_pagam; private readonly TEDES_PAGAMDbContext _Tedes_pagam; private readonly SECURITY_PAGAM_DbContext _Sys_pagam; #endregion #region commesse private readonly FERRA_COMMESSEDbContext _Ferra_comm; private readonly SICILIA_COMMESSEDbContext _Sicilia_comm; private readonly SINERGO_COMMESSEDbContext _Sinergo_comm; private readonly MARRO_COMMESSEDbContext _Marro_comm; private readonly SIET_COMMESSE_DbContext _Siet_comm; private readonly PMS_COMMESSE_DbContext _PMS_comm; private readonly LIFT_WEB_COMMESSEDbContext _LW_comm; private readonly TEDES_COMMESSEDbContext _Tedes_comm; private readonly SECURITY_COMMESSE_DbContext _Sys_comm; private readonly GITSR_COMMESSE_DbContext _Gitoga_comm; private readonly LIFTA_COMMESSE_DbContext _Lifta_comm; #endregion #region timbrature private readonly SICILIA_TIMBRATUREDbContext _Sicilia_timbr; private readonly SINERGO_TIMBRATUREDbContext _Sinergo_timbr; private readonly SIET_TIMBRATURE_DbContext _Siet_timbr; private readonly PMS_TIMBRATURE_DbContext _PMS_timbr; private readonly LIFT_WEB_TIMBRATUREDbContext _LW_timbr; private readonly TEDES_TIMBRATUREDbContext _Tedes_timbr; private readonly SECURITY_TIMBRATUREDbContext _Sys_timbr; private readonly MARRO_TIMBRATURE_DbContext _Marro_timbr; #endregion #region rapportini tecnico //private readonly FERRA_RAPPORTINIDbContext _Ferra_rapportini; //private readonly SIET_RAPPORTINI_DbContext _Siet_rapportini; #endregion #region storico impianto private readonly SICILIA_STO_IMPDbContext _Sicilia_sto_imp; private readonly SIET_STO_IMP_DbContext _Siet_sto_imp; private readonly PMS_STO_IMP_DbContext _PMS_sto_imp; private readonly LIFT_WEB_STO_IMPDbContext _LW_sto_imp; private readonly TEDES_STO_IMPDbContext _Tedes_sto_imp; private readonly SECURITY_STO_IMP_DbContext _Sys_sto_imp; #endregion #region aziende collegate private readonly DISCO_AziendaRifDbContext _Disco_azi_coll; private readonly SIET_AZIENDA_RIF_DbContext _Siet_azi_coll; private readonly PMS_AZIENDA_RIF_DbContext _PMS_azi_coll; private readonly LIFT_WEB_AZIENDARIF_DbContext _LW_azi_coll; private readonly TEDES_AZIENDA_RIF_DbContext _Tedes_azi_coll; #endregion #region Impianti private readonly MARRO_IMPIANTIDbContext _Marro_impianti; private readonly GITSR_IMPIANTI_Dbcontext _Gitoga_impianti; private readonly LIFTA_IMPIANTI_Dbcontext _Lifta_impianti; private readonly DISCO_IMPIANTIDbContext _Disco_impianti; private readonly SICILIA_IMPIANTIDbContext _Sicilia_impianti; private readonly SIET_IMPIANTI_DbContext _Siet_impianti; private readonly PMS_IMPIANTI_DbContext _PMS_impianti; private readonly LIFT_WEB_IMPIANTIDbContext _LW_impianti; private readonly TEDES_IMPIANTIDbContext _Tedes_impianti; private readonly SECURITY_IMPIANTI_DbContext _Sys_impianti; #endregion #region Sostituzioni private readonly MARRO_SOSTITUZIONIDbContext _Marro_sostituzioni; private readonly GITSR_SOSTITUZIONIDbContext _Gitoga_sostituzioni; private readonly LIFTA_SOSTITUZIONIDbcontext _Lifta_sostituzioni; private readonly DISCO_SOSTITUZIONIDbcontext _Disco_sostituzioni; private readonly SIET_SOSTITUZIONI_DbContext _Siet_sostituzioni; private readonly SICILIA_SOSTITUZIONI_DbContext _Sicilia_sostituzioni; private readonly PMS_SOSTITUZIONI_DbContext _PMS_sostituzioni; private readonly LIFT_WEB_SOSTITUZIONI_DbContext _LW_sostituzioni; private readonly TEDES_SOSTITUZIONI_DbContext _Tedes_sostituzioni; private readonly SECURITY_SOSTITUZIONI_DbContext _Sys_sostituzioni; #endregion #region ChiamateTable private readonly MARRO_CHIAMATE_TABLE_DbContext _Marro_chiatable; private readonly SIET_CHIAMATE_TABLE_DbContext _Siet_chiatable; private readonly SICILIA_CHIAMATE_TABLE_DbContext _Sicilia_chiatable; private readonly PMS_CHIAMATE_TABLE_DbContext _Pms_chiatable; private readonly LIFT_WEB_CHIAMATE_TABLE_DbContext _LW_chiatable; private readonly TEDES_CHIAMATE_TABLE_DbContext _Tedes_chiatable; private readonly SECURITY_CHIAMATE_TABLE_DbContext _Sys_chiatable; #endregion #region ChiamateSeriale private readonly MARRO_CHIAMATA_SERIALE_DbContext _Marro_chiaser; private readonly GITSR_CHIAMATA_SERIALE_DbContext _Gitoga_chiaser; private readonly LIFTA_CHIAMATA_SERIALE_DbContext _Lifta_chiaser; private readonly SIET_CHIAMATA_SERIALE_DbContext _Siet_chiaser; private readonly SICILIA_CHIAMATA_SERIALE_DbContext _Sicilia_chiaser; private readonly PMS_CHIAMATA_SERIALE_DbContext _PMS_chiaser; private readonly SECURITY_CHIAMATA_SERIALE_DbContext _Sys_chiaser; #endregion #region ChiamateProgressivi private readonly MARRO_CHIAMATA_PROG_DbContext _Marro_chiaprog; private readonly SIET_CHIAMATA_PROG_DbContext _Siet_chiaprog; private readonly SIET_CPWARN_DbContext _Siet_cpwarn; private readonly SICILIA_CHIAMATA_PROG_DbContext _Sicilia_chiaprog; private readonly SICILIA_CPWARN_DbContext _Sicilia_cpwarn; private readonly PMS_CPWARN_DbContext _PMS_cpwarn; private readonly LIFT_WEB_CPWARN_DbContext _LW_cpwarn; private readonly TEDES_CPWARN_DbContext _Tedes_cpwarn; private readonly SECURITY_CPWARN_DbContext _Sys_cpwarn; #endregion #region VT - Chiusure private readonly VT_CHIUSURE_TABLE_DbContext _VT_chiutable; private readonly VT_CHIUSURE_DbContext _VT_chiu; #endregion #region VT - Tecnici private readonly VT_TECNICI_TABLE_DbContext _VT_tectable; private readonly VT_TECNICI_DbContext _VT_tec; #endregion #region VT - anagrafiche private readonly VT_CONTI_TABLE_DbContext _VT_anagtable; private readonly VT_CONTI_DbContext _VT_anag; #endregion #region VT - Impianti private readonly VT_IMPIANTI_TABLE_DbContext _VT_impiatable; private readonly VT_IMPIANTI_DbContext _VT_impia; private readonly VT_IMPIANTI_MANAGER_DbContext _VT_impiaMngr; #endregion #region VT-RAPP NEW private readonly VT_RAPP_NEW_TABLE_DbContext _VT_rapptable; private readonly VT_RAPP_NEW_DbContext _VT_rapp; #endregion #region VT-CHIAMATE private readonly VT_CHIAMATE_TABLE_DbContext _VT_chiatable; private readonly VT_CHIAMATE_DbContext _VT_chia; private readonly VT_CHIAMATE_MANAGER_DbContext _VT_chiaMngr; #endregion #region VT-Progressivi private readonly VT_PROGRESSIVI_DbContext _VT_progtable; #endregion #region VT-aziende private readonly VT_AZIENDA_RIF_DbContext _VT_azi; #endregion #region VT-registrazioni private readonly VT_REGISTRAZIONE_DbContext _VT_reg; #endregion #region VT-aziendePresenti private readonly VT_AZIENDE_PRESENTI_DbContext _VT_AziPres; #endregion #region VT-commesse private readonly VT_COMMESSE_DbContext _VT_Comm; private readonly VT_COMMESSE_TABLE_DbContext _VT_CommTable; private readonly VT_COMMESSE_APP_DbContext _VT_CommApp; #endregion #region VT-rapportini excel private readonly VT_RAPPORTINI_DbContext _VT_Rapportini; #endregion #region VT-Buoni private readonly VT_Buoni_DbContext _VT_Buoni; private readonly LIFT_WEB_BUONI_DbContext _LW_Buoni; private readonly SECURITY_BUONI_DbContext _Sys_Buoni; #endregion #region VT - Dati azienda private readonly VT_DATI_AZIENDA_DbContext _VT_DatiAzienda; #endregion #region VT-Storico Rapp private readonly VT_STO_RAPP_DbContext _VT_StoRapp; #endregion #region VT-TIMBRATURE private readonly VT_TIMBRATURE_DbContext _VT_timbr; #endregion #region VT-ARTICOLI private readonly VT_ARTICOLI_TABLE_DbContext _VT_articoliTable; #endregion #region VT-MAG_NEW private readonly VT_MAG_NEW_DbContext _VT_MagNew; #endregion #region VT-MAGAZZINI private readonly VT_MAGAZZINI_DbContext _VT_Magazzini; #endregion #region Commesse desc private readonly SIET_COMMESSE_DESC_DbContext _Siet_commDesc; private readonly MARRO_COMMESSE_TABLE_DbContext _Marro_commDesc; #endregion #region Associazione Codici chiusura - codici intervento private readonly DISCO_CC_CI_DbContext _Disco_ccci; private readonly DISCO_CC_CI_Vista_DbContext _Disco_ccciView; #endregion */ private DbSet? _tecnici; private DbSet? _rapp_new; private DbSet? _chiamate; private DbSet? _chiusure; private DbSet? _manutprog; private DbSet? _prese; private DbSet? _compo; private DbSet? _compoTable; private DbSet? _saldi; private DbSet? _mag; private DbSet? _magazzini; private DbSet? _sto_rapp; private DbSet? _clienti; private DbSet? _cau_rapp; private DbSet? _pagam; private DbSet? _comm; private DbSet? _timbr; private DbSet? _sto_imp; private DbSet? _azi_coll; private DbSet? _impianto; private DbSet? _sostituzione; private DbSet? _chiatable; private DbSet? _chiatableTaskManager; private DbSet? _chiamateser; private DbSet? _chiamateprogr; private DbSet? _cpwarns; private DbSet? _chiuTable; private DbSet? _tecTable; private DbSet? _anagTable; private DbSet? _impiaTable; private DbSet? _clientiVT; private DbSet? _VT_prog; private DbSet? _VT_regi; private DbSet? _VT_AziPresenti; private DbSet? _VT_Commesse; private DbSet? _VT_CommesseTable; private DbSet? _VT_DatiAzi; private DbSet? _VT_rapport; private DbSet? _VT_buo; private DbSet? _rapp_new_view; private DbSet? _articoliTable; private DbSet? _magNewVT; private DbSet? _magazziniVT; private DbSet? _commDesc; private DbSet? _ccci; private DbSet? _ccciView; private Configurazioni? _confLette; /// polocontroller public PoloController( IConfiguration configuration, ConfigurazioniDbContext config, ITenantDbContextFactory dbContextFactory, Service service, TokenDbContext tokens /* #region tecnici FERRA_TECNICIDbContext Ferra_tecnici, MARRO_TECNICIDbContext Marro_tecnici, SICILIA_TECNICIDbContext Sicilia_tecnici, DISCO_TECNICIDbContext Disco_tecnici, SAROM_TECNICIDbContext Sarom_tecnici, SINERGO_TECNICIDbContext Sinergo_tecnici, GITSR_TECNICI_Dbcontext Gitoga_tecnici, LIFTA_TECNICI_Dbcontext Lifta_tecnici, SIET_TECNICI_DbContext Siet_tecnici, PMS_TECNICI_DbContext Pms_tecnici, VT_TECNICI_DbContext VT_tecnici, LIFT_WEB_TECNICIDbContext LW_tecnici, TEDES_TECNICIDbContext Tedes_tecnici, SECURITY_TECNICI_DbContext Sys_tecnici, #endregion #region CHIAMATE FERRA_CHIAMATEDbContext Ferra_calltec, MARRO_CHIAMATEDbContext Marro_calltec, SICILIA_CHIAMATEDbContext Sicilia_calltec, DISCO_CHIAMATEDbContext Disco_calltec, SAROM_CHIAMATEDbContext Sarom_calltec, GITSR_CHIAMATE_Dbcontext Gitoga_calltec, LIFTA_CHIAMATE_Dbcontext Lifta_calltec, SIET_CHIAMATE_DbContext Siet_calltec, PMS_CHIAMATE_DbContext Pms_calltec, LIFT_WEB_CHIAMATEDbContext LW_calltec, TEDES_CHIAMATE_DbContext Tedes_calltec, SECURITY_CHIAMATEDbContext Sys_calltec, #endregion #region RAPPNEW FERRA_RAPP_NEWDbContext Ferra_rapp, MARRO_RAPP_NEWDbContext Marro_rapp, SICILIA_RAPP_NEWDbContext Sicilia_rapp, DISCO_RAPP_NEWDbContext Disco_rapp, SAROM_RAPP_NEWDbContext Sarom_rapp, GITSR_RAPP_NEW_Dbcontext Gitoga_rapp, LIFTA_RAPP_NEW_Dbcontext Lifta_rapp, SIET_RAPP_NEW_DbContext Siet_rapp, PMS_RAPP_NEW_DbContext Pms_rapp, LIFT_WEB_RAPP_NEWDbContext LW_rapp, TEDES_RAPP_NEWDbContext Tedes_rapp, SECURITY_RAPP_NEW_DbContext Sys_rapp, #endregion #region chiusure FERRA_CHIUSUREDbContext Ferra_chiusure, MARRO_CHIUSUREDbContext Marro_chiusure, SICILIA_CHIUSUREDbContext Sicilia_chiusure, DISCO_CHIUSUREDbContext Disco_chiusure, SAROM_CHIUSUREDbContext Sarom_chiusure, GITSR_CHIUSURE_Dbcontext Gitoga_chiusure, LIFTA_CHIUSURE_Dbcontext Lifta_chiusure, SIET_CHIUSURE_DbContext Siet_chiusure, PMS_CHIUSURE_DbContext Pms_chiusure, LIFT_WEB_CHIUSUREDbContext LW_chiusure, TEDES_CHIUSUREDbContext Tedes_chiusure, SECURITY_CHIUSURE_DbContext Sys_chiusure, #endregion #region manutenzioni FERRA_MANPROG_TECDbContext Ferra_manut, MARRO_MANPROG_TECDbContext Marro_manut, SICILIA_MANPROG_TECDbContext Sicilia_manut, DISCO_MANPROG_TECDbContext Disco_manut, SAROM_MANPROG_TECDbContext Sarom_manut, GITSR_MANPROG_TEC_Dbcontext Gitoga_manut, LIFTA_MANPROG_TEC_Dbcontext Lifta_manut, SIET_MANPROG_TEC_DbContext Siet_manut, PMS_MANPROG_TEC_DbContext PMS_manut, LIFT_WEB_MANPROG_TECDbContext LW_manut, TEDES_MANPROG_TECDbContext Tedes_manut, SECURITY_MANPROG_TECDbContext Sys_manut, #endregion #region PRESE FERRA_PRESEDbContext Ferra_prese, MARRO_PRESEDbContext Marro_prese, SICILIA_PRESEDbContext Sicilia_prese, DISCO_PRESEDbContext Disco_prese, SAROM_PRESEDbContext Sarom_prese, GITSR_PRESE_Dbcontext Gitoga_prese, LIFTA_PRESE_Dbcontext Lifta_prese, SIET_PRESE_DbContext Siet_prese, PMS_PRESE_DbContext PMS_prese, LIFT_WEB_PRESEDbContext LW_prese, TEDES_PRESEDbContext Tedes_prese, SECURITY_PRESE_DbContext Sys_prese, #endregion #region componenti impianto SICILIA_COMPO_IMPIADbContext Sicilia_comp, DISCO_COMPO_IMPIADbContext Disco_comp, SIET_COMPO_IMPIA_DbContext Siet_comp, PMS_COMPO_IMPIA_DbContext PMS_comp, LIFT_WEB_COMPO_IMPIADbContext LW_comp, TEDES_COMPO_IMPIADbContext Tedes_comp, SECURITY_COMPO_IMPIA_DbContext Sys_comp, #endregion #region componenti impianto TABLE SICILIA_COMPO_IMPIA_TABLEDbContext Sicilia_compTable, DISCO_COMPO_IMPIA_TABLEDbContext Disco_compTable, SIET_COMPO_IMPIA_TABLE_DbContext Siet_compTable, PMS_COMPO_IMPIA_TABLE_DbContext PMS_compTable, LIFT_WEB_COMPO_IMPIA_TABLEDbContext LW_compTable, TEDES_COMPO_IMPIA_TABLEDbContext Tedes_compTable, SECURITY_COMPO_IMPIA_TABLE_DbContext Sys_compTable, #endregion #region saldi SICILIA_SALDIARTDbContext Sicilia_saldi, DISCO_SALDIARTDbContext Disco_saldi, SIET_SALDIART_DbContext Siet_saldi, PMS_SALDIART_DbContext PMS_saldi, LIFT_WEB_SALDIARTDbContext LW_saldi, TEDES_SALDIARTDbContext Tedes_saldi, SECURITY_SALDIART_DbContext Sys_saldi, #endregion #region MAGNEW SICILIA_MAG_NEWDbContext Sicilia_mag, DISCO_MAG_NEWDbContext Disco_mag, SIET_MAG_NEW_DbContext Siet_mag, PMS_MAG_NEW_DbContext PMS_mag, LIFT_WEB_MAG_NEWDbContext LW_mag, TEDES_MAG_NEWDbContext Tedes_mag, SECURITY_MAG_NEW_DbContext Sys_mag, #endregion #region magazzini SICILIA_MAGAZZINIDbContext Sicilia_magazzini, DISCO_MAGAZZINIDbContext Disco_magazzini, PMS_MAGAZZINI_DbContext PMS_magazzini, SIET_MAGAZZINI_DbContext Siet_magazzini, LIFT_WEB_MAGAZZINIDbContext LW_magazzini, TEDES_MAGAZZINIDbContext Tedes_magazzini, SECURITY_MAGAZZINI_DbContext Sys_magazzini, #endregion #region storico rapportini SICILIA_STO_RAPPDbContext Sicilia_sto_rapp, DISCO_STO_RAPPDbContext Disco_sto_rapp, FERRA_STO_RAPPDbContext Ferra_sto_rapp, MARRO_STO_RAPPDbContext Marro_sto_rapp, SAROM_STO_RAPPDbContext Sarom_sto_rapp, GITSR_STO_RAPP_Dbcontext Gitoga_sto_rapp, LIFTA_STO_RAPP_Dbcontext Lifta_sto_rapp, SIET_STO_RAPP_DbContext Siet_sto_rapp, PMS_STO_RAPP_DbContext PMS_sto_rapp, LIFT_WEB_STO_RAPPDbContext LW_sto_rapp, TEDES_STO_RAPPDbContext Tedes_sto_rapp, SECURITY_STO_RAPPDbContext Sys_sto_rapp, #endregion #region anagrafica clienti SICILIA_CLIENTIDbContext Sicilia_Clienti, DISCO_CLIENTIDbContext Disco_Clienti, FERRA_CLIENTIDbContext Ferra_Clienti, MARRO_CLIENTIDbContext Marro_Clienti, SAROM_CLIENTIDbContext Sarom_Clienti, GITSR_CLIENTI_Dbcontext Gitoga_Clienti, LIFTA_CLIENTI_Dbcontext Lifta_Clienti, SIET_CLIENTI_DbContext Siet_Clienti, PMS_CLIENTI_DbContext PMS_Clienti, LIFT_WEB_CLIENTIDbContext LW_Clienti, TEDES_CLIENTIDbContext Tedes_Clienti, SECURITY_CLIENTI_DbContext Sys_Clienti, #endregion #region RAPPNEW SICILIA_CAUS_RAPPDbContext Sicilia_caus_rapp, DISCO_CAUS_RAPPDbContext Disco_caus_rapp, FERRA_CAUS_RAPPDbContext Ferra_caus_rapp, MARRO_CAUS_RAPPDbcontext Marro_caus_rapp, SAROM_CAUS_RAPPDbcontext Sarom_caus_rapp, GITSR_CAUS_RAPP_Dbcontext Gitoga_caus_rapp, LIFTA_CAUS_RAPP_Dbcontext Lifta_caus_rapp, SIET_CAUS_RAPP_DbContext Siet_caus_rapp, PMS_CAUS_RAPP_DbContext PMS_caus_rapp, LIFT_WEB_CAUS_RAPPDbContext LW_caus_rapp, TEDES_CAUS_RAPP_DbContext Tedes_caus_rapp, SECURITY_CAUS_RAPP_DbContext Sys_caus_rapp, #endregion #region pagamenti SICILIA_PAGAMDbContext Sicilia_pagam, DISCO_PAGAMDbContext Disco_pagam, FERRA_PAGAMDbContext Ferra_pagam, MARRO_PAGAMDbContext Marro_pagam, SAROM_PAGAMDbContext Sarom_pagam, GITSR_PAGAM_Dbcontext Gitoga_pagam, LIFTA_PAGAM_Dbcontext Lifta_pagam, SIET_PAGAM_DbContext Siet_pagam, PMS_PAGAM_DbContext PMS_pagam, LIFT_WEB_PAGAMDbContext LW_pagam, TEDES_PAGAMDbContext Tedes_pagam, SECURITY_PAGAM_DbContext Sys_pagam, #endregion #region Commesse FERRA_COMMESSEDbContext Ferra_comm, SICILIA_COMMESSEDbContext Sicilia_comm, SINERGO_COMMESSEDbContext Sinergo_comm, MARRO_COMMESSEDbContext Marro_comm, SIET_COMMESSE_DbContext Siet_comm, PMS_COMMESSE_DbContext PMS_comm, LIFT_WEB_COMMESSEDbContext LW_comm, TEDES_COMMESSEDbContext Tedes_comm, SECURITY_COMMESSE_DbContext Sys_comm, GITSR_COMMESSE_DbContext Gitoga_comm, LIFTA_COMMESSE_DbContext Lifta_comm, #endregion #region timbrature SICILIA_TIMBRATUREDbContext Sicilia_timbr, SINERGO_TIMBRATUREDbContext Sinergo_timbr, SIET_TIMBRATURE_DbContext Siet_timbr, PMS_TIMBRATURE_DbContext PMS_timbr, LIFT_WEB_TIMBRATUREDbContext LW_timbr, TEDES_TIMBRATUREDbContext Tedes_timbr, SECURITY_TIMBRATUREDbContext Sys_timbr, MARRO_TIMBRATURE_DbContext Marro_timbr, #endregion #region rapportini //FERRA_RAPPORTINIDbContext Ferra_rapportini, //SIET_RAPPORTINI_DbContext Siet_rapportini, #endregion #region storico impianti SICILIA_STO_IMPDbContext Sicilia_sto_imp, SIET_STO_IMP_DbContext Siet_sto_imp, PMS_STO_IMP_DbContext PMS_sto_imp, LIFT_WEB_STO_IMPDbContext LW_sto_imp, TEDES_STO_IMPDbContext Tedes_sto_imp, SECURITY_STO_IMP_DbContext Sys_sto_imp, #endregion #region azienda collegata DISCO_AziendaRifDbContext Disco_azi_coll, SIET_AZIENDA_RIF_DbContext Siet_azi_coll, PMS_AZIENDA_RIF_DbContext PMS_azi_coll, LIFT_WEB_AZIENDARIF_DbContext LW_azi_coll, TEDES_AZIENDA_RIF_DbContext Tedes_azi_coll, #endregion #region impianti MARRO_IMPIANTIDbContext Marro_impianti, GITSR_IMPIANTI_Dbcontext Gitoga_impianti, LIFTA_IMPIANTI_Dbcontext Lifta_impianti, DISCO_IMPIANTIDbContext Disco_impianti, SICILIA_IMPIANTIDbContext Sicilia_impianti, SIET_IMPIANTI_DbContext Siet_impianti, PMS_IMPIANTI_DbContext PMS_impianti, LIFT_WEB_IMPIANTIDbContext LW_impianti, TEDES_IMPIANTIDbContext Tedes_impianti, SECURITY_IMPIANTI_DbContext Sys_impianti, #endregion #region sostituzioni MARRO_SOSTITUZIONIDbContext Marro_sostituzioni, GITSR_SOSTITUZIONIDbContext Gitoga_sostituzioni, LIFTA_SOSTITUZIONIDbcontext Lifta_sostituzioni, DISCO_SOSTITUZIONIDbcontext Disco_sostituzioni, SIET_SOSTITUZIONI_DbContext Siet_sostituzioni, SICILIA_SOSTITUZIONI_DbContext Sicilia_sostituzioni, PMS_SOSTITUZIONI_DbContext PMS_sostituzioni, LIFT_WEB_SOSTITUZIONI_DbContext LW_sostituzioni, TEDES_SOSTITUZIONI_DbContext Tedes_sostituzioni, SECURITY_SOSTITUZIONI_DbContext Sys_sostituzioni, #endregion #region chiamate table MARRO_CHIAMATE_TABLE_DbContext Marro_chiatable, SIET_CHIAMATE_TABLE_DbContext Siet_chiatable, SICILIA_CHIAMATE_TABLE_DbContext Sicilia_chiatable, PMS_CHIAMATE_TABLE_DbContext Pms_chiatable, LIFT_WEB_CHIAMATE_TABLE_DbContext LW_chiatable, TEDES_CHIAMATE_TABLE_DbContext Tedes_chiatable, SECURITY_CHIAMATE_TABLE_DbContext Sys_chiatable, #endregion #region chiamate seriale MARRO_CHIAMATA_SERIALE_DbContext Marro_chiaser, GITSR_CHIAMATA_SERIALE_DbContext Gitoga_chiaser, LIFTA_CHIAMATA_SERIALE_DbContext Lifta_chiaser, SIET_CHIAMATA_SERIALE_DbContext Siet_chiaser, SICILIA_CHIAMATA_SERIALE_DbContext Sicilia_chiaser, PMS_CHIAMATA_SERIALE_DbContext PMS_chiaser, SECURITY_CHIAMATA_SERIALE_DbContext Sys_chiaser, #endregion #region chiamate progressivo MARRO_CHIAMATA_PROG_DbContext Marro_chiaprog, SIET_CHIAMATA_PROG_DbContext Siet_chiaprog, SICILIA_CHIAMATA_PROG_DbContext Sicilia_chiaprog, SECURITY_CHIAMATA_PROG_DbContext Sys_chiaprog, #endregion #region cpwarn SICILIA_CPWARN_DbContext Sicilia_cpwarn, SIET_CPWARN_DbContext Siet_cpwarn, PMS_CPWARN_DbContext PMS_cpwarn, LIFT_WEB_CPWARN_DbContext LW_cpwarn, TEDES_CPWARN_DbContext Tedes_cpwarn, SECURITY_CPWARN_DbContext Sys_cpwarn, #endregion #region CommesseDesc SIET_COMMESSE_DESC_DbContext Siet_commDesc, MARRO_COMMESSE_TABLE_DbContext Marro_commDesc, #endregion #region Associazione Codici chiusura - codici intervento DISCO_CC_CI_DbContext Disco_ccci, DISCO_CC_CI_Vista_DbContext Disco_ccciView, #endregion #region Buoni tabella LIFT_WEB_BUONI_DbContext LW_Buoni, SECURITY_BUONI_DbContext Sys_Buoni, #endregion #region Virtual task VT_TECNICI_TABLE_DbContext VT_tectable, VT_TECNICI_DbContext VT_tec, VT_CHIUSURE_TABLE_DbContext VT_chiutable, VT_CHIUSURE_DbContext VT_chiu, VT_CONTI_TABLE_DbContext VT_anagtable, VT_CONTI_DbContext VT_anag, VT_RAPP_NEW_TABLE_DbContext VT_rapptable, VT_RAPP_NEW_DbContext VT_rapp, VT_IMPIANTI_TABLE_DbContext VT_impiatable, VT_IMPIANTI_DbContext VT_impia, VT_IMPIANTI_MANAGER_DbContext VT_impiaMngr, VT_CHIAMATE_TABLE_DbContext VT_chiatable, VT_CHIAMATE_DbContext VT_chia, VT_PROGRESSIVI_DbContext VT_progtable, VT_CHIAMATE_MANAGER_DbContext VT_chiaMngr, VT_AZIENDA_RIF_DbContext VT_azi, VT_REGISTRAZIONE_DbContext VT_reg, VT_AZIENDE_PRESENTI_DbContext VT_AziPres, VT_COMMESSE_DbContext VT_Comm, VT_COMMESSE_TABLE_DbContext VT_CommTable, VT_COMMESSE_APP_DbContext VT_CommApp, VT_DATI_AZIENDA_DbContext VT_DatiAzienda, VT_RAPPORTINI_DbContext VT_Rapportini, VT_Buoni_DbContext VT_Buoni, VT_STO_RAPP_DbContext VT_StoRapp, VT_TIMBRATURE_DbContext VT_timbr, VT_ARTICOLI_TABLE_DbContext VT_artTable, VT_MAG_NEW_DbContext VT_MagNew, VT_MAGAZZINI_DbContext VT_Magazzini #endregion */ ) { _dbContextFactory = dbContextFactory; _configuration = configuration; _service = service; _config = config; _tokens = tokens; /* #region TECNICI _Ferra_tecnici = Ferra_tecnici; _Marro_tecnici = Marro_tecnici; _Sicilia_tecnici = Sicilia_tecnici; _Disco_tecnici = Disco_tecnici; _Sarom_tecnici = Sarom_tecnici; _Sinergo_tecnici = Sinergo_tecnici; _Gitoga_tecnici = Gitoga_tecnici; _Lifta_tecnici = Lifta_tecnici; _Siet_tecnici = Siet_tecnici; _Pms_tecnici = Pms_tecnici; _VT_tecnici = VT_tecnici; _LW_tecnici = LW_tecnici; _Tedes_tecnici = Tedes_tecnici; _Sys_tecnici = Sys_tecnici; #endregion #region CHIAMATE-TECNICI _Ferra_calltec = Ferra_calltec; _Marro_calltec = Marro_calltec; _Sicilia_calltec = Sicilia_calltec; _Disco_calltec = Disco_calltec; _Sarom_calltec = Sarom_calltec; _Gitoga_calltec = Gitoga_calltec; _Lifta_calltec = Lifta_calltec; _Siet_calltec = Siet_calltec; _Pms_calltec = Pms_calltec; _LW_calltec = LW_calltec; _Tedes_calltec = Tedes_calltec; _Sys_calltec = Sys_calltec; #endregion #region CHIUSURE _Ferra_chiu = Ferra_chiusure; _Marro_chiu = Marro_chiusure; _Sicilia_chiu = Sicilia_chiusure; _Disco_chiu = Disco_chiusure; _Sarom_chiu = Sarom_chiusure; _Gitoga_chiu = Gitoga_chiusure; _Lifta_chiu = Lifta_chiusure; _Siet_chiu = Siet_chiusure; _Pms_chiu = Pms_chiusure; _LW_chiu = LW_chiusure; _Tedes_chiu = Tedes_chiusure; _Sys_chiu = Sys_chiusure; #endregion #region RAPP_NEW _Ferra_rapp = Ferra_rapp; _Marro_rapp = Marro_rapp; _Sicilia_rapp = Sicilia_rapp; _Disco_rapp = Disco_rapp; _Sarom_rapp = Sarom_rapp; _Gitoga_rapp = Gitoga_rapp; _Lifta_rapp = Lifta_rapp; _Siet_rapp = Siet_rapp; _Pms_rapp = Pms_rapp; _LW_rapp = LW_rapp; _Tedes_rapp = Tedes_rapp; _Sys_rapp = Sys_rapp; #endregion #region MANUTENZIONI PROGRAMMATE _Ferra_mp = Ferra_manut; _Marro_mp = Marro_manut; _Sicilia_mp = Sicilia_manut; _Disco_mp = Disco_manut; _Sarom_mp = Sarom_manut; _Gitoga_mp = Gitoga_manut; _Lifta_mp = Lifta_manut; _Siet_mp = Siet_manut; _PMS_mp = PMS_manut; _LW_mp = LW_manut; _Tedes_mp = Tedes_manut; _Sys_mp = Sys_manut; #endregion #region PRESE _Ferra_prese = Ferra_prese; _Marro_prese = Marro_prese; _Sicilia_prese = Sicilia_prese; _Disco_prese = Disco_prese; _Sarom_prese = Sarom_prese; _Gitoga_prese = Gitoga_prese; _Lifta_prese = Lifta_prese; _Siet_prese = Siet_prese; _PMS_prese = PMS_prese; _LW_prese = LW_prese; _Tedes_prese = Tedes_prese; _Sys_prese = Sys_prese; #endregion #region Componenti impianto _Sicilia_comp = Sicilia_comp; _Disco_comp = Disco_comp; _Siet_comp = Siet_comp; _PMS_comp = PMS_comp; _LW_comp = LW_comp; _Tedes_comp = Tedes_comp; _Sys_comp = Sys_comp; _Sicilia_compTable = Sicilia_compTable; _Disco_compTable = Disco_compTable; _Siet_compTable = Siet_compTable; _PMS_compTable = PMS_compTable; _LW_compTable = LW_compTable; _Tedes_compTable= Tedes_compTable; _Sys_compTable = Sys_compTable; #endregion #region Saldi articoli _Sicilia_saldi = Sicilia_saldi; _Disco_saldi = Disco_saldi; _Siet_saldi = Siet_saldi; _PMS_saldi = PMS_saldi; _LW_saldi = LW_saldi; _Tedes_saldi = Tedes_saldi; _Sys_saldi = Sys_saldi; #endregion #region magazzino articoli _Sicilia_mag = Sicilia_mag; _Disco_mag = Disco_mag; _Siet_mag = Siet_mag; _PMS_mag = PMS_mag; _LW_mag = LW_mag; _Tedes_mag = Tedes_mag; _Sys_mag = Sys_mag; #endregion #region magazzini _Sicilia_magazzini = Sicilia_magazzini; _Disco_magazzini = Disco_magazzini; _Siet_magazzini = Siet_magazzini; _PMS_magazzini = PMS_magazzini; _LW_magazzini = LW_magazzini; _Tedes_magazzini = Tedes_magazzini; _Sys_magazzini = Sys_magazzini; #endregion #region storico rapportini _Sicilia_sto_rapp = Sicilia_sto_rapp; _Disco_sto_rapp = Disco_sto_rapp; _Ferra_sto_rapp = Ferra_sto_rapp; _Marro_sto_rapp = Marro_sto_rapp; _Sarom_sto_rapp = Sarom_sto_rapp; _Gitoga_sto_rapp = Gitoga_sto_rapp; _Lifta_sto_rapp = Lifta_sto_rapp; _Siet_sto_rapp = Siet_sto_rapp; _PMS_sto_rapp = PMS_sto_rapp; _LW_sto_rapp = LW_sto_rapp; _Tedes_sto_rapp = Tedes_sto_rapp; _Sys_sto_rapp = Sys_sto_rapp; #endregion #region anagrafica clienti _Sicilia_clienti = Sicilia_Clienti; _Disco_clienti = Disco_Clienti; _Ferra_clienti = Ferra_Clienti; _Marro_clienti = Marro_Clienti; _Sarom_clienti = Sarom_Clienti; _Gitoga_clienti = Gitoga_Clienti; _Lifta_clienti = Lifta_Clienti; _Siet_clienti = Siet_Clienti; _PMS_clienti = PMS_Clienti; _LW_clienti = LW_Clienti; _Tedes_clienti = Tedes_Clienti; _Sys_clienti = Sys_Clienti; #endregion #region causali rapportino _Sicilia_caus_rapp = Sicilia_caus_rapp; _Disco_caus_rapp = Disco_caus_rapp; _Ferra_caus_rapp = Ferra_caus_rapp; _Marro_caus_rapp = Marro_caus_rapp; _Sarom_caus_rapp = Sarom_caus_rapp; _Gitoga_caus_rapp = Gitoga_caus_rapp; _Lifta_caus_rapp = Lifta_caus_rapp; _Siet_caus_rapp = Siet_caus_rapp; _PMS_caus_rapp = PMS_caus_rapp; _LW_caus_rapp = LW_caus_rapp; _Tedes_caus_rapp = Tedes_caus_rapp; _Sys_caus_rapp = Sys_caus_rapp; #endregion #region causali pagamenti _Sicilia_pagam = Sicilia_pagam; _Disco_pagam = Disco_pagam; _Ferra_pagam = Ferra_pagam; _Marro_pagam = Marro_pagam; _Sarom_pagam = Sarom_pagam; _Gitoga_pagam = Gitoga_pagam; _Lifta_pagam = Lifta_pagam; _Siet_pagam = Siet_pagam; _PMS_pagam = PMS_pagam; _LW_pagam = LW_pagam; _Tedes_pagam = Tedes_pagam; _Sys_pagam = Sys_pagam; #endregion #region commesse _Ferra_comm = Ferra_comm; _Sicilia_comm = Sicilia_comm; _Sinergo_comm = Sinergo_comm; _Marro_comm = Marro_comm; _Siet_comm = Siet_comm; _PMS_comm = PMS_comm; _LW_comm = LW_comm; _Tedes_comm = Tedes_comm; _Sys_comm = Sys_comm; _Gitoga_comm = Gitoga_comm; _Lifta_comm = Lifta_comm; #endregion #region timbrature _Sicilia_timbr = Sicilia_timbr; _Sinergo_timbr = Sinergo_timbr; _Siet_timbr = Siet_timbr; _PMS_timbr = PMS_timbr; _LW_timbr = LW_timbr; _Tedes_timbr = Tedes_timbr; _VT_timbr = VT_timbr; _Sys_timbr = Sys_timbr; _Marro_timbr = Marro_timbr; #endregion #region rapportini //_Ferra_rapportini = Ferra_rapportini; //_Siet_rapportini = Siet_rapportini; #endregion #region storico impianto _Sicilia_sto_imp = Sicilia_sto_imp; _Siet_sto_imp = Siet_sto_imp; _PMS_sto_imp = PMS_sto_imp; _LW_sto_imp = LW_sto_imp; _Tedes_sto_imp = Tedes_sto_imp; _Sys_sto_imp = Sys_sto_imp; #endregion #region aziende collegate _Disco_azi_coll = Disco_azi_coll; _Siet_azi_coll = Siet_azi_coll; _PMS_azi_coll = PMS_azi_coll; _LW_azi_coll = LW_azi_coll; _Tedes_azi_coll = Tedes_azi_coll; #endregion #region Impianti _Marro_impianti = Marro_impianti; _Gitoga_impianti = Gitoga_impianti; _Lifta_impianti = Lifta_impianti; _Disco_impianti = Disco_impianti; _Sicilia_impianti = Sicilia_impianti; _Siet_impianti = Siet_impianti; _PMS_impianti = PMS_impianti; _LW_impianti = LW_impianti; _Tedes_impianti = Tedes_impianti; _Sys_impianti = Sys_impianti; #endregion #region sostituzioni _Marro_sostituzioni = Marro_sostituzioni; _Gitoga_sostituzioni = Gitoga_sostituzioni; _Lifta_sostituzioni = Lifta_sostituzioni; _Disco_sostituzioni = Disco_sostituzioni; _Siet_sostituzioni = Siet_sostituzioni; _Sicilia_sostituzioni = Sicilia_sostituzioni; _PMS_sostituzioni = PMS_sostituzioni; _LW_sostituzioni = LW_sostituzioni; _Tedes_sostituzioni = Tedes_sostituzioni; _Sys_sostituzioni = Sys_sostituzioni; #endregion #region ChiamateTable _Marro_chiatable = Marro_chiatable; _Siet_chiatable = Siet_chiatable; _Sicilia_chiatable = Sicilia_chiatable; _Pms_chiatable = Pms_chiatable; _LW_chiatable = LW_chiatable; _Tedes_chiatable = Tedes_chiatable; _Sys_chiatable = Sys_chiatable; #endregion #region ChiamateSeriale _Marro_chiaser = Marro_chiaser; _Gitoga_chiaser = Gitoga_chiaser; _Lifta_chiaser = Lifta_chiaser; _Siet_chiaser = Siet_chiaser; _Sicilia_chiaser = Sicilia_chiaser; _PMS_chiaser = PMS_chiaser; _Sys_chiaser = Sys_chiaser; #endregion #region ChiamateProgressivi _Marro_chiaprog = Marro_chiaprog; _Siet_chiaprog = Siet_chiaprog; _Sicilia_chiaprog = Sicilia_chiaprog; #endregion #region cpwarn _Sicilia_cpwarn = Sicilia_cpwarn; _Siet_cpwarn = Siet_cpwarn; _PMS_cpwarn = PMS_cpwarn; _LW_cpwarn = LW_cpwarn; _Tedes_cpwarn = Tedes_cpwarn; _Sys_cpwarn = Sys_cpwarn; #endregion #region VIRTUAL TASK _VT_tectable = VT_tectable; _VT_tec = VT_tec; _VT_chiutable = VT_chiutable; _VT_chiu = VT_chiu; _VT_anagtable = VT_anagtable; _VT_anag = VT_anag; _VT_rapptable = VT_rapptable; _VT_rapp = VT_rapp; _VT_impiatable = VT_impiatable; _VT_impia = VT_impia; _VT_impiaMngr = VT_impiaMngr; _VT_chiatable = VT_chiatable; _VT_chia = VT_chia; _VT_progtable = VT_progtable; _VT_chiaMngr = VT_chiaMngr; _VT_azi = VT_azi; _VT_reg = VT_reg; _VT_AziPres = VT_AziPres; _VT_Comm = VT_Comm; _VT_CommTable = VT_CommTable; _VT_CommApp = VT_CommApp; _VT_DatiAzienda = VT_DatiAzienda; _VT_Rapportini = VT_Rapportini; _VT_Buoni = VT_Buoni; _VT_StoRapp = VT_StoRapp; _VT_articoliTable = VT_artTable; _VT_MagNew = VT_MagNew; _VT_Magazzini = VT_Magazzini; #endregion #region Commesse desc _Siet_commDesc = Siet_commDesc; _Marro_commDesc = Marro_commDesc; #endregion #region Associazione codici chiusura - codici intervento _Disco_ccci = Disco_ccci; _Disco_ccciView = Disco_ccciView; #endregion #region Buoni Tabella _LW_Buoni = LW_Buoni; _Sys_Buoni = Sys_Buoni; #endregion */ } #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 getComponentiByTenant(string tenant) { var dbContext = _dbContextFactory.GetDbContext(tenant); return dbContext.Compo; // 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 getChiamateTableByTenant(string tenant) { var dbContext = _dbContextFactory.GetDbContext(tenant); return dbContext.ChiamateTables; // Use Set() to handle different DbContexts } private DbSet getBuoniByTenant(string tenant) { var dbContext = _dbContextFactory.GetDbContext(tenant); return dbContext.Buoni; // Use Set() to handle different DbContexts } #endregion #region Utility private async Task readConf(string ten) { Configurazioni c=new Configurazioni(); List co =new List(); if(_config is not null && _config.conf is not null) //co = await _config.conf.Where(t => t.azienda_adhoc == ten).ToListAsync(); co = await _config.conf.Where(t => t.azienda == ten).ToListAsync(); foreach (var a in co) { c.azienda = a.azienda != null ? a.azienda.Trim() : string.Empty; ; c.prefisso_buoni_chia = a.prefisso_buoni_chia!=null ?a.prefisso_buoni_chia.Trim():string.Empty; c.prefisso_buoni_man = a.prefisso_buoni_man !=null ? a.prefisso_buoni_man.Trim():string.Empty; c.path_buoni = a.path_buoni != null ? a.path_buoni.Trim() : string.Empty; c.ftp_url = a.ftp_url != null ? a.ftp_url.Trim() : string.Empty; c.ftp_usr = a.ftp_usr != null ? a.ftp_usr.Trim() : string.Empty; c.ftp_pwd = a.ftp_pwd != null ? a.ftp_pwd.Trim() : string.Empty; c.listino=a.listino!=null? a.listino.Trim() : string.Empty; c.abilita_naviga = a.abilita_naviga != null ? a.abilita_naviga : true; c.abilita_telefona = a.abilita_telefona != null ? a.abilita_telefona : true; c.abilita_chiamate = a.abilita_chiamate != null ? a.abilita_chiamate : true; c.abilita_manutenzioni = a.abilita_manutenzioni != null ? a.abilita_manutenzioni : true; c.abilita_barcode = a.abilita_barcode != null ? a.abilita_barcode : true; c.chiamate_accetta = a.chiamate_accetta != null ? a.chiamate_accetta : true; c.chiamate_accetta_barcode = a.chiamate_accetta_barcode != null ? a.chiamate_accetta_barcode : true; c.chiamate_accetta_offline = a.chiamate_accetta_offline != null ? a.chiamate_accetta_offline : true; c.chiamate_rifiuta = a.chiamate_rifiuta != null ? a.chiamate_rifiuta : true; c.chiamate_rifiuta_barcode = a.chiamate_rifiuta_barcode != null ? a.chiamate_rifiuta_barcode : true; c.chiamate_rifiuta_offline = a.chiamate_rifiuta_offline != null ? a.chiamate_rifiuta_offline : true; c.chiamate_chiudi_barcode = a.chiamate_chiudi_barcode != null ? a.chiamate_chiudi_barcode : true; c.chiamate_firma_barcode = a.chiamate_firma_barcode != null ? a.chiamate_firma_barcode : true; c.chiamate_chiudi_salva_barcode = a.chiamate_chiudi_salva_barcode != null ? a.chiamate_chiudi_salva_barcode : true; c.chiamate_chiudi_salva_offline = a.chiamate_chiudi_salva_offline != null ? a.chiamate_chiudi_salva_offline : true; c.manutenzioni_accetta = a.manutenzioni_accetta != null ? a.manutenzioni_accetta : true; c.manutenzioni_rifiuta = a.manutenzioni_rifiuta != null ? a.manutenzioni_rifiuta : true; c.manutenzioni_accetta_barcode = a.manutenzioni_accetta_barcode != null ? a.manutenzioni_accetta_barcode : true; c.manutenzioni_accetta_offline = a.manutenzioni_accetta_offline != null ? a.manutenzioni_accetta_offline : true; c.manutenzioni_chiudi_barcode = a.manutenzioni_chiudi_barcode != null ? a.manutenzioni_chiudi_barcode : true; c.manutenzioni_firma_barcode = a.manutenzioni_firma_barcode != null ? a.manutenzioni_firma_barcode : true; c.manutenzioni_chiudi_salva_barcode = a.manutenzioni_chiudi_salva_barcode != null ? a.manutenzioni_chiudi_salva_barcode : true; c.manutenzioni_chiudi_salva_offline = a.manutenzioni_chiudi_salva_offline != null ? a.manutenzioni_chiudi_salva_offline : true; c.manutenzioni_rifiuta_barcode = a.manutenzioni_rifiuta_barcode != null ? a.manutenzioni_rifiuta_barcode : true; c.dpi_checkbox = a.dpi_checkbox != null ? a.dpi_checkbox : true; c.anagrafica = a.anagrafica != null ? a.anagrafica : true; c.stato_finale = a.stato_finale != null ? a.stato_finale : true; c.descrizione_intervento = a.descrizione_intervento != null ? a.descrizione_intervento : true; c.composizione_impianto = a.composizione_impianto != null ? a.composizione_impianto : true; c.note_intervento = a.note_intervento != null ? a.note_intervento : true; c.esito_intervento = a.esito_intervento != null ? a.esito_intervento : true; c.ora_inizio_fine = a.ora_inizio_fine != null ? a.ora_inizio_fine : true; c.materiali = a.materiali != null ? a.materiali : true; c.diritto_chiamata = a.diritto_chiamata != null ? a.diritto_chiamata : true; c.manodopera = a.manodopera != null ? a.manodopera : true; c.spese_viaggio = a.spese_viaggio != null ? a.spese_viaggio : true; c.tipo_pagamento = a.tipo_pagamento != null ? a.tipo_pagamento : true; c.note_pagamento = a.note_pagamento != null ? a.note_pagamento : true; c.causale = a.causale != null ? a.causale : true; c.time_sheet=a.time_sheet!= null ? a.time_sheet : true; c.time_sheet_offline = a.time_sheet_offline != null ? a.time_sheet_offline : true; c.costo_orario = a.costo_orario != null ? a.costo_orario : 0; c.ftp_port = a.ftp_port != null ? a.ftp_port : 0; c.storico=a.storico != null ? a.storico : true; c.storico_tecnico = a.storico_tecnico != null ? a.storico_tecnico : true; c.storico_interventi = a.storico_interventi != null ? a.storico_interventi : true; c.storico_impianto = a.storico_impianto != null ? a.storico_impianto : true; c.ricerca_impianti = a.ricerca_impianti != null ? a.ricerca_impianti : true; c.ora_inizio_fine_automatica = a.ora_inizio_fine_automatica != null ? a.ora_inizio_fine_automatica : true; c.stampa_orario = a.stampa_orario != null ? a.stampa_orario : true; c.intestazione_stampa = a.intestazione_stampa != null ? a.intestazione_stampa.Trim() : string.Empty; c.abilita_inserimento_chiamate = a.abilita_inserimento_chiamate != null ? a.abilita_inserimento_chiamate : 0; c.seriale_template_chi = a.seriale_template_chi != null ? a.seriale_template_chi : string.Empty; c.abilita_data_rapp_edit = a.abilita_data_rapp_edit != null ? a.abilita_data_rapp_edit : false; c.numeri_decimali = a.numeri_decimali != null ? a.numeri_decimali : 0; c.max_record = a.max_record != null ? a.max_record : 100; c.prezzi_visibili = a.prezzi_visibili != null ? a.prezzi_visibili : true; c.desc_supp_prodotti_visibile=a.desc_supp_prodotti_visibile!=null?a.desc_supp_prodotti_visibile:false; c.azienda_adhoc = a.azienda_adhoc != null ? a.azienda_adhoc : string.Empty; c.azienda_adhoc = a.azienda_adhoc != null ? a.azienda_adhoc : string.Empty; c.desc_interv_stampa = a.desc_interv_stampa != null ? a.desc_interv_stampa : false; c.note_interv_stampa = a.note_interv_stampa != null ? a.note_interv_stampa :false; } return c; } private string getClaimValueByToken(string token, string claimName) { string t = string.Empty; var handler = new JwtSecurityTokenHandler(); var jwtSecurityToken = handler.ReadJwtToken(token); if (jwtSecurityToken != null) { var id = jwtSecurityToken.Claims.First(claim => claim.Type == claimName).Value; t = id; } return t; } /* private DbSet getTecniciByTenant(string tenant) { DbSet? _tecs; string appo = string.Empty; switch (tenant) { case Clienti.Ferrari: _tecs = _Ferra_tecnici.Tecnici; break; case Clienti.Marrocco: _tecs = _Marro_tecnici.Tecnici; break; case Clienti.Sicilia: _tecs = _Sicilia_tecnici.Tecnici; break; case Clienti.Discovery: _tecs = _Disco_tecnici.Tecnici; break; case Clienti.Sarom: _tecs = _Sarom_tecnici.Tecnici; break; case Clienti.Sinergo: _tecs = _Sinergo_tecnici.Tecnici; break; case Clienti.Gitoga: _tecs = _Gitoga_tecnici.Tecnici; break; case Clienti.Lifta: _tecs = _Lifta_tecnici.Tecnici; break; case Clienti.Siet: _tecs = _Siet_tecnici.Tecnici; break; case Clienti.PMS: _tecs = _Pms_tecnici.Tecnici; break; case Clienti.VT: _tecs = _VT_tec.Tecnici; break; case Clienti.LW: _tecs = _LW_tecnici.Tecnici; break; case Clienti.Tedesco: _tecs = _Tedes_tecnici.Tecnici; break; case Clienti.Syscom: _tecs = _Sys_tecnici.Tecnici; break; default: _tecs = null; break; } return _tecs; } private DbSet getRappNewByTenant(string tenant) { DbSet? _rapps; switch (tenant) { case Clienti.Ferrari: _rapps = _Ferra_rapp.Rapps; break; case Clienti.Marrocco: _rapps = _Marro_rapp.Rapps; break; case Clienti.Sicilia: _rapps = _Sicilia_rapp.Rapps; break; case Clienti.Discovery: _rapps = _Disco_rapp.Rapps; break; case Clienti.Sarom: _rapps = _Sarom_rapp.Rapps; break; case Clienti.Gitoga: _rapps = _Gitoga_rapp.Rapps; break; case Clienti.Lifta: _rapps = _Lifta_rapp.Rapps; break; case Clienti.Siet: _rapps = _Siet_rapp.Rapps; break; case Clienti.PMS: _rapps = _Pms_rapp.Rapps; break; case Clienti.LW: _rapps = _LW_rapp.Rapps; break; case Clienti.Tedesco: _rapps = _Tedes_rapp.Rapps; break; case Clienti.Syscom: _rapps = _Sys_rapp.Rapps; break; default: _rapps = null; break; } return _rapps; } private DbSet getChiamateByTenant(string tenant) { DbSet? _calls; switch (tenant) { case Clienti.Ferrari: _calls = _Ferra_calltec.Chiamate; break; case Clienti.Marrocco: _calls = _Marro_calltec.Chiamate; break; case Clienti.Sicilia: _calls = _Sicilia_calltec.Chiamate; break; case Clienti.Discovery: _calls = _Disco_calltec.Chiamate; break; case Clienti.Sarom: _calls = _Sarom_calltec.Chiamate; break; case Clienti.Gitoga: _calls = _Gitoga_calltec.Chiamate; break; case Clienti.Lifta: _calls = _Lifta_calltec.Chiamate; break; case Clienti.Siet: _calls = _Siet_calltec.Chiamate; break; case Clienti.PMS: _calls = _Pms_calltec.Chiamate; break; case Clienti.VT: _calls = _VT_chia.Chiamate; break; case Clienti.LW: _calls = _LW_calltec.Chiamate; break; case Clienti.Tedesco: _calls = _Tedes_calltec.Chiamate; break; case Clienti.Syscom: _calls = _Sys_calltec.Chiamate; break; default: _calls = null; break; } return _calls; } private DbSet getChiusureByTenant(string tenant) { DbSet? _chiu; switch (tenant) { case Clienti.Ferrari: _chiu = _Ferra_chiu.Chiusure; break; case Clienti.Marrocco: _chiu = _Marro_chiu.Chiusure; break; case Clienti.Sicilia: _chiu = _Sicilia_chiu.Chiusure; break; case Clienti.Discovery: _chiu = _Disco_chiu.Chiusure; break; case Clienti.Sarom: _chiu = _Sarom_chiu.Chiusure; break; case Clienti.Gitoga: _chiu = _Gitoga_chiu.Chiusure; break; case Clienti.Lifta: _chiu = _Lifta_chiu.Chiusure; break; case Clienti.Siet: _chiu = _Siet_chiu.Chiusure; break; case Clienti.PMS: _chiu = _Pms_chiu.Chiusure; break; case Clienti.VT: _chiu = _VT_chiu.Chiu; break; case Clienti.LW: _chiu = _LW_chiu.Chiusure; break; case Clienti.Tedesco: _chiu = _Tedes_chiu.Chiusure; break; case Clienti.Syscom: _chiu = _Sys_chiu.Chiusure; break; default: _chiu = null; break; } return _chiu; } private DbSet getManutenzioniByTenant(string tenant) { DbSet? _mans; switch (tenant) { case Clienti.Ferrari: _mans = _Ferra_mp.Manutenzioni; break; case Clienti.Marrocco: _mans = _Marro_mp.Manutenzioni; break; case Clienti.Sicilia: _mans = _Sicilia_mp.Manutenzioni; break; case Clienti.Discovery: _mans = _Disco_mp.Manutenzioni; break; case Clienti.Sarom: _mans = _Sarom_mp.Manutenzioni; break; case Clienti.Gitoga: _mans = _Gitoga_mp.Manutenzioni; break; case Clienti.Lifta: _mans = _Lifta_mp.Manutenzioni; break; case Clienti.Siet: _mans = _Siet_mp.Manutenzioni; break; case Clienti.PMS: _mans = _PMS_mp.Manutenzioni; break; case Clienti.LW: _mans = _LW_mp.Manutenzioni; break; case Clienti.Tedesco: _mans = _Tedes_mp.Manutenzioni; break; case Clienti.Syscom: _mans = _Sys_mp.Manutenzioni; break; default: _mans = null; break; } return _mans; } private DbSet getPreseByTenant(string tenant) { DbSet? _pre; switch (tenant) { case Clienti.Ferrari: _pre = _Ferra_prese.Prese; break; case Clienti.Marrocco: _pre = _Marro_prese.Prese; break; case Clienti.Sicilia: _pre = _Sicilia_prese.Prese; break; case Clienti.Discovery: _pre = _Disco_prese.Prese; break; case Clienti.Sarom: _pre = _Sarom_prese.Prese; break; case Clienti.Gitoga: _pre = _Gitoga_prese.Prese; break; case Clienti.Lifta: _pre = _Lifta_prese.Prese; break; case Clienti.Siet: _pre = _Siet_prese.Prese; break; case Clienti.PMS: _pre = _PMS_prese.Prese; break; case Clienti.LW: _pre = _LW_prese.Prese; break; case Clienti.Tedesco: _pre = _Tedes_prese.Prese; break; case Clienti.Syscom: _pre = _Sys_prese.Prese; break; default: _pre = null; break; } return _pre; } private DbSet getSto_RappByTenant(string tenant) { DbSet? _sto; switch (tenant) { case Clienti.Sicilia: _sto = _Sicilia_sto_rapp.StoRapp; break; case Clienti.Discovery: _sto = _Disco_sto_rapp.StoRapp; break; case Clienti.Marrocco: _sto = _Marro_sto_rapp.StoRapp; break; case Clienti.Ferrari: _sto = _Ferra_sto_rapp.StoRapp; break; case Clienti.Sarom: _sto = _Sarom_sto_rapp.StoRapp; break; case Clienti.Gitoga: _sto = _Gitoga_sto_rapp.StoRapp; break; case Clienti.Lifta: _sto = _Lifta_sto_rapp.StoRapp; break; case Clienti.Siet: _sto = _Siet_sto_rapp.StoRapp; break; case Clienti.PMS: _sto = _PMS_sto_rapp.StoRapp; break; case Clienti.LW: _sto = _LW_sto_rapp.StoRapp; break; case Clienti.Tedesco: _sto = _Tedes_sto_rapp.StoRapp; break; case Clienti.Syscom: _sto = _Sys_sto_rapp.StoRapp; break; default: _sto = null; break; } return _sto; } private DbSet getClientiByTenant(string tenant) { DbSet? _cli; switch (tenant) { case Clienti.Sicilia: _cli = _Sicilia_clienti.Clienti; break; case Clienti.Discovery: _cli = _Disco_clienti.Clienti; break; case Clienti.Ferrari: _cli = _Ferra_clienti.Clienti; break; case Clienti.Marrocco: _cli = _Marro_clienti.Clienti; break; case Clienti.Sarom: _cli = _Sarom_clienti.Clienti; break; case Clienti.Gitoga: _cli = _Gitoga_clienti.Clienti; break; case Clienti.Lifta: _cli = _Lifta_clienti.Clienti; break; case Clienti.Siet: _cli = _Siet_clienti.Clienti; break; case Clienti.PMS: _cli = _PMS_clienti.Clienti; break; case Clienti.LW: _cli = _LW_clienti.Clienti; break; case Clienti.Tedesco: _cli = _Tedes_clienti.Clienti; break; case Clienti.Syscom: _cli = _Sys_clienti.Clienti; break; default: _cli = null; break; } return _cli; } private DbSet getCausaliRappByTenant(string tenant) { DbSet? _cau; switch (tenant) { case Clienti.Sicilia: _cau = _Sicilia_caus_rapp.Causali; break; case Clienti.Discovery: _cau = _Disco_caus_rapp.Causali; break; case Clienti.Ferrari: _cau = _Ferra_caus_rapp.Causali; break; case Clienti.Marrocco: _cau = _Marro_caus_rapp.Causali; break; case Clienti.Sarom: _cau = _Sarom_caus_rapp.Causali; break; case Clienti.Gitoga: _cau = _Gitoga_caus_rapp.Causali; break; case Clienti.Lifta: _cau = _Lifta_caus_rapp.Causali; break; case Clienti.Siet: _cau = _Siet_caus_rapp.Causali; break; case Clienti.PMS: _cau = _PMS_caus_rapp.Causali; break; case Clienti.LW: _cau = _LW_caus_rapp.Causali; break; case Clienti.Tedesco: _cau = _Tedes_caus_rapp.Causali; break; case Clienti.Syscom: _cau = _Sys_caus_rapp.Causali; break; default: _cau = null; break; } return _cau; } private DbSet getPagamentiByTenant(string tenant) { DbSet? _pag; switch (tenant) { case Clienti.Sicilia: _pag = _Sicilia_pagam.Pagamenti; break; case Clienti.Discovery: _pag = _Disco_pagam.Pagamenti; break; case Clienti.Ferrari: _pag = _Ferra_pagam.Pagamenti; break; case Clienti.Marrocco: _pag = _Marro_pagam.Pagamenti; break; case Clienti.Sarom: _pag = _Sarom_pagam.Pagamenti; break; case Clienti.Gitoga: _pag = _Gitoga_pagam.Pagamenti; break; case Clienti.Lifta: _pag = _Lifta_pagam.Pagamenti; break; case Clienti.Siet: _pag = _Siet_pagam.Pagamenti; break; case Clienti.PMS: _pag = _PMS_pagam.Pagamenti; break; case Clienti.LW: _pag = _LW_pagam.Pagamenti; break; case Clienti.Tedesco: _pag = _Tedes_pagam.Pagamenti; break; case Clienti.Syscom: _pag = _Sys_pagam.Pagamenti; break; default: _pag = null; break; } return _pag; } private DbSet getSaldiartByTenant(string tenant) { DbSet? _sa; switch (tenant) { case Clienti.Sicilia: _sa = _Sicilia_saldi.Saldi; break; case Clienti.Discovery: _sa = _Disco_saldi.Saldi; break; case Clienti.Siet : _sa = _Siet_saldi.Saldi; break; case Clienti.PMS: _sa = _PMS_saldi.Saldi; break; case Clienti.LW: _sa = _LW_saldi.Saldi; break; case Clienti.Tedesco: _sa = _Tedes_saldi.Saldi; break; case Clienti.Syscom: _sa = _Sys_saldi.Saldi; break; default: _sa = null; break; } return _sa; } private DbSet getComponentiByTenant(string tenant) { DbSet? _compon; switch (tenant) { case Clienti.Sicilia: _compon = _Sicilia_comp.Componen; break; case Clienti.Discovery: _compon = _Disco_comp.Componen; break; case Clienti.Siet: _compon = _Siet_comp.Componen; break; case Clienti.PMS: _compon = _PMS_comp.Componen; break; case Clienti.LW: _compon = _LW_comp.Componen; break; case Clienti.Tedesco: _compon = _Tedes_comp.Componen; break; case Clienti.Syscom: _compon = _Sys_comp.Componen; break; default: _compon = null; break; } return _compon; } private DbSet getComponentiTableByTenant(string tenant) { DbSet? _compon; switch (tenant) { case Clienti.Sicilia: _compon = _Sicilia_compTable.Componen; break; case Clienti.Discovery: _compon = _Disco_compTable.Componen; break; case Clienti.Siet: _compon = _Siet_compTable.Componen; break; case Clienti.PMS: _compon = _PMS_compTable.Componen; break; case Clienti.LW: _compon = _LW_compTable.Componen; break; case Clienti.Tedesco: _compon = _Tedes_compTable.Componen; break; case Clienti.Syscom: _compon = _Sys_compTable.Componen; break; default: _compon = null; break; } return _compon; } private DbSet getMagazziniByTenant(string tenant) { DbSet? _maga; switch (tenant) { case Clienti.Sicilia: _maga = _Sicilia_magazzini.Magaz; break; case Clienti.Discovery: _maga = _Disco_magazzini.Magaz; break; case Clienti.Siet: _maga = _Siet_magazzini.Magaz; break; case Clienti.PMS: _maga = _PMS_magazzini.Magaz; break; case Clienti.LW: _maga = _LW_magazzini.Magaz; break; case Clienti.Tedesco: _maga = _Tedes_magazzini.Magaz; break; case Clienti.Syscom: _maga = _Sys_magazzini.Magaz; break; default: _maga = null; break; } return _maga; } private DbSet getMag_NewByTenant(string tenant) { DbSet? _ma; switch (tenant) { case Clienti.Sicilia: _ma = _Sicilia_mag.Mag; break; case Clienti.Discovery: _ma = _Disco_mag.Mag; break; case Clienti.Siet: _ma = _Siet_mag.Mag; break; case Clienti.PMS: _ma = _PMS_mag.Mag; break; case Clienti.LW: _ma = _LW_mag.Mag; break; case Clienti.Tedesco: _ma = _Tedes_mag.Mag; break; case Clienti.Syscom: _ma = _Sys_mag.Mag; break; default: _ma = null; break; } return _ma; } private DbSet getImpiantiByTenant(string tenant) { DbSet? _imp; switch (tenant) { case Clienti.Sicilia: _imp = _Sicilia_impianti.Impia; break; case Clienti.Discovery: _imp = _Disco_impianti.Impia; break; case Clienti.Marrocco: _imp = _Marro_impianti.Impia; break; case Clienti.Ferrari: _imp = null; break; case Clienti.Sarom: _imp = null; break; case Clienti.Gitoga: _imp = _Gitoga_impianti.Impia; break; case Clienti.Lifta: _imp = _Lifta_impianti.Impia; break; case Clienti.Siet: _imp = _Siet_impianti.Impia; break; case Clienti.PMS: _imp = _PMS_impianti.Impia; break; case Clienti.LW: _imp = _LW_impianti.Impia; break; case Clienti.Tedesco: _imp = _Tedes_impianti.Impia; break; case Clienti.Syscom: _imp = _Sys_impianti.Impia; break; default: _imp = null; break; } return _imp; } private DbSet getCommesseByTenant(string tenant) { DbSet? _commesse; switch (tenant) { case Clienti.Sicilia: _commesse = _Sicilia_comm.Commesse; break; case Clienti.Discovery: _commesse = null; break; case Clienti.Ferrari: _commesse = _Ferra_comm.Commesse; break; case Clienti.Sinergo: _commesse = _Sinergo_comm.Commesse; break; case Clienti.Marrocco: _commesse = _Marro_comm.Commesse; break; case Clienti.Gitoga: _commesse = _Gitoga_comm.Commesse; break; case Clienti.Lifta: _commesse = _Lifta_comm.Commesse; break; case Clienti.Siet: _commesse = _Siet_comm.Commesse; break; case Clienti.PMS: _commesse = _PMS_comm.Commesse; break; case Clienti.LW: _commesse = _LW_comm.Commesse; break; case Clienti.Tedesco: _commesse = _Tedes_comm.Commesse; break; case Clienti.Syscom: _commesse = _Sys_comm.Commesse; break; default: _commesse = null; break; } return _commesse; } private DbSet getTimbratureByTenant(string tenant) { DbSet? _timbrature; switch (tenant) { case Clienti.Sicilia: _timbrature = _Sicilia_timbr.Timbr; break; case Clienti.Discovery: _timbrature = null; break; case Clienti.Ferrari: _timbrature = null; break; case Clienti.Sinergo: _timbrature = _Sinergo_timbr.Timbr; break; case Clienti.Siet: _timbrature = _Siet_timbr.Timbr; break; case Clienti.PMS: _timbrature = _PMS_timbr.Timbr; break; case Clienti.LW: _timbrature = _LW_timbr.Timbr; break; case Clienti.Tedesco: _timbrature = _Tedes_timbr.Timbr; break; case Clienti.VT: _timbrature = _VT_timbr.Timbr; break; case Clienti.Syscom: _timbrature = _Sys_timbr.Timbr; break; case Clienti.Marrocco: _timbrature = _Marro_timbr.Timbr; break; default: _timbrature = null; break; } return _timbrature; } private DbSet getStoricoImpiantoByTenant(string tenant) { DbSet? _sto; switch (tenant) { case Clienti.Sicilia: _sto = _Sicilia_sto_imp.StoImp; break; case Clienti.Siet: _sto = _Siet_sto_imp.StoImp; break; case Clienti.PMS : _sto = _PMS_sto_imp.StoImp; break; case Clienti.LW: _sto = _LW_sto_imp.StoImp; break; case Clienti.Tedesco: _sto = _Tedes_sto_imp.StoImp; break; case Clienti.Syscom: _sto = _Sys_sto_imp.StoImp; break; default: _sto = null; break; } return _sto; } private DbSet getAziendeRifByTenant(string tenant) { DbSet? _azi; switch (tenant) { case Clienti.Discovery: _azi = _Disco_azi_coll.Azi; break; case Clienti.Siet: _azi = _Siet_azi_coll.Azi; break; case Clienti.PMS: _azi = _PMS_azi_coll.Azi; break; case Clienti.LW: _azi = _LW_azi_coll.Azi; break; case Clienti.Tedesco: _azi = _Tedes_azi_coll.Azi; break; default: _azi = null; break; } return _azi; } private DbSet getSostituzioneByTenant(string tenant) { DbSet? _sost; switch (tenant) { case Clienti.Marrocco: _sost = _Marro_sostituzioni.Sost; break; case Clienti.Gitoga: _sost = _Gitoga_sostituzioni.Sost; break; case Clienti.Lifta: _sost = _Lifta_sostituzioni.Sost; break; case Clienti.Discovery: _sost = _Disco_sostituzioni.Sost; break; case Clienti.Siet: _sost = _Siet_sostituzioni.Sost; break; case Clienti.Sicilia: _sost = _Sicilia_sostituzioni.Sost; break; case Clienti.PMS: _sost = _PMS_sostituzioni.Sost; break; case Clienti.LW: _sost = _LW_sostituzioni.Sost; break; case Clienti.Tedesco: _sost = _Tedes_sostituzioni.Sost; break; case Clienti.Syscom: _sost = _Sys_sostituzioni.Sost; break; default: _sost = null; break; } return _sost; } private DbSet getChiamateTableByTenant(string tenant) { DbSet? _chia; switch (tenant) { case Clienti.Marrocco: case Clienti.Gitoga: case Clienti.Lifta: _chia = _Marro_chiatable.Chi; break; case Clienti.Siet: _chia = _Siet_chiatable.Chi; break; case Clienti.Sicilia: _chia = _Sicilia_chiatable.Chi; break; case Clienti.PMS: _chia = _Pms_chiatable.Chi; break; case Clienti.VT: _chia = _VT_chiatable.Chi; break; case Clienti.Tedesco: _chia = _Tedes_chiatable.Chi; break; default: _chia = null; break; } return _chia; } private DbSet getChiamateTableTaskManagerByTenant(string tenant) { DbSet? _chia; switch (tenant) { case Clienti.LW: _chia = _LW_chiatable.Chi; break; case Clienti.Syscom: _chia = _Sys_chiatable.Chi; break; default: _chia = null; break; } return _chia; } private DbSet getChiamateSerialeByTenant(string tenant) { DbSet? _chiaser; switch (tenant) { case Clienti.Marrocco: _chiaser = _Marro_chiaser.Seriali; break; case Clienti.Gitoga: _chiaser = _Gitoga_chiaser.Seriali; break; case Clienti.Lifta: _chiaser = _Lifta_chiaser.Seriali; break; case Clienti.Siet: _chiaser = _Siet_chiaser.Seriali; break; case Clienti.Sicilia: _chiaser = _Sicilia_chiaser.Seriali; break; case Clienti.PMS: _chiaser = _PMS_chiaser.Seriali; break; default: _chiaser = null; break; } return _chiaser; } private DbSet getChiamateProgressiviByTenant(string tenant) { //gestione per cvpwarn con campo float DbSet? _chiaprog; switch (tenant) { case Clienti.Marrocco: case Clienti.Gitoga: case Clienti.Lifta: _chiaprog = _Marro_chiaprog.Progressivi; break; case Clienti.Sicilia: _chiaprog = _Sicilia_chiaprog.Progressivi; break; case Clienti.Siet: _chiaprog = _Siet_chiaprog.Progressivi; break; default: _chiaprog = null; break; } return _chiaprog; } private DbSet getCpwarnByTenant(string tenant) { //gestione per cvpwarn con campo float DbSet? _cpwarn; switch (tenant) { case Clienti.Sicilia: _cpwarn = _Sicilia_cpwarn.Progressivi; break; case Clienti.Siet: _cpwarn = _Siet_cpwarn.Progressivi; break; case Clienti.PMS: _cpwarn = _PMS_cpwarn.Progressivi; break; case Clienti.LW: _cpwarn = _LW_cpwarn.Progressivi; break; case Clienti.Tedesco: _cpwarn = _Tedes_cpwarn.Progressivi; break; case Clienti.Syscom: _cpwarn = _Sys_cpwarn.Progressivi; break; default: _cpwarn = null; break; } return _cpwarn; } */ private bool checkSostituzioneAbilitata(string tenant) { bool abilitata; switch (tenant) { case Clienti.Marrocco: abilitata =true; break; case Clienti.Gitoga: abilitata = true; break; case Clienti.Lifta: abilitata = true; break; case Clienti.Discovery: abilitata = true; break; case Clienti.Siet: abilitata = true; break; case Clienti.Sicilia: abilitata = true; break; case Clienti.LW: abilitata = true; break; case Clienti.Tedesco: abilitata = true; break; case Clienti.Syscom: abilitata = true; break; case Clienti.Maras: abilitata = false; break; default: abilitata = false; break; } return abilitata; } private async Task getSeriale(string token) { string seriale = string.Empty; string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } _rapp_new = getRappNewByTenant(ten); string suff_rapp = string.Empty; string primo_seriale = string.Empty; //D000000004 switch (ten) { //Marrocco, Zucchetti sicilia,Ferrari -> prefisso rapportini E //Discovery prefisso rapportini D case Clienti.Discovery: suff_rapp = suffClienti.Discovery; primo_seriale = suff_rapp+"000000000"; break; case Clienti.Marrocco: suff_rapp = suffClienti.Marrocco; primo_seriale = suff_rapp + "000000000"; break; case Clienti.Ferrari: suff_rapp = suffClienti.Ferrari; primo_seriale = suff_rapp + "000000000"; break; case Clienti.Sicilia: suff_rapp = suffClienti.Sicilia; primo_seriale = suff_rapp + "000000000"; break; case Clienti.Sarom: suff_rapp = suffClienti.Sarom; primo_seriale = suff_rapp + "000000000"; break; case Clienti.Sinergo: suff_rapp = suffClienti.Sinergo; primo_seriale = suff_rapp + "000000000"; break; case Clienti.Gitoga: suff_rapp = suffClienti.Gitoga; primo_seriale = suff_rapp + "000000000"; break; case Clienti.Lifta: suff_rapp = suffClienti.Lifta; primo_seriale = suff_rapp + "000000000"; break; case Clienti.Siet: suff_rapp = suffClienti.Siet; primo_seriale = suff_rapp + "000000000"; break; case Clienti.PMS: suff_rapp = suffClienti.PMS; primo_seriale = suff_rapp + "000000000"; break; case Clienti.VT: suff_rapp = suffClienti.VT; primo_seriale = suff_rapp + "000000000"; break; case Clienti.LW: suff_rapp = suffClienti.LW; primo_seriale = suff_rapp + "000000000"; break; case Clienti.Tedesco: suff_rapp = suffClienti.Tedes; primo_seriale = suff_rapp + "000000000"; break; case Clienti.Syscom: suff_rapp = suffClienti.Sys; primo_seriale = suff_rapp + "000000000"; break; case Clienti.Maras: suff_rapp = suffClienti.Mara; primo_seriale = suff_rapp + "000000000"; break; } var rapp = await Task.WhenAll(_rapp_new.Where( t => t.seriale_rapportino != null && t.seriale_rapportino.Contains(suff_rapp)).OrderByDescending(t => t.seriale_rapportino).Take(1).ToListAsync()); string? ser=string.Empty; if (rapp.Any()) { foreach(var i in rapp) { if(i.Count()>0) { ser = i.First().seriale_rapportino; seriale = getNewSerialeRapportino(ser, ten); } else { seriale = primo_seriale; } } } return seriale; } private async Task getNewId(string token) { int newId =1; string ten = getClaimValueByToken(token, "tenant"); _timbr = getTimbratureByTenant(ten); var t = await Task.WhenAll(_timbr.OrderByDescending(t => t.id).Take(1).ToListAsync()); if (t.Any() && t.First().Count()>0) { foreach (var i in t) { newId = i.First().id; } newId++; } return newId; } private string getNewSerialeRapportino(string? lastSerial, string tenant) { string new_serial = string.Empty; //lastSerial = lastSerial.Substring(1, lastSerial.Length-1); lastSerial = lastSerial!=null? lastSerial.Substring(1, lastSerial.Length - 1):String.Empty; int ser = int.Parse(lastSerial); ser++; new_serial = ser.ToString(); new_serial = new_serial.PadLeft(9, '0'); switch (tenant) { case Clienti.PMS: new_serial = suffClienti.PMS + new_serial; break; case Clienti.LW: new_serial = suffClienti.LW + new_serial; break; case Clienti.Syscom: new_serial = suffClienti.Sys + new_serial; break; case Clienti.Maras: new_serial = suffClienti.Mara + new_serial; break; } return new_serial; } private string getNewSerialeBuono(string lastSerial, string suff) { //CAM00118 CA=chiamata M=Marrocco 00118=seriale //MAM00254 MA=manutenzione M=Marrocco 00254=seriale //lunghezza 8 fissa string new_serial = string.Empty; string parteNum = lastSerial.Substring(3, 5); int ser = int.Parse(parteNum); ser++; new_serial = ser.ToString(); new_serial = new_serial.PadLeft(5, '0'); new_serial = suff + new_serial; return new_serial; } private string getNewSerialeBuonoMan(string lastSerial, string suff) { //CAM00118 CA=chiamata M=Marrocco 00118=seriale //MAM00254 MA=manutenzione M=Marrocco 00254=seriale //lunghezza 8 fissa string new_serial = string.Empty; string parteNum = lastSerial.Substring(3, 5); int ser = int.Parse(parteNum); ser++; new_serial = ser.ToString(); new_serial = new_serial.PadLeft(5, '0'); new_serial = suff + new_serial; return new_serial; } private async Task getChiamataBySerial(string ser_chiamata, string token) { string new_serial = string.Empty; string ten = string.Empty; ten = getClaimValueByToken(token, "tenant"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } _chiamate = getChiamateByTenant(ten); var calltec = await _chiamate.Where( t => t.chserial == ser_chiamata && t.chcodazi == ten ).OrderBy(t => t.chdtapp).ToListAsync(); return calltec.First(); } private async Task getManutenzioneByChiave(Input i, string token ) { string ten = getClaimValueByToken(token, "tenant"); string tecnico= getClaimValueByToken(token, "tccodice"); _manutprog =getManutenzioniByTenant(ten); var manutenz = await _manutprog.Where( t => t.ctcodazi.Equals(ten) && t.ctcodimp.Trim().Equals(i.pimpianto.Trim()) && t.ctcodint.Trim().Equals(i.picodint.Trim()) && t.ctdatpro==i.pidatman //&& t.tccodice.Trim().Equals(tecnico.Trim() //la devo ripescare solo per la chiave della tabella delle manutenzioni ).ToListAsync(); Manprog risultato = manutenz.First(); return risultato; } private async Task getManutenzioneByChiave2(Prese i, string token) { string ten = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); _manutprog = getManutenzioniByTenant(ten); var manutenz = await _manutprog.Where( t => t.ctcodazi.Equals(ten) && t.ctcodimp.Trim().Equals(i.pimpianto.Trim()) && t.ctcodint.Trim().Equals(i.picodint.Trim()) && t.ctdatpro == i.pidatman //&& t.tccodice.Trim().Equals(tecnico.Trim() //la devo ripescare solo per la chiave della tabella delle manutenzioni ).ToListAsync(); Manprog risultato = manutenz.First(); return risultato; } private async Task getManutenzioneByChiaveOut(Input i, string token, Rapp_New ingresso) { string ten = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); _manutprog = getManutenzioniByTenant(ten); var manutenz = await _manutprog.Where( t => t.ctcodazi.Equals(ten) && t.ctcodimp.Trim().Equals(i.pimpianto.Trim()) && t.ctcodint.Trim().Equals(i.picodint.Trim()) && t.ctdatpro == i.pidatman //&& t.tccodice.Trim().Equals(tecnico.Trim() //la devo ripescare solo per la chiave della tabella delle manutenzioni ).ToListAsync(); Manprog risultato = manutenz.First(); risultato.ser_buono = ingresso.ser_buono; risultato.seriale_rapportino = ingresso.seriale_rapportino; return risultato; } /// vuoto=chiamata presa in carico 3=chiamata chiusa 2=manutenzione chiusa public static class TipoRapportino { /// public const string PresaInCarico = ""; /// public const string ManutenzioneChiusa = "2"; /// public const string ChiamataChiusa = "3"; /// public const string ChiamataDaCommessa = "4"; /// public const string ChiamataCapoTecnico = "5"; } private async Task checkChiamataPresa(string ten, string serChiamata,string tipo, string ten2) { //tipo rapportino ="" int trovati = 0; _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) && t.incarico!=null && t.incarico.Equals("S")).ToListAsync(); if(rapp.Any()) { trovati = rapp.Count(); } return trovati; } private async Task checkChiamataDaRilasciare(string ten, string serRapportino, string tipo,string ten2) { //tipo rapportino ="" Rapp_New trovati = null; _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) && t.incarico != null && t.incarico.Equals("S")).ToListAsync(); if (rapp.Any()) { trovati = rapp.First(); } return trovati; } private async Task checkChiamataRifiutata(string ten, string serChiamata, string tipo,string ten2) { //tipo rapportino ="" int trovati = 0; _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) && t.incarico != null && t.rifiutata.Equals("S")).ToListAsync(); if (rapp.Any()) { trovati = rapp.Count(); } return trovati; } private async Task checkChiamataChiusa(string ten, string serChiamata, string tipo) { //tipo rapportino =3 o tipo rapportino=4 int trovati = 0; _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(); if (rapp.Any()) { trovati = rapp.Count(); } return trovati; } private async Task checkTimbraturaPresente(string ten, Timbratura model) { int trovati = 0; _timbr = getTimbratureByTenant(ten); var ti = await _timbr.Where(t => t.azienda == ten && t.ora_ini== model.ora_ini && t.min_ini== model.min_ini && t.ora_fin==model.ora_fin && t.min_fin==model.min_fin && t.commessa.Equals(model.commessa) && t.data_timbratura==model.data_timbratura && t.ore_viaggio==model.ore_viaggio ).ToListAsync(); if (ti.Any()) { trovati = ti.Count(); } return trovati; } /// 200=Ok 500=ErroreInterno 400=OperazioneNonAmmessa public static class StatiRisposta { /// public const string Ok = "200"; /// public const string ErroreInterno = "500"; /// public const string OperazioneNonAmmessa = "400"; } private async Task checkManutenzionePresaInCarico(string ten, string impianto,string codint,DateTime? dataMan) { int trovati = 0; _prese=getPreseByTenant(ten); var pre =await _prese.Where(t => t.picodazi.Equals(ten) && t.pimpianto.Equals(impianto) && t.picodint.Equals(codint) && t.pidatman== dataMan).ToListAsync(); if (pre.Any()) { trovati = pre.Count(); } return trovati; } private async Task checkManutenzioneDaRilasciare(string ten, string impianto, string codint, DateTime? dataMan) { Prese p = null; _prese = getPreseByTenant(ten); var pre = await _prese.Where(t => t.picodazi.Equals(ten) && t.pimpianto.Equals(impianto) && t.picodint.Equals(codint) && t.pidatman == dataMan).ToListAsync(); if (pre.Any()) { p = pre.First(); } return p; } private async Task checkManutenzioneChiusa(string ten,string tipo,string codImp, DateTime? dataMan, string codInt) { int trovati = 0; _rapp_new = getRappNewByTenant(ten); var rapp = await _rapp_new.Where( t => t.azienda_impianto == ten && t.tipo_rapportino != null && t.tipo_rapportino.Equals(tipo) && t.seriale_chiamata !=null && string.IsNullOrEmpty(t.seriale_chiamata.Trim()) && t.codice_impianto !=null && t.codice_impianto.Equals(codImp) && t.data_validita== dataMan && t.codice_intervento !=null && t.codice_intervento.Equals(codInt) ).ToListAsync(); if (rapp.Any()) { trovati = rapp.Count(); } return trovati; } /// public static class Clienti { /// public const string Marrocco = "MARRO"; /// public const string Ferrari = "FERRA"; /// Zucchetti Sicilia public const string Sicilia = "LABSE"; /// Discovery public const string Discovery = "DISCO"; /// Sarom public const string Sarom = "SAROM"; /// Sinergo public const string Sinergo = "SINER"; /// Gitoga public const string Gitoga = "GITSR"; /// Lifta public const string Lifta = "LIFTA"; /// Siet public const string Siet = "SIET2"; /// PMS public const string PMS = "PMS00"; /// VT app public const string VT = "VIRTU"; /// Lift-web public const string LW = "DEMO "; /// Tedesco Impianti public const string Tedesco = "TEDES"; /// Syscom public const string Syscom = "A0001"; /// Syscom public const string Maras = "MARAS"; } /// public static class suffClienti { /// public const string Marrocco = "K"; /// public const string Ferrari = "Y"; /// Zucchetti Sicilia public const string Sicilia = "J"; /// Discovery public const string Discovery = "Z"; /// Sarom public const string Sarom = "H"; /// Sinergo public const string Sinergo = "Q"; /// Gitoga public const string Gitoga = "G"; /// Lifta public const string Lifta = "L"; /// Siet public const string Siet = "S"; /// PMS public const string PMS = "S"; /// Virtual task public const string VT = "V"; /// Lift web public const string LW = "L"; /// Tedesco impianti public const string Tedes = "T"; /// Syscom public const string Sys = "S"; /// Maras public const string Mara = "M"; } /// trasforma un Saldiart in un Mag_New private Mag_New saldiartToMag_New(Saldiart co, int riga,string newSerial, string tecnico) { Mag_New mn = new Mag_New(); mn.seriale_rapportino = newSerial; mn.riga = riga; mn.magazzino = co.slcodmag; mn.articolo = co.slcodice; mn.tipo_movimento = "A"; mn.quantita = co.slqtaper; mn.prezzo = co.liprezzo; mn.codice_tecnico = tecnico; mn.codlotto = co.locodice; mn.matricola = co.amcodice; mn.desc_art = co.ardesart; mn.cpccchk = getCpccchk(10); mn.desc_sup = co.desc_sup; return mn; } /// trasforma un Saldiart in un Vt_Mag_New private Vt_Mag_New SaldiArtToVtMag_New(Saldiart co, int riga, string newSerial, string tecnico, string azienda) { Vt_Mag_New vtmn = new Vt_Mag_New(); vtmn.Azienda = azienda; vtmn.Seriale_Rapportino = newSerial; vtmn.Riga = riga; vtmn.Magazzino = co.slcodmag; vtmn.Articolo = co.slcodice; vtmn.Tipo_Movimento = "A"; vtmn.Quantita = co.slqtaper; vtmn.Prezzo = co.liprezzo; vtmn.Codice_Tecnico = tecnico; vtmn.CodLotto = co.locodice; vtmn.Matricola = co.amcodice; vtmn.Desc_Art = co.ardesart; vtmn.Cpccchk = getCpccchk(10); vtmn.Desc_Sup = co.desc_sup; return vtmn; } /// trasforma un Compi_Impia in un Mag_New private Mag_New compo_ImpiaToMag_New(Compo_Impia co, int riga, string newSerial, string tecnico) { Mag_New mn = new Mag_New(); mn.seriale_rapportino = newSerial; mn.riga = riga; mn.magazzino = "001"; mn.articolo = co.cocodart; mn.tipo_movimento = "E"; mn.quantita = co.coqtaart; mn.prezzo = 0; mn.codice_tecnico = tecnico; mn.codlotto = co.lotto; mn.matricola = co.matricola; mn.cprownum = co.cprownum; mn.codimp = co.cocodimp; mn.desc_art = co.ardesart; mn.cpccchk = getCpccchk(10); mn.desc_sup = co.desc_sup; string appoNote = string.Empty; appoNote = (co.co__note != null && co.co__note.Length>254) ? co.co__note.Substring(0, 254) : co.co__note; mn.note = appoNote; return mn; } /// trasforma un Compi_Impia in un Vt_Mag_New private Vt_Mag_New compo_ImpiaToVt_Mag_New(Compo_Impia co, int riga, string newSerial, string tecnico, string azienda) { Vt_Mag_New vtmn = new Vt_Mag_New(); vtmn.Azienda = azienda; vtmn.Seriale_Rapportino = newSerial; vtmn.Riga = riga; vtmn.Matricola = "001"; vtmn.Articolo = co.cocodart; vtmn.Tipo_Movimento = "E"; vtmn.Quantita = co.coqtaart; vtmn.Prezzo = 0; vtmn.Codice_Tecnico = tecnico; vtmn.CodLotto = co.lotto; vtmn.Matricola = co.matricola; vtmn.Cprownum = co.cprownum; vtmn.CodImp = co.cocodimp; vtmn.Desc_Art = co.ardesart; vtmn.Cpccchk = getCpccchk(10); vtmn.Desc_Sup = co.desc_sup; string appoNote = string.Empty; appoNote = (co.co__note != null && co.co__note.Length>254) ? co.co__note.Substring(0, 254) : co.co__note; vtmn.Note = appoNote; return vtmn; } private static Random random = new Random(); /// crea un cpccchk public static string getCpccchk(int length) { const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; return new string(Enumerable.Repeat(chars, length).Select(s => s[random.Next(s.Length)]).ToArray()); } /// formatta l'indirizzo della lista chiamate public static string formattaItemChiamateMarrocco(Chiamate i) { string formatst = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty); sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imcodcap) ? " " + i.imcodcap.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imlocali) ? " " + i.imlocali.Trim() + " " : string.Empty); if (!string.IsNullOrEmpty(i.chcodimp)) { sb.Append("
"); sb.Append("Impianto : " + i.chcodimp.Trim()); } if (!string.IsNullOrEmpty(i.imrefref)) { sb.Append("
"); sb.Append("Ref. : " + i.imrefref.Trim()); } formatst = sb.ToString(); return formatst; } /// formatta l'indirizzo stampa chiamate public static string formattaIndirizzoStampaMarrocco(Chiamate i) { string formatst = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append("SPETT. AMM. COND. : "); sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty); sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() + " " : string.Empty); if (!string.IsNullOrEmpty(i.imrefref)) { sb.Append("
"); sb.Append("Numero Ref. : " + i.imrefref.Trim()); } formatst = sb.ToString(); return formatst; } /// formatta l'indirizzo stampa chiamateper Discovery public static string formattaIndirizzoStampaDiscovery(Chiamate i) { string formatst = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append("SPETT. AMM. COND. : "); sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty); sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imlocali) ? i.imlocali.Trim() + " " : string.Empty); formatst = sb.ToString(); return formatst; } /// formatta l'indirizzo della lista chiamate TEDESCO public static string formattaItemChiamateTedesco(Chiamate i) { string formatst = string.Empty; StringBuilder sb = new StringBuilder(); if (!string.IsNullOrEmpty(i.imdescri)) { sb.Append("N.pratica : " + i.imdescri.Trim()); sb.Append("
"); } sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty); sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imcodcap) ? " " + i.imcodcap.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imlocali) ? " " + i.imlocali.Trim() + " " : string.Empty); if (!string.IsNullOrEmpty(i.chcodimp)) { sb.Append("
"); sb.Append("Impianto : " + i.chcodimp.Trim()); } formatst = sb.ToString(); return formatst; } /// formatta l'indirizzo della lista chiamate Virtual task public static string formattaItemChiamateVT(Chiamate i) { string formatst = string.Empty; StringBuilder sb = new StringBuilder(); if (!string.IsNullOrEmpty(i.andescri)) { sb.Append("Cliente : " + i.andescri.Trim()); sb.Append("
"); } if (!string.IsNullOrEmpty(i.chcodimp)) { sb.Append("Impianto : " + i.chcodimp.Trim()); sb.Append("
"); } if(!string.IsNullOrEmpty(i.imindiri2)) { sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty); sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imcodcap) ? " " + i.imcodcap.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imlocali) ? " " + i.imlocali.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.improvin) ? " " + i.improvin.Trim() + " " : string.Empty); sb.Append("
"); } if (!string.IsNullOrEmpty(i.chrifer)) { sb.Append("Rif. : " + i.chrifer.Trim()); sb.Append("
"); } if (!string.IsNullOrEmpty(i.chtelef)) { sb.Append("Tel. : " + i.chtelef.Trim()); sb.Append("
"); } if (!string.IsNullOrEmpty(i.chcodseg)) { sb.Append("Cod.Segn. : " + i.chcodseg.Trim()); sb.Append("
"); } formatst = sb.ToString(); return formatst; } /// formatta il riferimento impainto (html) public static string formattaRiferimentoImpiantoMarrocco(Chiamate i) { string formatst = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append("N. Impianto : " + i.chcodimp.Trim()); if (!string.IsNullOrEmpty(i.imubicaz)) { sb.Append("
"); sb.Append("Ubicazione : " + i.imubicaz.Trim()); } if (!string.IsNullOrEmpty(i.chcodimp)) { sb.Append("
"); sb.Append("Matricola impianto : "); sb.Append(!string.IsNullOrEmpty(i.immatric) ? i.immatric.Trim() + " " : string.Empty); } formatst = sb.ToString(); return formatst; } /// formatta il riferimento impianto Disco (html) public static string formattaRiferimentoImpiantoDiscovery(Chiamate i) { string formatst = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append("N. Impianto : " + i.chcodimp.Trim()); if (!string.IsNullOrEmpty(i.imubicaz)) { sb.Append("
"); sb.Append("Ubicazione : " + i.imubicaz.Trim()); } if (!string.IsNullOrEmpty(i.chcodimp)) { sb.Append("
"); sb.Append("Matricola impianto : "); sb.Append(!string.IsNullOrEmpty(i.immatric) ? i.immatric.Trim() + " " : string.Empty); } formatst = sb.ToString(); return formatst; } /// formatta il riferimento impianto Ferrari (html) public static string formattaRiferimentoImpiantoFerrari(Chiamate i) { string formatst = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append("N. Impianto : " + i.chcodimp.Trim()); if (!string.IsNullOrEmpty(i.imubicaz)) { sb.Append("
"); sb.Append("Ubicazione : " + i.imubicaz.Trim()); } if (!string.IsNullOrEmpty(i.chcodimp)) { sb.Append("
"); sb.Append("Matricola impianto : "); sb.Append(!string.IsNullOrEmpty(i.immatric) ? i.immatric.Trim() + " " : string.Empty); } formatst = sb.ToString(); return formatst; } /// formatta l'indirizzo stampa manutenzioni public static string formattaIndirizzoStampaManutMarrocco(Manprog i) { string formatst = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append("SPETT. AMM. COND. :"); sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty); sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imlocali) ? i.imlocali.Trim() + " " : string.Empty); if (!string.IsNullOrEmpty(i.imrefref)) { sb.Append("
"); sb.Append("Numero Ref. : " + i.imrefref.Trim()); } formatst = sb.ToString(); return formatst; } /// formatta il riferimento impainto (html) public static string formattaIndirizzoStampaManutDiscovery(Manprog i) { string formatst = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append("SPETT. AMM. COND. :"); sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty); sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imlocali) ? i.imlocali.Trim() + " " : string.Empty); if (!string.IsNullOrEmpty(i.imrefref)) { sb.Append("
"); sb.Append("Numero Ref. : " + i.imrefref.Trim()); } formatst = sb.ToString(); return formatst; } /// formatta l'indirizzo della lista manutenzioni public static string formattaItemManutenzioniMarrocco(Manprog i) { string formatst = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty); sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imcodcap) ? " " + i.imcodcap.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imlocali) ? " " + i.imlocali.Trim() + " " : string.Empty); if (!string.IsNullOrEmpty(i.ctcodimp)) { sb.Append("
"); sb.Append("Impianto : " + i.ctcodimp.Trim()); } if (!string.IsNullOrEmpty(i.imrefref)) { sb.Append("
"); sb.Append("Ref. : " + i.imrefref.Trim()); } formatst = sb.ToString(); return formatst; } /// formatta riferimwnto impianto su buono (html) public static string formattaRifImpMarrocco(Manprog i) { string formatst = string.Empty; StringBuilder sb = new StringBuilder(); if (!string.IsNullOrEmpty(i.ctcodimp)) { sb.Append("Matricola impianto : " + i.ctcodimp.Trim()); if(!string.IsNullOrEmpty(i.immatric)) { sb.Append( " - " + i.immatric.Trim()); } } if (!string.IsNullOrEmpty(i.imubicaz)) { sb.Append("
"); sb.Append("Ubicazione : " + i.imubicaz.Trim()); } formatst = sb.ToString(); return formatst; } /// formatta riferimwnto impianto su buono (html) Disco public static string formattaRifImpDiscovery(Manprog i) { string formatst = string.Empty; StringBuilder sb = new StringBuilder(); if (!string.IsNullOrEmpty(i.ctcodimp)) { sb.Append("N. Impianto : " + i.ctcodimp.Trim()); } if (!string.IsNullOrEmpty(i.imubicaz)) { sb.Append("
"); sb.Append("Ubicazione : " + i.imubicaz.Trim()); } if (!string.IsNullOrEmpty(i.immatric)) { sb.Append("
"); sb.AppendLine("Matricola : " + i.immatric.Trim()); } formatst = sb.ToString(); return formatst; } #endregion #region Configurazioni private Configurazione_out fillConfigurazione(Configurazioni co) { Configurazione_out output = new Configurazione_out(); output.azienda = co.azienda; output.path_buoni = co.path_buoni; output.prefisso_buoni_chia = co.prefisso_buoni_chia; output.prefisso_buoni_man = co.prefisso_buoni_man; output.ftp_url = co.ftp_url; output.ftp_usr = co.ftp_usr; output.ftp_pwd = co.ftp_pwd; output.ftp_port = co.ftp_port; output.listino = co.listino; output.abilita_barcode = co.abilita_barcode; output.abilita_naviga = co.abilita_naviga; output.abilita_telefona = co.abilita_telefona; output.abilita_chiamate = co.abilita_chiamate; output.abilita_manutenzioni = co.abilita_manutenzioni; output.chiamate_accetta = co.chiamate_accetta; output.chiamate_accetta_barcode = co.chiamate_accetta_barcode; output.chiamate_accetta_offline = co.chiamate_accetta_offline; output.chiamate_rifiuta = co.chiamate_rifiuta; output.chiamate_rifiuta_barcode = co.chiamate_rifiuta_barcode; output.chiamate_rifiuta_offline = co.chiamate_rifiuta_offline; output.chiamate_chiudi_barcode = co.chiamate_chiudi_barcode; output.chiamate_firma_barcode = co.chiamate_firma_barcode; output.chiamate_chiudi_salva_barcode = co.chiamate_chiudi_salva_barcode; output.chiamate_chiudi_salva_offline = co.chiamate_chiudi_salva_offline; output.manutenzioni_accetta = co.manutenzioni_accetta; output.manutenzioni_rifiuta = co.manutenzioni_rifiuta; output.manutenzioni_accetta_barcode = co.manutenzioni_accetta_barcode; output.manutenzioni_accetta_offline = co.manutenzioni_accetta_offline; output.manutenzioni_chiudi_barcode = co.manutenzioni_chiudi_barcode; output.manutenzioni_firma_barcode = co.manutenzioni_firma_barcode; output.manutenzioni_chiudi_salva_barcode = co.manutenzioni_chiudi_salva_barcode; output.manutenzioni_chiudi_salva_offline = co.manutenzioni_chiudi_salva_offline; output.dpi_checkbox = co.dpi_checkbox; output.anagrafica = co.anagrafica; output.stato_finale = co.stato_finale; output.descrizione_intervento = co.descrizione_intervento; output.composizione_impianto = co.composizione_impianto; output.note_intervento = co.note_intervento; output.esito_intervento = co.esito_intervento; output.ora_inizio_fine = co.ora_inizio_fine; output.materiali = co.materiali; output.diritto_chiamata = co.diritto_chiamata; output.manodopera = co.manodopera; output.spese_viaggio = co.spese_viaggio; output.tipo_pagamento = co.tipo_pagamento; output.note_pagamento = co.note_pagamento; output.causale = co.causale; output.time_sheet = co.time_sheet; output.time_sheet_offline = co.time_sheet_offline; output.costo_orario = co.costo_orario; output.manutenzioni_rifiuta_barcode = co.manutenzioni_rifiuta_barcode; //OBSOLETI //output.storico = co.storico; //output.storico_tecnico = co.storico_tecnico; //FINE OBSOLETI output.storico_interventi = co.storico_interventi; output.storico_impianto = co.storico_impianto; output.ricerca_impianti = co.ricerca_impianti; output.abilita_data_rapp_edit = co.abilita_data_rapp_edit; return output; } /// Configurazioni per azienda return:ActionResult [HttpGet("configurazioni")] public async Task> configurazioni(string token) { string ten = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } Configurazione_out output = new Configurazione_out(); try { var c = await _config.conf.Where(t => t.azienda == ten).ToListAsync(); var cc = c.First(); if (cc == null) { return NotFound(); } output = fillConfigurazione(cc); //cerco le aziende collegate bool bCercaAzcoll = false; List l = new List(); 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)).ToListAsync(); if (a.Any()) { foreach (AziendaRif appo in a) { l.Add(appo); } } } output.aziende_coll = l; return StatusCode(StatusCodes.Status200OK, output); } catch(Exception ex) { string err = "Errore: " + ex.Message; output.err_detail = err; output.err_title = err; output.err_status_code = StatiRisposta.ErroreInterno; return StatusCode(StatusCodes.Status500InternalServerError, output); } } [HttpPost] [Route("configurazioni/add")] public async Task> addConfigurazione([FromBody] Configurazioni model, string token) { string ten = getClaimValueByToken(token, "tenant2"); try { using (var transaction = _config.Database.BeginTransaction()) { await _config.conf.AddAsync(model); await _config.SaveChangesAsync(); transaction.Commit(); } return StatusCode(StatusCodes.Status200OK, model); } catch (Exception ex) { string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; return StatusCode(StatusCodes.Status500InternalServerError, errmsg); } } #endregion #region Token /// token riewmpimento private Token fillTokenByInput(string tokenDevice, string tokenLogin) { Token r = new Token(); string ten = getClaimValueByToken(tokenLogin, "tenant"); string tecnico = getClaimValueByToken(tokenLogin, "tccodice"); r.tenant = ten; r.usr = tecnico; r.token = tokenDevice; r.ts = DateTime.Now; return r; } /// elimina Token private async void deleteToken(Token t) { using (var transaction = _tokens.Database.BeginTransaction()) { _tokens.tok.Remove(t); await _tokens.SaveChangesAsync(); transaction.Commit(); } } /// inserisce Token private async void insertToken(Token t) { using (var transaction = _tokens.Database.BeginTransaction()) { await _tokens.tok.AddAsync(t); await _tokens.SaveChangesAsync(); transaction.Commit(); } } /// token salvataggio [HttpPost] [Route("token/add")] public async Task> addToken(string tokenDevice, string token) { Token_out t = new Token_out(); bool da_inserire = false; try { List co = new List(); if (_tokens is not null && _tokens.tok is not null) { co = await _tokens.tok.Where(c => c.token.Equals(tokenDevice)).ToListAsync(); } Token inp = fillTokenByInput(tokenDevice, token); if (co.Count== 0) { da_inserire = true; } else { //il token c'è. controllo che sia associato all'utente corretto string ten = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); bool token_corretto_presente = false; foreach(Token tt in co) { if (tt.usr is not null && tt.usr.Equals(tecnico) && tt.tenant is not null && tt.tenant.Equals(ten)) { token_corretto_presente = true; } else { using (var transaction = _tokens.Database.BeginTransaction()) { Token entitasViewModel = _tokens.tok.Where(p => p.Id == tt.Id).FirstOrDefault(); _tokens.Entry(entitasViewModel).State = EntityState.Deleted; await _tokens.SaveChangesAsync(); transaction.Commit(); } } } if (!token_corretto_presente) da_inserire = true; } if(da_inserire) { using (var transaction = _tokens.Database.BeginTransaction()) { await _tokens.tok.AddAsync(inp); await _tokens.SaveChangesAsync(); transaction.Commit(); } t.err_status_code = StatiRisposta.Ok; } return StatusCode(StatusCodes.Status200OK, t); } catch(Exception ex) { string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; t.err_title = ex.Message; t.err_detail = errmsg; t.err_status_code = StatiRisposta.ErroreInterno; return StatusCode(StatusCodes.Status500InternalServerError, t); } } /// token salvataggio [HttpPost] [Route("token/sendMessage")] public async Task> sendMessage(string tokenDevice,string _title, string _body) { Token_out t = new Token_out(); //Token inp = fillTokenByInput(tokenDevice, tokenLogin); try { if (FirebaseApp.DefaultInstance == null) { FirebaseApp.Create(new AppOptions() { Credential = GoogleCredential.FromFile("private_key.json") }); } //var registrationToken = "dDxUDIC3QcWytp6UeVMDyT:APA91bH9y0N7Iff39Ncv0m_EjJ-hv7YTWYaL_5P37-2dob2PRuArvpfl6kmrk10GO2eJiAQ2tVT3tZX9khUD-NPyfljGbpBn1iUyjbTpL6tDF-0IgJN960v95I4_2SWM_crtSH-ZrXAK"; var registrationToken = tokenDevice; var message = new Message() { Data = new Dictionary() { { "myData", "123457777" }, }, Token = registrationToken, //Notification = new Notification() //{ // Title = _title+" "+getCpccchk(4), // Body = _body + " "+ DateTime.Now.ToString("yyyyMMddHHmmss") //} }; string response = FirebaseMessaging.DefaultInstance.SendAsync(message).Result; t.response = response; //t.response= await SendNotificationAsync(tokenDevice,"titolo","corpo del messaggio"); return StatusCode(StatusCodes.Status200OK, t); } catch (Exception ex) { string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; t.err_title = ex.Message; t.err_detail = errmsg; t.err_status_code = StatiRisposta.ErroreInterno; return StatusCode(StatusCodes.Status500InternalServerError, t); } } //SendNotificationAsync private async Task SendNotificationAsync(string token, string title, string body) { using (var client = new HttpClient()) { //var firebaseOptionsServerId = _firebaseOptions.ServerApiKey; //var firebaseOptionsSenderId = _firebaseOptions.SenderId; var firebaseOptionsServerId = "AAAAGBwLmNY:APA91bG5GmgYcaxsU8HrOqvZbb9r82tH9RAEifgKhwoj_zwBe7qei8u3BSxMzFl9Dwykd0TWRuM7ffNe6ehhDDRUqaRPj_vKM9KreJnNrqB6f2hxjPAxzk5De2Ys437-dnSAuS_8SVJV"; var firebaseOptionsSenderId = "103549737174"; client.BaseAddress = new Uri("https://fcm.googleapis.com"); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", $"key={firebaseOptionsServerId}"); client.DefaultRequestHeaders.TryAddWithoutValidation("Sender", $"id={firebaseOptionsSenderId}"); var data = new { to = token, body = body, title = title, priority = "high" }; var json = JsonConvert.SerializeObject(data); var httpContent = new StringContent(json, Encoding.UTF8, "application/json"); var result = await client.PostAsync("/fcm/send", httpContent); return result.ToString(); } } #endregion #region LOGIN /// Magazzini per login return:ActionResult [HttpGet("magazzini")] public async Task>> magazzini(string token) { List lst= new List(); string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); string tenAdhoc = getClaimValueByToken(token, "tenantConfigurazioni"); if(string.IsNullOrEmpty(ten)) { ten = tenAdhoc; } _magazzini = getMagazziniByTenant(ten); return await _magazzini.ToListAsync(); } /// Login iniziale return:ActionResult [HttpPost("loginTechnical")] public async Task< ActionResult> loginTechnical([FromBody] LoginModel model) { LoginOut o = new LoginOut(); string tenAdHoc = string.Empty; 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 { var tecnico=new List(); //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(); 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(ClaimTypes.Name,tecnico.First().tcuser), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), new Claim("tenant", tenAdHoc),//questa è la vera azienda in AdHoc. Quella del model è quella che individua l'azienda nelle configurazioni (A0001 è sempre la stessa per tutte le installazioni di ADHOC WEB) new Claim("tenantConfigurazioni", model.Tenant),//questa è l'azienda nelle configurazioni 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; Conf cc = new Conf(); //le configurazioni per VT vanno lette con il tenant generico VIRTU //2024-05-16: tornati alla impostazione iniziale per poter gestite i pulsanti per ogni cliente di VT //_confLette = await readConf(model.Tenant); cc.abilita_naviga = _confLette.abilita_naviga; cc.abilita_telefona = _confLette.abilita_telefona; 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; cc.abilita_data_rapp_edit = _confLette.abilita_data_rapp_edit; cc.numeri_decimali = _confLette.numeri_decimali; cc.max_record = _confLette.max_record; cc.prezzi_visibili = _confLette.prezzi_visibili; cc.desc_supp_prodotti_visibile = _confLette.desc_supp_prodotti_visibile; cc.azienda_adhoc = _confLette.azienda_adhoc; cc.note_interv_stampa = _confLette.note_interv_stampa; cc.desc_interv_stampa = _confLette.desc_interv_stampa; o.Config = cc; //cerco le aziende collegate List l = new List(); string ten = model.Tenant; bool bCercaAzcoll = false; bool bCercaAziVT = false; switch (ten) { case Clienti.Discovery: bCercaAzcoll = true; break; case Clienti.VT: bCercaAziVT = true; break; } if (bCercaAzcoll) { _azi_coll = getAziendeRifByTenant(ten); var a = await _azi_coll.Where(t => t.piazihoc != null && t.piazihoc.Equals(ten) && t.picodtec!=null && t.picodtec.Trim().Equals(o.Tccodice.Trim())).ToListAsync(); if (a.Any()) { foreach (AziendaRif appo in a) { string logo = !string.IsNullOrEmpty(appo.pilogurl) ? appo.pilogurl.Trim() : string.Empty; //var uriBuilder = new UriBuilder(Request.Scheme, Request.Host.Host, Request.Host.Port ?? -1); //logo = uriBuilder + logo; appo.pilogurl = logo; l.Add(appo); } } } 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); } } #endregion #region CHIAMATE private async Task getSerBuonoChiamata(string ten,string pref, string ten2) { //inizializzo il buono nel caso non lo trovi in tabella (per Sicilia è stato così) string seriale = pref+"00000"; _rapp_new = getRappNewByTenant(ten); //var rapp = await _rapp_new.Where(t => t.azienda_impianto == ten && t.ser_buono!=null && t.tipo_rapportino== TipoRapportino.ChiamataChiusa).OrderByDescending(t => t.ser_buono).Take(1).ToListAsync(); //var rapp = await _rapp_new.Where(t => t.azienda_impianto == ten && t.ser_buono != null && t.ser_buono.Trim().Contains(pref) && t.tipo_rapportino == TipoRapportino.ChiamataChiusa).OrderByDescending(t => t.ser_buono).Take(1).ToListAsync(); //tolto filtro su tipo rapportino per gestire anche il tipo 4 =commessa var rapp = await _rapp_new.Where(t => t.azienda_impianto == ten && t.ser_buono != null && t.ser_buono.Trim().Contains(pref)).OrderByDescending(t => t.ser_buono).Take(1).ToListAsync(); if (rapp != null && rapp.Count() > 0) { seriale = getNewSerialeBuono(rapp.First().ser_buono, pref); } else { seriale = getNewSerialeBuono(seriale, pref); } return seriale; } private async Task fillRappNewByInput(Input i, string token, string newSerial,Configurazioni co) { Rapp_New r = new Rapp_New(); DateTime dateIni = new DateTime(1900, 1, 1); DateTime adesso = DateTime.Now; string ten = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } _chiamate = getChiamateByTenant(ten); //i = fakeInput(i,ten); var chia = await _chiamate.Where(t => t.chserial.Trim().Equals(i.seriale_chiamata.Trim())).OrderBy(t => t.chdtapp).ToListAsync(); r.seriale_rapportino = newSerial; r.tipo_rapportino = string.Empty; r.azienda_impianto = ten; r.codice_impianto = chia.First().chcodimp; r.azienda_chiamata = ten; r.seriale_chiamata = i.seriale_chiamata; r.seriale_commessa = string.Empty; r.data_rapportino = adesso; //r.ora_ini_rapportino = adesso.Hour.ToString(); r.ora_ini_rapportino = i.ora_ini_rapportino; r.ora_fin_rapportino = "01"; r.min_ini_rapportino = i.min_ini_rapportino; r.min_fin_rapportino = "00"; r.codice_chiusura_1 = string.Empty; r.codice_chiusura_2 = string.Empty; r.codice_chiusura_3 = string.Empty; r.codice_chiusura_4 = string.Empty; r.codice_chiusura_5 = string.Empty; r.codice_chiusura_6 = string.Empty; r.codice_chiusura_7 = string.Empty; r.codice_chiusura_8 = string.Empty; r.codice_chiusura_9 = string.Empty; r.codice_chiusura_10 = string.Empty; r.descrizione_intervento = "ACCETTAZIONE chiamata " + i.seriale_chiamata; r.stato_finale = string.Empty; r.azienda_tecnico = ten; r.codice_tecnico = tecnico; r.rifiutata = "N"; r.firma = string.Empty; r.incarico = "S"; r.data_validita = dateIni; r.immagine = i.immagine; r.ser_buono = string.Empty; return r; } private async Task fillRappNewRifiutoByInput(Input i, string token, string newSerial, Configurazioni co) { Rapp_New r = new Rapp_New(); DateTime dateIni = new DateTime(1900, 1, 1); DateTime adesso = DateTime.Now; string ten = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } _chiamate = getChiamateByTenant(ten); var chia = await _chiamate.Where(t => t.chserial == i.seriale_chiamata).OrderBy(t => t.chdtapp).ToListAsync(); r.seriale_rapportino = newSerial; r.tipo_rapportino = string.Empty; r.azienda_impianto = ten; r.codice_impianto = chia.First().chcodimp; r.azienda_chiamata = ten; r.seriale_chiamata = i.seriale_chiamata; r.seriale_commessa = string.Empty; r.data_rapportino = adesso; r.ora_ini_rapportino = adesso.Hour.ToString(); r.ora_fin_rapportino = "01"; r.min_ini_rapportino = adesso.Minute.ToString(); r.min_fin_rapportino = "00"; r.codice_chiusura_1 = string.Empty; r.codice_chiusura_2 = string.Empty; r.codice_chiusura_3 = string.Empty; r.codice_chiusura_4 = string.Empty; r.codice_chiusura_5 = string.Empty; r.codice_chiusura_6 = string.Empty; r.codice_chiusura_7 = string.Empty; r.codice_chiusura_8 = string.Empty; r.codice_chiusura_9 = string.Empty; r.codice_chiusura_10 = string.Empty; r.descrizione_intervento = "RIFIUTO chiamata " + i.seriale_chiamata; r.stato_finale = string.Empty; r.azienda_tecnico = ten; r.codice_tecnico = tecnico; r.rifiutata = "S"; r.firma = string.Empty; r.incarico = "N"; r.data_validita = dateIni; r.immagine = i.immagine; r.ser_buono = string.Empty; return r; } private async Task fillRappNewChiudiByInput(Input i, string token, string newSerial, Configurazioni co) { Rapp_New r = new Rapp_New(); DateTime dateIni = new DateTime(1900, 1, 1); DateTime adesso = DateTime.Now; string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); string tecnico = getClaimValueByToken(token, "tccodice"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } var sBuono = await getSerBuonoChiamata(ten, co.prefisso_buoni_chia,ten2); _chiamate = getChiamateByTenant(ten); var chiam = await _chiamate.Where( t => t.chserial.Equals(i.seriale_chiamata) && t.chcodazi == ten && t.chtipo.Equals("X") ).OrderByDescending(t => t.chdtapp).ToListAsync(); if(chiam!=null && chiam.Count()>0) { r.tipo_rapportino = TipoRapportino.ChiamataDaCommessa; r.seriale_commessa = chiam.FirstOrDefault().chrifer; } else { r.tipo_rapportino = TipoRapportino.ChiamataChiusa; r.seriale_commessa = string.Empty; } r.seriale_rapportino = newSerial; r.azienda_impianto = ten; r.codice_impianto = i.codice_impianto; r.azienda_chiamata = ten; r.seriale_chiamata = i.seriale_chiamata; //2023-11-23: gestione data retrodatata. Se l'input è valorizzato vuol dire che l'ho editato dal campo, altrimenti passo la data di sistema if(i.data_rapportino!=null) r.data_rapportino = i.data_rapportino; else r.data_rapportino = adesso; r.ora_ini_rapportino = i.ora_ini_rapportino; r.ora_fin_rapportino = i.ora_fin_rapportino; r.min_ini_rapportino = i.min_ini_rapportino; r.min_fin_rapportino = i.min_fin_rapportino; r.codice_chiusura_1 = i.codice_chiusura_1; r.codice_chiusura_2 = i.codice_chiusura_2; r.codice_chiusura_3 = i.codice_chiusura_3; r.codice_chiusura_4 = i.codice_chiusura_4; r.codice_chiusura_5 = i.codice_chiusura_5; r.codice_chiusura_6 = i.codice_chiusura_6; r.codice_chiusura_7 = i.codice_chiusura_7; r.codice_chiusura_8 = i.codice_chiusura_8; r.codice_chiusura_9 = i.codice_chiusura_9; r.codice_chiusura_10 = i.codice_chiusura_10; r.descrizione_intervento = i.descrizione_intervento; r.stato_finale = string.Empty; r.azienda_tecnico = ten; r.codice_tecnico = tecnico.Trim(); r.rifiutata = string.Empty; r.firma = i.firma; r.incarico = string.Empty; r.data_validita = adesso; //r.immagine = co.path_buoni + sBuono.ToString(); r.esito_intervento = i.esito_intervento; r.note_intervento = i.note_intervento; r.note_esito = i.note_esito; r.difetti_riscontrati = i.difetti_riscontrati; r.lavoro_eseguito = i.lavoro_eseguito; r.nuovo_contratto = i.nuovo_contratto; r.ore_lavoro = i.ore_lavoro; r.causale = i.causale; r.materiale = i.materiale; r.diritto_chiamata = i.diritto_chiamata; r.manodopera = i.manodopera; r.spese_viaggio = i.spese_viaggio; r.pagamento = i.pagamento; r.anticipo = i.anticipo; r.totale = i.totale; r.note_pagamento = i.note_pagamento; r.tipo_intervento = i.tipo_intervento; r.rafoto1 = i.rafoto1; r.rafoto2 = i.rafoto2; r.rafoto3 = i.rafoto3; r.rafoto4 = i.rafoto4; r.rafoto5 = i.rafoto5; r.rafoto6 = i.rafoto6; r.rafoto7 = i.rafoto7; r.rafoto8 = i.rafoto8; r.rafoto9 = i.rafoto9; r.rafoto10 = i.rafoto10; r.codice_intervento = i.codice_intervento; r.data_effettiva = i.data_effettiva; //manca codice giro ? //r.immagine = i.immagine; r.immagine = string.Format(@"{0}\{1}.jpg", co.path_buoni, sBuono.ToString()); r.ser_buono = sBuono.ToString(); Console.WriteLine(string.Format("*********** {2} metodo chiudi: tenant:{0} tenant2: {1} tenantConf: {5} buono: {3} tecnico:{4} ", ten, ten2, DateTime.Now.ToString(), r.ser_buono, r.codice_tecnico,tenConf)); return r; } private Chiamate_out fillChiamateOut(Chiamate i, string tenant) { Chiamate_out o = new Chiamate_out(); o.chcodazi = i.chcodazi; o.chserial=i.chserial; o.chstato = i.chstato; o.chtchiam = i.chtchiam; o.chdtapp = i.chdtapp; o.choraaPI = i.choraaPI; o.chminapi = i.chminapi; o.chnote = i.chnote; o.chcodimp = i.chcodimp; o.csdescr = i.csdescr; o.antelefo = i.antelefo; o.andescri = i.andescri; o.imindiri1 = i.imindiri1; o.imindiri2 = i.imindiri2; o.imindiri3 = i.imindiri3; o.imindiri4 = i.imindiri4; o.imindiri5 = i.imindiri5; o.imlocali = i.imlocali; o.imrefref = i.imrefref; //costruisco il campo indirizzo StringBuilder sb = new StringBuilder(); string chiamataIndStampa = string.Empty; switch (tenant) { case Clienti.Marrocco: #region marrocco chiamataIndStampa = formattaIndirizzoStampaMarrocco(i); #endregion break; case Clienti.Gitoga: #region gitoga chiamataIndStampa = formattaIndirizzoStampaMarrocco(i); #endregion break; case Clienti.Lifta: #region lifta chiamataIndStampa = formattaIndirizzoStampaMarrocco(i); #endregion break; case Clienti.Discovery: #region Discovery chiamataIndStampa = formattaIndirizzoStampaDiscovery(i); #endregion break; case Clienti.Siet: //ragione sociale cliente sb.Append("SPETT.LE :"); sb.Append(!string.IsNullOrEmpty(i.andescri) ? i.andescri + " " : string.Empty); sb.Append("
"); //indirizzo sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty); sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() : string.Empty); chiamataIndStampa = sb.ToString(); break; default: sb.Append("SPETT.LE :"); if(!string.IsNullOrEmpty(i.andescri)) { sb.Append(!string.IsNullOrEmpty(i.andescri) ? i.andescri + " " : string.Empty); sb.Append("
"); } sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty ); sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() : string.Empty); chiamataIndStampa = sb.ToString(); break; } o.indirizzo_stampa = chiamataIndStampa; sb.Clear(); string chiamataItemList = string.Empty; switch (tenant) { case Clienti.Marrocco: #region marrocco chiamataItemList = formattaItemChiamateMarrocco(i); #endregion break; case Clienti.Gitoga: #region gitoga chiamataItemList = formattaItemChiamateMarrocco(i); #endregion break; case Clienti.Lifta: #region lifta chiamataItemList = formattaItemChiamateMarrocco(i); #endregion break; case Clienti.Tedesco: #region Tedesco chiamataItemList = formattaItemChiamateTedesco(i); #endregion break; case Clienti.VT: chiamataItemList = formattaItemChiamateVT(i); break; default: #region default sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty); sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imcodcap) ? " " + i.imcodcap.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imlocali) ? " " + i.imlocali.Trim() + " " : string.Empty); if (!string.IsNullOrEmpty(i.chcodimp)) { sb.Append("
"); sb.Append("Impianto : " + i.chcodimp.Trim()); } chiamataItemList = sb.ToString(); break; #endregion } o.impianto_list = chiamataItemList; sb.Clear(); string rif_impianto = string.Empty; switch (tenant) { case Clienti.Marrocco: #region marrocco rif_impianto = formattaRiferimentoImpiantoMarrocco(i); #endregion break; case Clienti.Gitoga: #region gitoga rif_impianto = formattaRiferimentoImpiantoMarrocco(i); #endregion break; case Clienti.Lifta: #region lifta rif_impianto = formattaRiferimentoImpiantoMarrocco(i); #endregion break; case Clienti.Discovery: #region discovery rif_impianto = formattaRiferimentoImpiantoDiscovery(i); #endregion break; case Clienti.Ferrari: #region ferrari rif_impianto = formattaRiferimentoImpiantoFerrari(i); #endregion break; default: sb.AppendLine("N. Impianto: "+i.chcodimp ); if(!string.IsNullOrEmpty(i.imubicaz)) sb.AppendLine("Ubicazione: " + i.imubicaz); rif_impianto = sb.ToString(); break; } o.riferimento_impianto = rif_impianto; sb.Clear(); o.imcodcap = i.imcodcap; o.imcomune = i.imcomune; o.improvin = i.improvin; o.imcodnaz = i.imcodnaz; o.immatric = i.immatric; o.imnumimp = i.imnumimp; o.imubicaz = i.imubicaz; o.tcdescri = i.tcdescri; o.tccodice = i.tccodice; o.ser_rapp_ic = i.ser_rapp_ic; o.tipo_rapp_ic = i.tipo_rapp_ic; o.ic = i.ic; o.ser_rapp_rif = i.ser_rapp_rif; o.tipo_rapp_rif = i.tipo_rapp_rif; o.rif = i.rif; o.ser_rapp_chiu = i.ser_rapp_chiu; o.tipo_rapp_chiu = i.tipo_rapp_chiu; o.ser_buono_chiu = i.ser_buono_chiu; o.err_title = i.err_title; o.err_detail = i.err_detail; o.err_status_code = i.err_status_code; o.ancodice = i.ancodice; o.chiamata = i.chiamata; o.spe_viaggio = i.spe_viaggio; o.chnumero = i.chnumero; Dictionary dic = new Dictionary(); switch (tenant) { case Clienti.Marrocco: #region marrocco dic.Add("Esercizio ", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty); dic.Add("REF ", !string.IsNullOrEmpty(i.imrefref) ? i.imrefref : String.Empty); dic.Add("Riferimento:", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty); dic.Add("Telefono rif.:", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty); #endregion break; case Clienti.Gitoga: #region gitoga dic.Add("Esercizio ", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty); dic.Add("REF ", !string.IsNullOrEmpty(i.imrefref) ? i.imrefref : String.Empty); dic.Add("Riferimento:", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty); dic.Add("Telefono rif.:", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty); #endregion break; case Clienti.Lifta: #region lifta dic.Add("Esercizio ", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty); dic.Add("REF ", !string.IsNullOrEmpty(i.imrefref) ? i.imrefref : String.Empty); dic.Add("Riferimento:", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty); dic.Add("Telefono rif.:", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty); #endregion break; case Clienti.Ferrari: #region ferrari dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty); dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty); dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty); dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty); dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty); dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty); dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty); dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty); dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty); dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty); dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty); dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty); dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty); dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty); dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty); dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty); dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty); dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty); dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty); dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty); dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty); dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty); dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty); dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty); dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty); dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty); dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty); dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty); dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty); dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty); dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty); dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty); dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty); dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty); dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty); dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty); dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty); dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty); dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty); dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty); dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty); dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty); dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty); dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty); dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty); dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty); dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty); dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty); dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty); dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty); dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty); dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty); dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty); dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty); dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty); dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty); dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty); #endregion break; case Clienti.Sicilia: #region sicilia dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty); dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty); dic.Add("Numero chiamata", !string.IsNullOrEmpty( i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty); dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty); dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty); dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty); dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty); dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty); dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty); dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty); dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty); dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty); dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty); dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty); dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty); dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty); dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty); dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty); dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty); dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty); dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty); dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty); dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty); dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty); dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty); dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty); dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty); dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty); dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty); dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty); dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty); dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty); dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty); dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty); dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty); dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty); dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty); dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty); dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty); dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty); dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty); dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty); dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty); dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty); dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty); dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty); dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty); dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty); dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty); dic.Add("Data inizio manutenzione", i.imdainma !=null ? i.imdainma.ToString() : String.Empty); dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty); dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty); dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty); dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty); dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty); dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty); dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty); #endregion break; case Clienti.Discovery: #region discovery dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty); dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty); dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty); dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty); dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty); dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty); dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty); dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty); dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty); dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty); dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty); dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty); dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty); dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty); dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty); dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty); dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty); dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty); dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty); dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty); dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty); dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty); dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty); dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty); dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty); dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty); dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty); dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty); dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty); dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty); dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty); dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty); dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty); dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty); dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty); dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty); dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty); dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty); dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty); dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty); dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty); dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty); dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty); dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty); dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty); dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty); dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty); dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty); dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty); dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty); dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty); dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty); dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty); dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty); dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty); dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty); dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty); #endregion break; case Clienti.Sarom: #region Sarom dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty); dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty); dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty); dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty); dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty); dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty); dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty); dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty); dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty); dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty); dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty); dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty); dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty); dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty); dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty); dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty); dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty); dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty); dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty); dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty); dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty); dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty); dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty); dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty); dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty); dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty); dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty); dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty); dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty); dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty); dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty); dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty); dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty); dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty); dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty); dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty); dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty); dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty); dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty); dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty); dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty); dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty); dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty); dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty); dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty); dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty); dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty); dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty); dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty); dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty); dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty); dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty); dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty); dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty); dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty); dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty); dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty); #endregion break; default: break; } o.altri = dic; o.imazirif = i.imazirif; o.imrefref = i.imrefref; return o; } private Chiamate_out fillChiamateOutVT(Chiamate i, string tenant) { Chiamate_out o = new Chiamate_out(); o.chcodazi = i.chcodazi; o.chserial = i.chserial; o.chstato = i.chstato; o.chtchiam = i.chtchiam; o.chdtapp = i.chdtapp; o.choraaPI = i.choraaPI; o.chminapi = i.chminapi; o.chnote = i.chnote; o.chcodimp = i.chcodimp; o.csdescr = i.csdescr; o.antelefo = i.antelefo; o.andescri = i.andescri; o.imindiri1 = i.imindiri1; o.imindiri2 = i.imindiri2; o.imindiri3 = i.imindiri3; o.imindiri4 = i.imindiri4; o.imindiri5 = i.imindiri5; o.imlocali = i.imlocali; o.imrefref = i.imrefref; //costruisco il campo indirizzo StringBuilder sb = new StringBuilder(); string chiamataIndStampa = string.Empty; sb.Append("SPETT.LE :"); if (!string.IsNullOrEmpty(i.andescri)) { sb.Append(!string.IsNullOrEmpty(i.andescri) ? i.andescri.Trim() + " " : string.Empty); sb.Append("
"); } sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty); sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() : string.Empty); chiamataIndStampa = sb.ToString(); //switch (tenant) //{ // case Clienti.Marrocco: // #region marrocco // chiamataIndStampa = formattaIndirizzoStampaMarrocco(i); // #endregion // break; // case Clienti.Gitoga: // #region gitoga // chiamataIndStampa = formattaIndirizzoStampaMarrocco(i); // #endregion // break; // case Clienti.Lifta: // #region lifta // chiamataIndStampa = formattaIndirizzoStampaMarrocco(i); // #endregion // break; // case Clienti.Discovery: // #region Discovery // chiamataIndStampa = formattaIndirizzoStampaDiscovery(i); // #endregion // break; // case Clienti.Siet: // //ragione sociale cliente // sb.Append("SPETT.LE :"); // sb.Append(!string.IsNullOrEmpty(i.andescri) ? i.andescri + " " : string.Empty); // sb.Append("
"); // //indirizzo // sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty); // sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty); // sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty); // sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty); // sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() : string.Empty); // chiamataIndStampa = sb.ToString(); // break; // default: // sb.Append("SPETT.LE :"); // if (!string.IsNullOrEmpty(i.andescri)) // { // sb.Append(!string.IsNullOrEmpty(i.andescri) ? i.andescri + " " : string.Empty); // sb.Append("
"); // } // sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty); // sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty); // sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty); // sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty); // sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() : string.Empty); // chiamataIndStampa = sb.ToString(); // break; //} o.indirizzo_stampa = chiamataIndStampa; sb.Clear(); string chiamataItemList = string.Empty; //switch (tenant) //{ // case Clienti.Marrocco: // #region marrocco // chiamataItemList = formattaItemChiamateMarrocco(i); // #endregion // break; // case Clienti.Gitoga: // #region gitoga // chiamataItemList = formattaItemChiamateMarrocco(i); // #endregion // break; // case Clienti.Lifta: // #region lifta // chiamataItemList = formattaItemChiamateMarrocco(i); // #endregion // break; // case Clienti.Tedesco: // #region Tedesco // chiamataItemList = formattaItemChiamateTedesco(i); // #endregion // break; // case Clienti.VT: // chiamataItemList = formattaItemChiamateVT(i); // break; // default: // #region default // sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty); // sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty); // sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty); // sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty); // sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() + " " : string.Empty); // sb.Append(!string.IsNullOrEmpty(i.imcodcap) ? " " + i.imcodcap.Trim() + " " : string.Empty); // sb.Append(!string.IsNullOrEmpty(i.imlocali) ? " " + i.imlocali.Trim() + " " : string.Empty); // if (!string.IsNullOrEmpty(i.chcodimp)) // { // sb.Append("
"); // sb.Append("Impianto : " + i.chcodimp.Trim()); // } // chiamataItemList = sb.ToString(); // break; // #endregion //} chiamataItemList = formattaItemChiamateVT(i); o.impianto_list = chiamataItemList; sb.Clear(); string rif_impianto = string.Empty; //switch (tenant) //{ // case Clienti.Marrocco: // #region marrocco // rif_impianto = formattaRiferimentoImpiantoMarrocco(i); // #endregion // break; // case Clienti.Gitoga: // #region gitoga // rif_impianto = formattaRiferimentoImpiantoMarrocco(i); // #endregion // break; // case Clienti.Lifta: // #region lifta // rif_impianto = formattaRiferimentoImpiantoMarrocco(i); // #endregion // break; // case Clienti.Discovery: // #region discovery // rif_impianto = formattaRiferimentoImpiantoDiscovery(i); // #endregion // break; // case Clienti.Ferrari: // #region ferrari // rif_impianto = formattaRiferimentoImpiantoFerrari(i); // #endregion // break; // case Clienti.Siet: // #region SIET // sb.AppendLine("N. Impianto: " + i.chcodimp); // if (!string.IsNullOrEmpty(i.imubicaz)) // { // sb.AppendLine("Ubicazione: " + i.imubicaz); // } // if (!string.IsNullOrEmpty(i.chrifer)) // { // string comm = getCommessaSietBySerial(i.chrifer); // if (!string.IsNullOrEmpty(comm)) // { // sb.AppendLine("Commessa: " + comm); // } // } // rif_impianto = sb.ToString(); // #endregion // break; // default: // sb.AppendLine("N. Impianto: " + i.chcodimp); // if (!string.IsNullOrEmpty(i.imubicaz)) // sb.AppendLine("Ubicazione: " + i.imubicaz); // rif_impianto = sb.ToString(); // break; //} //sb.AppendLine("N. Impianto: " + i.chcodimp); if (!string.IsNullOrEmpty(i.imubicaz)) sb.AppendLine("Ubicazione: " + i.imubicaz); rif_impianto = sb.ToString(); o.riferimento_impianto = rif_impianto; sb.Clear(); o.imcodcap = i.imcodcap; o.imcomune = i.imcomune; o.improvin = i.improvin; o.imcodnaz = i.imcodnaz; o.immatric = i.immatric; o.imnumimp = i.imnumimp; o.imubicaz = i.imubicaz; o.tcdescri = i.tcdescri; o.tccodice = i.tccodice; o.ser_rapp_ic = i.ser_rapp_ic; o.tipo_rapp_ic = i.tipo_rapp_ic; o.ic = i.ic; o.ser_rapp_rif = i.ser_rapp_rif; o.tipo_rapp_rif = i.tipo_rapp_rif; o.rif = i.rif; o.ser_rapp_chiu = i.ser_rapp_chiu; o.tipo_rapp_chiu = i.tipo_rapp_chiu; o.ser_buono_chiu = i.ser_buono_chiu; o.err_title = i.err_title; o.err_detail = i.err_detail; o.err_status_code = i.err_status_code; o.ancodice = i.ancodice; o.chiamata = i.chiamata; o.spe_viaggio = i.spe_viaggio; o.chnumero = i.chnumero; Dictionary dic = new Dictionary(); switch (tenant) { case Clienti.Marrocco: #region marrocco dic.Add("Esercizio ", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty); dic.Add("REF ", !string.IsNullOrEmpty(i.imrefref) ? i.imrefref : String.Empty); dic.Add("Riferimento:", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty); dic.Add("Telefono rif.:", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty); #endregion break; case Clienti.Gitoga: #region gitoga dic.Add("Esercizio ", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty); dic.Add("REF ", !string.IsNullOrEmpty(i.imrefref) ? i.imrefref : String.Empty); dic.Add("Riferimento:", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty); dic.Add("Telefono rif.:", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty); #endregion break; case Clienti.Lifta: #region lifta dic.Add("Esercizio ", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty); dic.Add("REF ", !string.IsNullOrEmpty(i.imrefref) ? i.imrefref : String.Empty); dic.Add("Riferimento:", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty); dic.Add("Telefono rif.:", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty); #endregion break; case Clienti.Ferrari: #region ferrari dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty); dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty); dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty); dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty); dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty); dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty); dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty); dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty); dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty); dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty); dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty); dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty); dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty); dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty); dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty); dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty); dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty); dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty); dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty); dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty); dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty); dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty); dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty); dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty); dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty); dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty); dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty); dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty); dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty); dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty); dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty); dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty); dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty); dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty); dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty); dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty); dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty); dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty); dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty); dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty); dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty); dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty); dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty); dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty); dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty); dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty); dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty); dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty); dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty); dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty); dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty); dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty); dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty); dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty); dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty); dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty); dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty); #endregion break; case Clienti.Sicilia: #region sicilia dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty); dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty); dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty); dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty); dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty); dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty); dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty); dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty); dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty); dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty); dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty); dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty); dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty); dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty); dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty); dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty); dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty); dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty); dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty); dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty); dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty); dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty); dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty); dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty); dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty); dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty); dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty); dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty); dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty); dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty); dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty); dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty); dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty); dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty); dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty); dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty); dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty); dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty); dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty); dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty); dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty); dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty); dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty); dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty); dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty); dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty); dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty); dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty); dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty); dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty); dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty); dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty); dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty); dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty); dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty); dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty); dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty); #endregion break; case Clienti.Discovery: #region discovery dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty); dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty); dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty); dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty); dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty); dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty); dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty); dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty); dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty); dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty); dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty); dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty); dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty); dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty); dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty); dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty); dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty); dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty); dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty); dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty); dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty); dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty); dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty); dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty); dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty); dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty); dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty); dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty); dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty); dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty); dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty); dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty); dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty); dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty); dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty); dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty); dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty); dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty); dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty); dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty); dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty); dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty); dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty); dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty); dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty); dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty); dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty); dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty); dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty); dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty); dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty); dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty); dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty); dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty); dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty); dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty); dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty); #endregion break; case Clienti.Sarom: #region Sarom dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty); dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty); dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty); dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty); dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty); dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty); dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty); dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty); dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty); dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty); dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty); dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty); dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty); dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty); dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty); dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty); dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty); dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty); dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty); dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty); dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty); dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty); dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty); dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty); dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty); dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty); dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty); dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty); dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty); dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty); dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty); dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty); dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty); dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty); dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty); dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty); dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty); dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty); dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty); dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty); dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty); dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty); dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty); dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty); dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty); dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty); dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty); dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty); dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty); dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty); dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty); dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty); dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty); dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty); dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty); dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty); dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty); #endregion break; default: break; } o.altri = dic; o.imazirif = i.imazirif; o.imrefref = i.imrefref; return o; } /// Codici di chiusura per scheda intevento return:ActionResult [HttpGet("codici_chiusura")] public async Task>> codiciChiusura(string token) { try { string ten = getClaimValueByToken(token, "tenant"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } _chiusure = getChiusureByTenant(ten); var l = await _chiusure.Where(c => c.cccodazi.Equals(ten)).ToListAsync(); return StatusCode(StatusCodes.Status200OK, l); } catch (Exception ex) { string err = "Errore: " + ex.Message; return StatusCode(StatusCodes.Status500InternalServerError, err); } } /// Chiamate per tecnico e azienda (tenant) in stato C=Assegnate return:ActionResult [HttpGet("chiamate")] public async Task>> chiamate(string token) { try { List ilist = new List(); string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); string tenOut = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if(string.IsNullOrEmpty(ten)) { ten = tenConf; } _chiamate = getChiamateByTenant(ten); var calltec = await _chiamate.Where( t => t.tccodice == tecnico && t.chcodazi == ten ).OrderByDescending(t => t.chdtapp).ToListAsync(); foreach (Chiamate ch in calltec) { Chiamate_out o = new Chiamate_out(); o = fillChiamateOut(ch, ten); ilist.Add(o); } // cerco le chiamate che devo fare per sostituzioni SE funzione abilitata bool cerca_sostituzioni = false; cerca_sostituzioni = checkSostituzioneAbilitata(ten); if (cerca_sostituzioni) { //step 1 : trovo tutte le MIE sostituzioni _sostituzione = getSostituzioneByTenant(ten); var s = _sostituzione.Where(t => t.tscodazi.Equals(ten) && t.tscodsos.Trim().Equals(tecnico)); foreach (Sostituzione ss in s) { string tecnico_sostituito = string.Empty; tecnico_sostituito = ss.tscodtec != null ? ss.tscodtec : string.Empty; //2023-03-13: cancellato il filtro sulla zona perchè il tecnico che sostituisce spesso è di un'altra zona //string zona = string.Empty; //zona = ss.tscodzon != null ? ss.tscodzon : "zonavuota"; //step 2 : trovo tutte le chiamate del tecnico che sto sostitutendo e le aggiungo alla mie var calltecSost = await _chiamate.Where( t => t.tccodice == tecnico_sostituito && t.chcodazi == ten //&& t.imzonchi.Equals(zona) ).OrderByDescending(t => t.chdtapp).ToListAsync(); foreach (Chiamate ch in calltecSost) { Chiamate_out o = new Chiamate_out(); if(tenOut.Equals(Clienti.VT)) { o = fillChiamateOutVT(ch, ten); } else { o = fillChiamateOut(ch, ten); } ilist.Add(o); } } } IEnumerable enumerable = ilist as IEnumerable; //return StatusCode(StatusCodes.Status200OK, enumerable.Take(100)); return StatusCode(StatusCodes.Status200OK, enumerable); } catch (Exception ex) { string err = "Errore: " + ex.Message; return StatusCode(StatusCodes.Status500InternalServerError, err); } } /// presaInCarico: 1) crea un nuovo seriale per RAPP_NEW 2)inserisce il primo record di una presa in carico su RAPP_NEW return:ActionResult [HttpPost] [Route("chiamate/prendi_in_carico")] public async Task> prendiInCarico([FromBody] Input model, string token) { string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } Chiamate calltec=new Chiamate(); Chiamate_out calltec_out = new Chiamate_out(); string tec = string.Empty; try { tec = getClaimValueByToken(token, "tccodice"); } catch { } try { if (await checkChiamataPresa(ten, model.seriale_chiamata,TipoRapportino.PresaInCarico,ten2) ==0) { _confLette = await readConf(tenConf); string newSerial = string.Empty; newSerial = await getSeriale(token); Rapp_New r = await fillRappNewByInput(model, token, newSerial, _confLette); _service.AddRappNewToDbAsync(ten, r); System.Threading.Thread.Sleep(1000); calltec = await getChiamataBySerial(model.seriale_chiamata, token); calltec_out = fillChiamateOut(calltec, ten); calltec_out.err_status_code = StatiRisposta.Ok; } else { calltec_out.err_title = "Impossibile prendere in carico la chiamata"; calltec_out.err_detail = "Chiamata precendentemente presa in carico: " + model.seriale_chiamata; calltec_out.err_status_code = StatiRisposta.OperazioneNonAmmessa; } return StatusCode(StatusCodes.Status200OK, calltec_out); } catch (Exception ex) { string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; calltec_out.err_title = ex.Message; calltec_out.err_detail = errmsg; calltec_out.err_status_code = StatiRisposta.ErroreInterno; return StatusCode(StatusCodes.Status500InternalServerError, calltec_out); } } /// rifiuta: 1) crea un nuovo seriale per RAPP_NEW 2)inserisce record su RAPP_NEW con INCARICO=N e RIFIUTATA=S return:ActionResult [HttpPost] [Route("chiamate/rifiuta")] public async Task> rifiuta([FromBody] Input model, string token) { string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } Chiamate calltec = new Chiamate(); Chiamate_out calltec_out = new Chiamate_out(); try { if (await checkChiamataRifiutata(ten, model.seriale_chiamata, TipoRapportino.PresaInCarico,ten2) == 0) { _confLette = await readConf(tenConf); string newSerial = string.Empty; newSerial = await getSeriale(token); Rapp_New r = await fillRappNewRifiutoByInput(model, token, newSerial, _confLette); _service.AddRappNewToDbAsync(ten, r); System.Threading.Thread.Sleep(1000); calltec = await getChiamataBySerial(model.seriale_chiamata, token); calltec_out = fillChiamateOut(calltec, ten); calltec_out.err_status_code = StatiRisposta.Ok; } else { calltec_out.err_title = "Impossibile rifiutare la chiamata"; calltec_out.err_detail = "Chiamata precendentemente rifiutata: " + model.seriale_chiamata; calltec_out.err_status_code = StatiRisposta.OperazioneNonAmmessa; } return StatusCode(StatusCodes.Status200OK, calltec_out); } catch (Exception ex) { string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; calltec_out.err_title = ex.Message; calltec_out.err_detail = errmsg; calltec_out.err_status_code = StatiRisposta.ErroreInterno; return StatusCode(StatusCodes.Status500InternalServerError, calltec_out); } } /// chiudi: 1) crea un nuovo seriale per RAPP_NEW 2)inserisce record su RAPP_NEW con i dati dell'intervento return:ActionResult [HttpPost] [Route("chiamate/chiudi")] public async Task> chiudi([FromBody] Input model, string token) { string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); string tecnico = getClaimValueByToken(token, "tccodice"); string tenConf= getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } Chiamate calltec = new Chiamate(); Chiamate_out calltec_out = new Chiamate_out(); try { if (await checkChiamataChiusa(ten, model.seriale_chiamata, TipoRapportino.ChiamataChiusa) == 0) { int riga = 0; _confLette = await readConf(tenConf); string newSerial = string.Empty; newSerial = await getSeriale(token); Rapp_New r = await fillRappNewChiudiByInput(model, token, newSerial, _confLette); _service.AddRappNewToDbAsync(ten, r); System.Threading.Thread.Sleep(1000); if (model.compo_add != null && model.compo_add.Count() > 0) { foreach (Saldiart co in model.compo_add) { riga = riga + 1; Mag_New mn = new Mag_New(); mn = saldiartToMag_New(co, riga, newSerial, tecnico); _service.AddMagNewToDbAsync(ten, mn); } } if (model.compo_del != null && model.compo_del.Count() > 0) { foreach (Compo_Impia co in model.compo_del) { riga = riga + 1; Mag_New mn = new Mag_New(); mn = compo_ImpiaToMag_New(co, riga, newSerial, tecnico); _service.AddMagNewToDbAsync(ten, mn); } } calltec = await getChiamataBySerial(r.seriale_chiamata, token); calltec_out = fillChiamateOut(calltec, ten); calltec_out.err_status_code = StatiRisposta.Ok; return StatusCode(StatusCodes.Status200OK, calltec_out); } else { calltec_out.err_title = "Impossibile chiudere la chiamata"; calltec_out.err_detail = "Chiamata precendentemente chiusa: " + model.seriale_chiamata; calltec_out.err_status_code = StatiRisposta.OperazioneNonAmmessa; return StatusCode(StatusCodes.Status500InternalServerError, calltec_out); } } catch (Exception ex) { string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; calltec_out.err_title = ex.Message; calltec_out.err_detail = errmsg; calltec_out.err_status_code = StatiRisposta.ErroreInterno; return StatusCode(StatusCodes.Status500InternalServerError, calltec_out); } } /// rilascia: elimina record su RAPP_NEW con i dati dell'intervento return:ActionResult [HttpPost] [Route("chiamate/rilascia")] public async Task> rilascia([FromBody] Input model, string token) { string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); string tecnico = getClaimValueByToken(token, "tccodice"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } Chiamate calltec = new Chiamate(); Chiamate_out calltec_out = new Chiamate_out(); Rapp_New r = null; try { if ((r=await checkChiamataDaRilasciare (ten, model.seriale_rapportino, TipoRapportino.PresaInCarico, ten2))!=null) { _service.RemoveRappNewToDbAsync(ten, r); System.Threading.Thread.Sleep(1000); calltec = await getChiamataBySerial(r.seriale_chiamata, token); calltec_out = fillChiamateOut(calltec, ten); calltec_out.err_status_code = StatiRisposta.Ok; return StatusCode(StatusCodes.Status200OK, calltec_out); } else { calltec_out.err_title = "Impossibile rilasciare la chiamata.Chiamata non trovata"; StringBuilder sb = new StringBuilder(); sb.AppendLine("seriale Chiamata : " + model.seriale_chiamata); sb.AppendLine("seriale Rapportino : " + model.seriale_rapportino); calltec_out.err_detail = sb.ToString(); sb.Clear(); calltec_out.err_status_code = StatiRisposta.OperazioneNonAmmessa; return StatusCode(StatusCodes.Status500InternalServerError, calltec_out); } } catch (Exception ex) { string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; calltec_out.err_title = ex.Message; calltec_out.err_detail = errmsg; calltec_out.err_status_code = StatiRisposta.ErroreInterno; return StatusCode(StatusCodes.Status500InternalServerError, calltec_out); } //return calltec_out; } #endregion #region MANUTENZIONI private Prese fillPreseByInput(Input i, string token) { string ten = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); Prese p = new Prese(); p.picodazi = ten; p.pimpianto = i.pimpianto; p.picodint = i.picodint; p.picodtec = tecnico; p.pidatman = i.pidatman; p.cpccchk = getCpccchk(10); return p; } private async Task fillRappNewChiudiManByInput(Input model, string token, string newSerial,Configurazioni co) { Rapp_New r = new Rapp_New(); //DateTime dateIni = new DateTime(1900, 1, 1); DateTime adesso = DateTime.Now; string ten = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); string ten2 = getClaimValueByToken(token, "tenant2"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); var sBuono = await getSerBuonoManutenzione(ten, co.prefisso_buoni_man); //model = fakeInputMan(model); r.seriale_rapportino = newSerial; r.tipo_rapportino = TipoRapportino.ManutenzioneChiusa; r.azienda_impianto = ten; //r.codice_impianto = model.codice_impianto; r.codice_impianto = model.pimpianto;//da tabella PIPRESA r.azienda_chiamata = ten; r.seriale_chiamata = String.Empty; r.seriale_commessa = string.Empty; //var time = "03/07/2023 00:00:00"; //adesso = DateTime.ParseExact(time, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture); r.data_rapportino = adesso; //r.ora_ini_rapportino = adesso.Hour.ToString(); r.ora_ini_rapportino = model.ora_ini_rapportino; r.ora_fin_rapportino = model.ora_fin_rapportino; //r.min_ini_rapportino = adesso.Minute.ToString(); r.min_ini_rapportino = model.min_ini_rapportino; r.min_fin_rapportino = model.min_fin_rapportino; r.codice_chiusura_1 = model.codice_chiusura_1; r.codice_chiusura_2 = model.codice_chiusura_2; r.codice_chiusura_3 = model.codice_chiusura_3; r.codice_chiusura_4 = model.codice_chiusura_4; r.codice_chiusura_5 = model.codice_chiusura_5; r.codice_chiusura_6 = model.codice_chiusura_6; r.codice_chiusura_7 = model.codice_chiusura_7; r.codice_chiusura_8 = model.codice_chiusura_8; r.codice_chiusura_9 = model.codice_chiusura_9; r.codice_chiusura_10 = model.codice_chiusura_10; r.descrizione_intervento = model.descrizione_intervento; r.stato_finale = model.stato_finale; r.azienda_tecnico = ten; r.codice_tecnico = tecnico; r.rifiutata = string.Empty; r.firma = model.firma; r.incarico = string.Empty; r.data_validita = model.pidatman; //r.immagine = co.path_buoni + sBuono.ToString(); r.esito_intervento = model.esito_intervento; r.note_intervento = model.note_intervento; r.note_esito = model.note_esito; r.difetti_riscontrati = model.difetti_riscontrati; r.lavoro_eseguito = model.lavoro_eseguito; r.nuovo_contratto = model.nuovo_contratto; r.ore_lavoro = model.ore_lavoro; r.causale = model.causale; r.materiale = model.materiale; r.diritto_chiamata = model.diritto_chiamata; r.manodopera = model.manodopera; r.spese_viaggio = model.spese_viaggio; r.pagamento = model.pagamento; r.anticipo = model.anticipo; r.totale = model.totale; r.note_pagamento = model.note_pagamento; r.tipo_intervento = model.tipo_intervento; r.rafoto1 = model.rafoto1; r.rafoto2 = model.rafoto2; r.rafoto3 = model.rafoto3; r.rafoto4 = model.rafoto4; r.rafoto5 = model.rafoto5; r.rafoto6 = model.rafoto6; r.rafoto7 = model.rafoto7; r.rafoto8 = model.rafoto8; r.rafoto9 = model.rafoto9; r.rafoto10 = model.rafoto10; //r.codice_intervento = model.codice_intervento; r.codice_intervento = model.picodint;// da tabella PIPRESA //r.data_effettiva = model.data_effettiva; r.data_effettiva = model.pidatman;// da tabella PIPRESA //r.immagine = model.immagine; r.immagine = string.Format(@"{0}\{1}.jpg",co.path_buoni,sBuono.ToString()); //string ts = DateTime.Now.ToString("yyyyMMddHHmmss"); //r.immagine = string.Format(@"{0}\{1}_{2}.jpg", co.path_buoni, sBuono.ToString(),ts); r.ser_buono = sBuono.ToString(); Console.WriteLine(string.Format("*********** {2} metodo chiudi MAN: tenant:{0} tenant2: {1} tenantConf: {5} buono: {3} tecnico:{4} ", ten, ten2, DateTime.Now.ToString(), r.ser_buono, r.codice_tecnico, tenConf)); return r; } private async Task getSerBuonoManutenzione(string ten,string suff) { //inizializzo il buono nel caso non lo trovi in tabella (per Sicilia è stato così) //TODO da togliere //suff = "MAK"; string seriale = suff+"00000"; _rapp_new = getRappNewByTenant(ten); //var rapp = await _rapp_new.Where(t => t.azienda_impianto == ten && t.ser_buono != null && t.tipo_rapportino == TipoRapportino.ManutenzioneChiusa).OrderByDescending(t => t.seriale_rapportino).Take(1).ToListAsync(); var rapp = await _rapp_new.Where(t => t.azienda_impianto == ten && t.ser_buono != null && t.ser_buono.Trim().Contains(suff) && t.tipo_rapportino == TipoRapportino.ManutenzioneChiusa).OrderByDescending(t => t.seriale_rapportino).Take(1).ToListAsync(); if (rapp != null && rapp.Count() > 0) { seriale = getNewSerialeBuonoMan(rapp.First().ser_buono, suff); } else { seriale = getNewSerialeBuonoMan(seriale, suff); } return seriale; } private Manprog_out fillManprogOut(Manprog m, string tenant) { Manprog_out o = new Manprog_out(); o.ctcodint=m.ctcodint; o.ctdatpro = m.ctdatpro; o.ctdesint = m.ctdesint; o.imindiri1 = m.imindiri1; o.imindiri2 = m.imindiri2; o.imindiri3 = m.imindiri3; o.imindiri4 = m.imindiri4; o.imindiri5 = m.imindiri5; o.imlocali = m.imlocali; o.imcodcap = m.imcodcap; o.imcomune = m.imcomune; o.improvin = m.improvin; o.improvin = m.improvin; o.immatric = m.immatric; o.imnumimp = m.imnumimp; o.imubicaz = m.imubicaz; o.tccodice = m.tccodice; o.seriale_rapportino = m.seriale_rapportino; o.ser_buono = m.ser_buono; o.generato = m.generato; o.pimpianto = m.pimpianto; o.picodint = m.picodint; o.pidatman = m.pidatman; o.err_title = m.err_title; o.err_detail = m.err_detail; o.err_status_code = m.err_status_code; o.telefono1 = m.telefono1; o.telefono2 = m.telefono2; o.cliente = m.cliente; o.chiamata = m.chiamata; o.spe_viaggio = m.spe_viaggio; //campi chiave o.ctcodazi = tenant; o.ctcodimp = m.ctcodimp; o.ctdatpro = Convert.ToDateTime(m.ctdatpro); o.ctcodint = m.ctcodint; //FINE campi chiave StringBuilder sb = new StringBuilder(); Dictionary dic = new Dictionary(); string indStampa = string.Empty; switch (tenant) { case Clienti.Marrocco: #region marrocco indStampa = formattaIndirizzoStampaManutMarrocco(m); dic.Add("Num. Impianto", !string.IsNullOrEmpty(m.imnumimp) ? m.imnumimp : String.Empty); dic.Add("Ubicazione", !string.IsNullOrEmpty(m.imubicaz) ? m.imubicaz : String.Empty); #endregion break; case Clienti.Gitoga: #region gitoga indStampa = formattaIndirizzoStampaManutMarrocco(m); dic.Add("Num. Impianto", !string.IsNullOrEmpty(m.imnumimp) ? m.imnumimp : String.Empty); dic.Add("Ubicazione", !string.IsNullOrEmpty(m.imubicaz) ? m.imubicaz : String.Empty); #endregion break; case Clienti.Lifta: #region lifta indStampa = formattaIndirizzoStampaManutMarrocco(m); dic.Add("Num. Impianto", !string.IsNullOrEmpty(m.imnumimp) ? m.imnumimp : String.Empty); dic.Add("Ubicazione", !string.IsNullOrEmpty(m.imubicaz) ? m.imubicaz : String.Empty); #endregion break; case Clienti.Sicilia: #region sicila dictionary dic.Add("Gennaio", !string.IsNullOrEmpty(m.mpmesgen) ? m.mpmesgen : String.Empty); dic.Add("Febbraio", !string.IsNullOrEmpty(m.mpmesfeb) ? m.mpmesfeb : String.Empty); dic.Add("Marzo", !string.IsNullOrEmpty(m.mpmesmar) ? m.mpmesmar : String.Empty); dic.Add("Aprile", !string.IsNullOrEmpty(m.mpmesapr) ? m.mpmesapr : String.Empty); dic.Add("Maggio", !string.IsNullOrEmpty(m.mpmesmag) ? m.mpmesmag : String.Empty); dic.Add("Giugno", !string.IsNullOrEmpty(m.mpmesgiu) ? m.mpmesgiu : String.Empty); dic.Add("Luglio", !string.IsNullOrEmpty(m.mpmeslug) ? m.mpmeslug : String.Empty); dic.Add("Agosto", !string.IsNullOrEmpty(m.mpmesago) ? m.mpmesago : String.Empty); dic.Add("Settembre", !string.IsNullOrEmpty(m.mpmesset) ? m.mpmesset : String.Empty); dic.Add("Ottobre", !string.IsNullOrEmpty(m.mpmesott) ? m.mpmesott : String.Empty); dic.Add("Novembre", !string.IsNullOrEmpty(m.mpmesnov) ? m.mpmesnov : String.Empty); dic.Add("Dicembre", !string.IsNullOrEmpty(m.mpmesdic) ? m.mpmesdic : String.Empty); #endregion #region sicilia indirizzo sb.Append("SPETT.LE :"); sb.Append(!string.IsNullOrEmpty(m.imindiri1) ? m.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri2) ? m.imindiri2.Trim() + " " : string.Empty); sb.Append(m.imindiri3 != null ? m.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri4) ? m.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri5) ? m.imindiri5.Trim() : string.Empty); indStampa = sb.ToString(); #endregion break; case Clienti.Discovery: #region discovery indStampa = formattaIndirizzoStampaManutDiscovery(m); dic.Add("Num. Impianto", !string.IsNullOrEmpty(m.imnumimp) ? m.imnumimp : String.Empty); dic.Add("Ubicazione", !string.IsNullOrEmpty(m.imubicaz) ? m.imubicaz : String.Empty); #endregion break; default: sb.Append("SPETT.LE :"); sb.Append(!string.IsNullOrEmpty(m.imindiri1) ? m.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri2) ? m.imindiri2.Trim() + " " : string.Empty); sb.Append(m.imindiri3 != null ? m.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri4) ? m.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri5) ? m.imindiri5.Trim() : string.Empty); indStampa = sb.ToString(); break; } o.altri = dic; o.indirizzo_stampa = indStampa; sb.Clear(); string itemList = string.Empty; switch (tenant) { case Clienti.Marrocco: #region marrocco itemList = formattaItemManutenzioniMarrocco(m); #endregion break; case Clienti.Gitoga: #region gitoga itemList = formattaItemManutenzioniMarrocco(m); #endregion break; case Clienti.Lifta: #region lifta itemList = formattaItemManutenzioniMarrocco(m); #endregion break; case Clienti.Sicilia: #region sicilia lista man sb.Append(!string.IsNullOrEmpty(m.imindiri1) ? m.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri2) ? m.imindiri2.Trim() + " " : string.Empty); sb.Append(m.imindiri3 != null ? m.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri4) ? m.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri5) ? m.imindiri5.Trim() : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imcodcap) ? " " + m.imcodcap.Trim() : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imlocali) ? " " + m.imlocali.Trim() : string.Empty); if (!string.IsNullOrEmpty(m.ctcodimp)) { sb.Append("
"); sb.Append("Impianto : " + m.ctcodimp.Trim()); } itemList = sb.ToString(); #endregion break; case Clienti.Tedesco: #region Tedesco lista man if (!string.IsNullOrEmpty(m.ctcodimp)) { //var sBuono = await getSerBuonoManutenzione(ten, co.prefisso_buoni_man); var a = getDescrImpTedesco(m.ctcodimp, tenant); string appo = a.Result; sb.Append("N.pratica : " + appo); sb.Append("
"); } sb.Append(!string.IsNullOrEmpty(m.imindiri1) ? m.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri2) ? m.imindiri2.Trim() + " " : string.Empty); sb.Append(m.imindiri3 != null ? m.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri4) ? m.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri5) ? m.imindiri5.Trim() : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imcodcap) ? " " + m.imcodcap.Trim() : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imlocali) ? " " + m.imlocali.Trim() : string.Empty); if (!string.IsNullOrEmpty(m.ctcodimp)) { sb.Append("
"); sb.Append("Impianto : " + m.ctcodimp.Trim()); } if (!string.IsNullOrEmpty(m.imubicaz)) { sb.Append("
"); sb.Append("Ubicazione : " + m.imubicaz.Trim()); } if (!string.IsNullOrEmpty(m.immatric)) { sb.Append("
"); sb.Append("Matricola : " + m.immatric.Trim()); } itemList = sb.ToString(); #endregion break; default: sb.Append(!string.IsNullOrEmpty(m.imindiri1) ? m.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri2) ? m.imindiri2.Trim() + " " : string.Empty); sb.Append(m.imindiri3 != null ? m.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri4) ? m.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri5) ? m.imindiri5.Trim() : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imcodcap) ? " " + m.imcodcap.Trim() : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imlocali) ? " " + m.imlocali.Trim() : string.Empty); if (!string.IsNullOrEmpty(m.ctcodimp)) { sb.Append("
"); sb.Append("Impianto : " + m.ctcodimp.Trim()); } if (!string.IsNullOrEmpty(m.imubicaz)) { sb.Append("
"); sb.Append("Ubicazione : " + m.imubicaz.Trim()); } if (!string.IsNullOrEmpty(m.immatric)) { sb.Append("
"); sb.Append("Matricola : " + m.immatric.Trim()); } itemList = sb.ToString(); break; } o.impianto_list = itemList; sb.Clear(); string rif_impianto = string.Empty; switch (tenant) { case Clienti.Marrocco: #region marrocco rif_impianto = formattaRifImpMarrocco(m); #endregion break; case Clienti.Discovery: #region dicovery rif_impianto = formattaRifImpDiscovery(m); #endregion break; case Clienti.Gitoga: #region gitoga rif_impianto = formattaRifImpMarrocco(m); #endregion break; case Clienti.Lifta: #region lifta rif_impianto = formattaRifImpMarrocco(m); #endregion break; case Clienti.Sicilia: #region sicilia lista man if (!string.IsNullOrEmpty(m.ctcodimp)) { sb.AppendLine("Impianto : " + m.ctcodimp.Trim()); } rif_impianto = sb.ToString(); #endregion break; default: if (!string.IsNullOrEmpty(m.ctcodimp)) { sb.Append("N. Impianto : " + m.ctcodimp.Trim()); } rif_impianto = sb.ToString(); break; } o.riferimento_impianto = rif_impianto; sb.Clear(); o.imazirif = m.imazirif; o.imzonman = m.imzonman; o.imrefref = m.imrefref; return o; } private Manprog_out fillManprogOut2(Manprog m, string tenant) { Manprog_out o = new Manprog_out(); o.ctcodint = m.ctcodint; o.ctdatpro = m.ctdatpro; o.ctdesint = m.ctdesint; o.imindiri1 = m.imindiri1; o.imindiri2 = m.imindiri2; o.imindiri3 = m.imindiri3; o.imindiri4 = m.imindiri4; o.imindiri5 = m.imindiri5; o.imlocali = m.imlocali; o.imcodcap = m.imcodcap; o.imcomune = m.imcomune; o.improvin = m.improvin; o.improvin = m.improvin; o.improvin = m.improvin; o.improvin = m.improvin; o.immatric = m.immatric; o.imnumimp = m.imnumimp; o.imubicaz = m.imubicaz; o.tccodice = m.tccodice; o.seriale_rapportino = m.seriale_rapportino; o.ser_buono = m.ser_buono; o.generato = m.generato; //o.pimpianto = m.pimpianto; //questo è il campo che l'app deve avere per accorgersi del cambiamento di stato //quindi gli passo, se lo trovo vuoto, quello riletto dalla manutenzione string impianto = string.Empty; if (!string.IsNullOrEmpty(m.pimpianto)) impianto = m.pimpianto; else impianto = m.ctcodimp; o.pimpianto = impianto; //o.picodint = m.picodint; string codice_intervento = string.Empty; if (!string.IsNullOrEmpty(m.picodint)) codice_intervento = m.picodint; else codice_intervento = m.ctcodint; o.picodint = codice_intervento; //o.pidatman = m.pidatman; DateTime? data_manutenzione = null; if (m.pidatman != null) data_manutenzione = m.pidatman; else data_manutenzione = m.ctdatpro; o.pidatman = data_manutenzione; o.err_title = m.err_title; o.err_detail = m.err_detail; o.err_status_code = m.err_status_code; o.telefono1 = m.telefono1; o.telefono2 = m.telefono2; o.cliente = m.cliente; o.chiamata = m.chiamata; o.spe_viaggio = m.spe_viaggio; //campi chiave o.ctcodazi = tenant; o.ctcodimp = m.ctcodimp; o.ctdatpro = Convert.ToDateTime(m.ctdatpro); o.ctcodint = m.ctcodint; //FINE campi chiave StringBuilder sb = new StringBuilder(); Dictionary dic = new Dictionary(); //posizione 1-questa stampa è quella che va sotto il numero del buono e //ha l'indirizzo dell'impianto che comincia con spettabile string indStampa = string.Empty; switch (tenant) { case Clienti.Marrocco: #region marrocco indStampa = formattaIndirizzoStampaManutMarrocco(m); #endregion break; case Clienti.Discovery: #region discovery indStampa = formattaIndirizzoStampaManutDiscovery(m); #endregion break; case Clienti.Gitoga: #region gitoga indStampa = formattaIndirizzoStampaManutMarrocco(m); #endregion break; case Clienti.Lifta: #region lifta indStampa = formattaIndirizzoStampaManutMarrocco(m); #endregion break; case Clienti.Sicilia: #region sicila dictionary dic.Add("Gennaio", !string.IsNullOrEmpty(m.mpmesgen) ? m.mpmesgen : String.Empty); dic.Add("Febbraio", !string.IsNullOrEmpty(m.mpmesfeb) ? m.mpmesfeb : String.Empty); dic.Add("Marzo", !string.IsNullOrEmpty(m.mpmesmar) ? m.mpmesmar : String.Empty); dic.Add("Aprile", !string.IsNullOrEmpty(m.mpmesapr) ? m.mpmesapr : String.Empty); dic.Add("Maggio", !string.IsNullOrEmpty(m.mpmesmag) ? m.mpmesmag : String.Empty); dic.Add("Giugno", !string.IsNullOrEmpty(m.mpmesgiu) ? m.mpmesgiu : String.Empty); dic.Add("Luglio", !string.IsNullOrEmpty(m.mpmeslug) ? m.mpmeslug : String.Empty); dic.Add("Agosto", !string.IsNullOrEmpty(m.mpmesago) ? m.mpmesago : String.Empty); dic.Add("Settembre", !string.IsNullOrEmpty(m.mpmesset) ? m.mpmesset : String.Empty); dic.Add("Ottobre", !string.IsNullOrEmpty(m.mpmesott) ? m.mpmesott : String.Empty); dic.Add("Novembre", !string.IsNullOrEmpty(m.mpmesnov) ? m.mpmesnov : String.Empty); dic.Add("Dicembre", !string.IsNullOrEmpty(m.mpmesdic) ? m.mpmesdic : String.Empty); #endregion #region sicilia indirizzo sb.Append("SPETT.LE :"); sb.Append(!string.IsNullOrEmpty(m.imindiri1) ? m.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri2) ? m.imindiri2.Trim() + " " : string.Empty); sb.Append(m.imindiri3 != null ? m.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri4) ? m.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri5) ? m.imindiri5.Trim() : string.Empty); indStampa = sb.ToString(); #endregion break; default: sb.Append("SPETT.LE :"); sb.Append(!string.IsNullOrEmpty(m.imindiri1) ? m.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri2) ? m.imindiri2.Trim() + " " : string.Empty); sb.Append(m.imindiri3 != null ? m.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri4) ? m.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri5) ? m.imindiri5.Trim() : string.Empty); indStampa = sb.ToString(); break; } o.indirizzo_stampa = indStampa; o.altri = dic; sb.Clear(); //posizione 2 string itemList = string.Empty; switch (tenant) { case Clienti.Marrocco: #region marrocco itemList = formattaItemManutenzioniMarrocco(m); #endregion break; case Clienti.Gitoga: #region gitoga itemList = formattaItemManutenzioniMarrocco(m); #endregion break; case Clienti.Lifta: #region lifta itemList = formattaItemManutenzioniMarrocco(m); #endregion break; case Clienti.Sicilia: #region sicilia lista man sb.Append(!string.IsNullOrEmpty(m.imindiri1) ? m.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri2) ? m.imindiri2.Trim() + " " : string.Empty); sb.Append(m.imindiri3 != null ? m.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri4) ? m.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri5) ? m.imindiri5.Trim() : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imcodcap) ? "," + m.imcodcap.Trim() : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imlocali) ? "," + m.imlocali.Trim() : string.Empty); if (!string.IsNullOrEmpty(m.ctcodimp)) { sb.Append("
"); sb.Append("Impianto : " + m.ctcodimp.Trim()); } itemList = sb.ToString(); #endregion break; default: sb.Append(!string.IsNullOrEmpty(m.imindiri1) ? m.imindiri1.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri2) ? m.imindiri2.Trim() + " " : string.Empty); sb.Append(m.imindiri3 != null ? m.imindiri3.ToString() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri4) ? m.imindiri4.Trim() + " " : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imindiri5) ? m.imindiri5.Trim() : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imcodcap) ? "," + m.imcodcap.Trim() : string.Empty); sb.Append(!string.IsNullOrEmpty(m.imlocali) ? "," + m.imlocali.Trim() : string.Empty); if (!string.IsNullOrEmpty(m.ctcodimp)) { sb.Append("
"); sb.Append("Impianto : " + m.ctcodimp.Trim()); } itemList = sb.ToString(); break; } o.impianto_list = itemList; sb.Clear(); //posizione 3-questa stampa è quella che va a destra della posizione 1 //contiene i dati (matricola, ubicazione, num impianto) string rif_impianto = string.Empty; switch (tenant) { case Clienti.Marrocco: #region marrocco rif_impianto = formattaRifImpMarrocco(m); #endregion break; case Clienti.Gitoga: #region gitoga rif_impianto = formattaRifImpMarrocco(m); #endregion break; case Clienti.Discovery: #region discovery rif_impianto = formattaRifImpDiscovery(m); #endregion break; case Clienti.Lifta: #region lifta rif_impianto = formattaRifImpMarrocco(m); #endregion break; case Clienti.Sicilia: #region sicilia lista man if (!string.IsNullOrEmpty(m.ctcodimp)) { sb.AppendLine("Impianto : " + m.ctcodimp.Trim()); } rif_impianto = sb.ToString(); #endregion break; default: if (!string.IsNullOrEmpty(m.ctcodimp)) { sb.Append("N. Impianto : " + m.ctcodimp.Trim()); } rif_impianto = sb.ToString(); break; } o.riferimento_impianto = rif_impianto; sb.Clear(); o.imazirif = m.imazirif; o.imzonman = m.imzonman; o.imrefref = m.imrefref; return o; } private async Task getDescrImpTedesco(string codimp, string ten) { string descImp = string.Empty; _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 ) { foreach(Impianto i in l) { descImp = i.imdescri; } } return descImp; } /// Manutenzioni per tecnico e azienda (tenant). Intervallo: 1 mese prima e 1 mese dopo rispetto a GETDATE() con GENERATO diverso da S return:ActionResult [HttpGet("manutenzioni")] public async Task>> manutenzioni(string token) { try { string ten = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); _manutprog = getManutenzioniByTenant(ten); //var manut = await _manutprog.Where(t => t.tccodice == tecnico && t.ctcodazi == ten && t.ctdatpro >= da && t.ctdatpro <= a).OrderBy(t => t.ctcodint).ToListAsync(); var manut = await _manutprog.Where(t => t.tccodice == tecnico && t.ctcodazi == ten).OrderBy(t => t.ctcodint).ToListAsync(); List ilist = new List(); foreach (Manprog ch in manut) { Manprog_out o = new Manprog_out(); o = fillManprogOut(ch, ten); ilist.Add(o); } // cerco le manutenzioni che devo fare per sostituzioni SE abilitate bool cerca_sostituzioni = false; cerca_sostituzioni = checkSostituzioneAbilitata(ten); if(cerca_sostituzioni) { //step 1 : trovo tutte le MIE sostituzioni _sostituzione = getSostituzioneByTenant(ten); var s = _sostituzione.Where(t => t.tscodazi.Equals(ten) && t.tscodsos.Trim().Equals(tecnico)); foreach (Sostituzione ss in s) { string tecnico_sostituito = string.Empty; tecnico_sostituito = ss.tscodtec != null ? ss.tscodtec : string.Empty; //string zona = string.Empty; //zona = ss.tscodzon != null ? ss.tscodzon : "zonavuota"; //step 2 : trovo tutte le manutenzioni del tecnico che sto sostitutendo e le aggiungo alla mie var manutSost = await _manutprog.Where(t => t.tccodice == tecnico_sostituito && t.ctcodazi == ten //&& t.imzonman == zona ).OrderBy(t => t.ctcodint).ToListAsync(); foreach (Manprog ch in manutSost) { Manprog_out o = new Manprog_out(); o = fillManprogOut(ch, ten); ilist.Add(o); } } } IEnumerable enumerable = ilist as IEnumerable; //return enumerable; return StatusCode(StatusCodes.Status200OK, enumerable); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } } /// prendi_in_carico: inserisce record su Prese con i dati dell'intervento return:ActionResult TEDES_MAGAZZINIDbContext [HttpPost] [Route("manutenzioni/prendi_in_carico")] public async Task> prendiInCaricoMan([FromBody] Input model, string token) { string ten = getClaimValueByToken(token, "tenant"); Manprog man=new Manprog(); Manprog_out output = new Manprog_out(); try { if (await checkManutenzionePresaInCarico(ten, model.pimpianto, model.picodint, model.pidatman) == 0) { Prese r = fillPreseByInput(model, token); await _service.AddPreseToDbAsync(ten, r); System.Threading.Thread.Sleep(1000); man = await getManutenzioneByChiave2(r, token); output = fillManprogOut2(man, ten); output.err_status_code = StatiRisposta.Ok; return StatusCode(StatusCodes.Status200OK, output); } else { output.err_title = "Impossibile prendere in carico"; output.err_detail = "Manutenzione precedentemente presa in carico"; output.err_status_code = StatiRisposta.OperazioneNonAmmessa; return StatusCode(StatusCodes.Status500InternalServerError, output); } } catch (Exception ex) { string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; output.err_title = ex.Message; output.err_detail = errmsg; output.err_status_code = StatiRisposta.ErroreInterno; return StatusCode(StatusCodes.Status500InternalServerError, output); } //return output; } /// chiudi: 1) crea un nuovo seriale per RAPP_NEW 2)inserisce record su RAPP_NEW con i dati dell'intervento return:ActionResult [HttpPost] [Route("manutenzioni/chiudi")] public async Task> chiudiMan([FromBody] Input model, string token) { string ten = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); Manprog man = new Manprog(); Manprog_out output = new Manprog_out(); try { if (await checkManutenzioneChiusa(ten,TipoRapportino.ManutenzioneChiusa,model.pimpianto,model.pidatman,model.picodint)==0) { _confLette = await readConf(tenConf); string newSerial = string.Empty; newSerial = await getSeriale(token); Rapp_New r = await fillRappNewChiudiManByInput(model, token, newSerial, _confLette); await _service.AddRappNewToDbAsync(ten, r); System.Threading.Thread.Sleep(1000); man = await getManutenzioneByChiaveOut(model, token,r); output = fillManprogOut(man, ten); output.err_status_code = StatiRisposta.Ok; return StatusCode(StatusCodes.Status200OK, output); } else { output.err_title = "Impossibile chiudere la manutenzione"; output.err_detail = "Manutenzione precedentemente chiusa"; output.err_status_code = StatiRisposta.OperazioneNonAmmessa; return StatusCode(StatusCodes.Status500InternalServerError, output); } } catch (Exception ex) { string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; output.err_title = ex.Message; output.err_detail = errmsg; output.err_status_code = StatiRisposta.ErroreInterno; return StatusCode(StatusCodes.Status500InternalServerError, output); } //return output; } /// rilascia: elimina record su Prese con i dati dell'intervento return:ActionResult [HttpPost] [Route("manutenzioni/rilascia")] public async Task> rilasciaMan([FromBody] Input model, string token) { string ten = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); Manprog man = new Manprog(); Manprog_out output = new Manprog_out(); Prese pre = null; try { if ((pre=await checkManutenzioneDaRilasciare(ten, model.pimpianto, model.picodint, model.pidatman)) !=null) { Prese p = new Prese(); p = fillPreseByInput(model, token); await _service.RemovePreseToDbAsync(ten, p); System.Threading.Thread.Sleep(1000); man = await getManutenzioneByChiave2(pre, token); output = fillManprogOut(man, ten); output.err_status_code = StatiRisposta.Ok; return StatusCode(StatusCodes.Status200OK, output); } else { output.err_title = "Impossibile rilasciare la manutenzione. Manutenzione non trovata"; StringBuilder sb = new StringBuilder(); sb.AppendLine("pimpianto: "+model.pimpianto); sb.AppendLine("picodint: " + model.picodint); sb.AppendLine("pidatman: " + model.pidatman); sb.AppendLine("tenant: " + ten); output.err_detail = sb.ToString(); sb.Clear(); output.err_status_code = StatiRisposta.OperazioneNonAmmessa; return StatusCode(StatusCodes.Status500InternalServerError, output); } } catch (Exception ex) { string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; output.err_title = ex.Message; output.err_detail = errmsg; output.err_status_code = StatiRisposta.ErroreInterno; return StatusCode(StatusCodes.Status500InternalServerError, output); } //return output; } #endregion #region UPLOAD FILE private static void FtpSend(string url, string ftp_usr, string ftp_pwd, IFormFile files) { //string url = "ftp://10.0.0.10/LABSE/" + fileName; //url = "ftp://poloinformatico41.clienti.init-s.it:6363/test.bmp"; //esempio Discovery //url = "ftp://discoverylift.dyndns.org:21/test.jpg"; //esempio SICILIA PROD //url = "ftp://studioliuzzo.selfip.net:21/adhoc/bmp_24.bmp"; FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url); request.Credentials = new NetworkCredential(ftp_usr, ftp_pwd); //request.Credentials = new NetworkCredential("anonymous", "janeDoe@contoso.com"); request.Method = WebRequestMethods.Ftp.UploadFile; using (Stream ftpStream = request.GetRequestStream()) { files.CopyTo(ftpStream); } } private static string CheckFtp(string url, string ftp_usr, string ftp_pwd) { string _esito = "OK"; //url = "ftp://10.0.0.10/PMS/cccetcwqsss.jpg"; var request = (FtpWebRequest)WebRequest.Create(url); request.Credentials = new NetworkCredential(ftp_usr, ftp_pwd); request.Method = WebRequestMethods.Ftp.GetFileSize; try { FtpWebResponse response = (FtpWebResponse)request.GetResponse(); } catch (WebException ex) { FtpWebResponse response = (FtpWebResponse)ex.Response; if (response.StatusCode == FtpStatusCode.ActionNotTakenFileUnavailable) { _esito = "KO"; } } return _esito; } private static void SFtpSend(string url, string ftp_usr, string ftp_pwd, IFormFile files) { var connectionInfo = new Renci.SshNet.ConnectionInfo(url, "sftp", new PasswordAuthenticationMethod(ftp_usr, ftp_pwd)); // Upload File using (var sftp = new SftpClient(connectionInfo)) { sftp.Connect(); //sftp.ChangeDirectory("/MyFolder"); using (var uplfileStream = System.IO.File.OpenRead(files.FileName)) { sftp.UploadFile(uplfileStream, files.FileName, true); } sftp.Disconnect(); } } /// public static void FileUploadSFTP(IFormFile files,string ip,string usr,string pwd, int? sftp_port, string filename) { //var host = "37.159.179.14"; //var port = 27000; //var username = "apppolo"; //var password = "utx3BizRykw1hdY"; var host = ip; var port = sftp_port.Value; var username = usr; var password = pwd; // path for file you want to upload //var uploadFile = @"C:\Zucchetti\b.bmp"; var uploadFile = files.OpenReadStream(); using (var client = new SftpClient(host, port, username, password)) { client.Connect(); using (var uplfileStream = files.OpenReadStream()) { client.UploadFile(uplfileStream, filename); } } } /// Upload return:ActionResult [HttpPost] [Route("file/upload")] public async Task OnPostUpload2Async(IFormFile files, string token, string nomefile) { string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); string tecnico = getClaimValueByToken(token, "tccodice"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } //string fileName = string.Empty; //_confLette = await readConf(tenConf); try { long size = files.Length; BuoniLW modelsys = new BuoniLW(); modelsys.azienda = ten; if (nomefile.Length > 8) nomefile = nomefile.Substring(0, 8); modelsys.ser_buono = nomefile; modelsys.dt_ins = DateTime.Now; using (MemoryStream ms = new MemoryStream()) { files.CopyTo(ms); byte[] byteArray = ms.GetBuffer(); string base64String = Convert.ToBase64String(byteArray); modelsys.immagine = base64String; } //scrittura await _service.AddBuonoToDbAsync(ten,modelsys); System.Threading.Thread.Sleep(1000); return Ok(new { count = 1, size }); } catch (Exception ex) { StringBuilder sb = new StringBuilder(); string errMsg = string.Empty; if(ex.Message!=null) { sb.AppendLine(ex.Message); } if(ex.InnerException!=null) { sb.AppendLine(ex.InnerException.Message); } errMsg = sb.ToString(); Console.WriteLine(string.Format("*********** {2} ERRORE metodo upload: tenant:{0} tenant2: {3} tenantConf: {4} file: {1} tecnico:{5} ==> {6}", ten, nomefile, DateTime.Now.ToString(), ten2, tenConf, tecnico, errMsg)); return StatusCode(StatusCodes.Status500InternalServerError, "Error: "+errMsg); } } #endregion #region IMPIANTI COMPONENTI private async Task fillCompoImpiaByInput(Compo_Impia i, string token) { Compo_Impia_Table r = new Compo_Impia_Table(); string ten = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); //i = fakeInput(i, ten); _compoTable = getComponentiTableByTenant(ten); var co = await _compoTable.Where(t => t.cocodimp == i.cocodimp).OrderByDescending(t => t.cprownum).ToListAsync(); int? row = 0; if(co!=null && co.Count()>0) { row = co.First().cprownum; } row++; r.cocodimp = co.First().cocodimp; r.cprownum = row; r.cocodart = i.cocodart; r.coqtaart = i.coqtaart; r.co__note = i.co__note; r.pilotto = i.lotto; r.pimatric = i.matricola; r.cocodazi = ten; return r; } private Compo_Impia_out fillCompoImpiaOUTByInput(Compo_Impia_Table i) { Compo_Impia_out r = new Compo_Impia_out(); r.cocodimp = i.cocodimp; r.cprownum = i.cprownum; r.cocodart = i.cocodart; r.coqtaart = i.coqtaart; r.co__note = i.co__note; r.lotto = i.pilotto; r.matricola = i.pimatric; r.cocodazi = i.cocodazi; return r; } /// Componenti impianto return:ActionResult [HttpGet("componenti_impianto")] public async Task>> componenti_impianto(string token, string codimp) { Compo_Impia ci = new Compo_Impia(); try { string ten = getClaimValueByToken(token, "tenant"); List lst = new List(); _compo = getComponentiByTenant(ten); var l = await _compo.Where(t => t.cocodimp.Equals(codimp)).ToListAsync(); if(l!=null && l.Count()>0) { foreach(Compo_Impia c in l) { lst.Add(c); } } else { ci.ardesart = "Non ci sono componenti per questo impianto"; lst.Add(ci); } return StatusCode(StatusCodes.Status200OK, lst); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } } /// aggiunge un componente all'impianto. Inserisce in LABSEMICOMIMP return:ActionResult [HttpPost] [Route("componenti_impianto/add")] public async Task> addcomponente([FromBody] Compo_Impia model, string token) { string ten = getClaimValueByToken(token, "tenant"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } Compo_Impia_Table co = new Compo_Impia_Table(); Compo_Impia_out co_out = new Compo_Impia_out(); co = await fillCompoImpiaByInput(model, token); co_out = fillCompoImpiaOUTByInput(co); try { /* switch (ten) { case Clienti.Sicilia: using (var transaction = _Sicilia_compTable.Database.BeginTransaction()) { await _Sicilia_compTable.Componen.AddAsync(co); await _Sicilia_compTable.SaveChangesAsync(); transaction.Commit(); } break; case Clienti.Siet: using (var transactionSiet = _Siet_compTable.Database.BeginTransaction()) { await _Siet_compTable.Componen.AddAsync(co); await _Siet_compTable.SaveChangesAsync(); transactionSiet.Commit(); } break; case Clienti.PMS: using (var transactionPms = _PMS_compTable.Database.BeginTransaction()) { await _PMS_compTable.Componen.AddAsync(co); await _PMS_compTable.SaveChangesAsync(); transactionPms.Commit(); } break; case Clienti.LW: using (var transactionlw = _LW_compTable.Database.BeginTransaction()) { await _LW_compTable.Componen.AddAsync(co); await _LW_compTable.SaveChangesAsync(); transactionlw.Commit(); } break; case Clienti.Tedesco: using (var transactionTedes = _Tedes_compTable.Database.BeginTransaction()) { await _Tedes_compTable.Componen.AddAsync(co); await _Tedes_compTable.SaveChangesAsync(); transactionTedes.Commit(); } break; case Clienti.Syscom: using (var transactionsys = _Sys_compTable.Database.BeginTransaction()) { await _Sys_compTable.Componen.AddAsync(co); await _Sys_compTable.SaveChangesAsync(); transactionsys.Commit(); } break; default: break; } */ co_out.err_status_code = StatiRisposta.Ok; return StatusCode(StatusCodes.Status200OK, co_out); } 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, co_out); } //return co_out; } /// toglie un componente all'impianto. Cancella in LABSEMICOMIMP return:ActionResult [HttpPost] [Route("componenti_impianto/del")] public async Task> delcomponente([FromBody] Compo_Impia model, string token) { string ten = getClaimValueByToken(token, "tenant"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } _compoTable = getComponentiTableByTenant(ten); var comp = await _compoTable.Where(t => t.cocodimp == model.cocodimp && t.cprownum == model.cprownum && t.cocodazi == ten).ToListAsync(); Compo_Impia_out co_out = new Compo_Impia_out(); if (comp != null) { Compo_Impia_Table t = new Compo_Impia_Table(); t = (Compo_Impia_Table)comp.First(); co_out = fillCompoImpiaOUTByInput(t); try { /* switch (ten) { case Clienti.Sicilia: using (var transaction = _Sicilia_compTable.Database.BeginTransaction()) { _Sicilia_compTable.Entry(t).State = EntityState.Deleted; await _Sicilia_compTable.SaveChangesAsync(); transaction.Commit(); } break; case Clienti.Siet: using (var transactionSiet = _Siet_compTable.Database.BeginTransaction()) { _Siet_compTable.Entry(t).State = EntityState.Deleted; await _Siet_compTable.SaveChangesAsync(); transactionSiet.Commit(); } break; case Clienti.PMS: using (var transactionPMS = _PMS_compTable.Database.BeginTransaction()) { _PMS_compTable.Entry(t).State = EntityState.Deleted; await _PMS_compTable.SaveChangesAsync(); transactionPMS.Commit(); } break; case Clienti.LW: using (var transactionlw = _LW_compTable.Database.BeginTransaction()) { _LW_compTable.Entry(t).State = EntityState.Deleted; await _LW_compTable.SaveChangesAsync(); transactionlw.Commit(); } break; case Clienti.Tedesco: using (var transactionTedes = _Tedes_compTable.Database.BeginTransaction()) { _Tedes_compTable.Entry(t).State = EntityState.Deleted; await _Tedes_compTable.SaveChangesAsync(); transactionTedes.Commit(); } break; case Clienti.Syscom: using (var transactionsys = _Sys_compTable.Database.BeginTransaction()) { _Sys_compTable.Entry(t).State = EntityState.Deleted; await _Sys_compTable.SaveChangesAsync(); transactionsys.Commit(); } break; default: break; } */ co_out.err_status_code = StatiRisposta.Ok; return StatusCode(StatusCodes.Status200OK, co_out); } 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, co_out); } } else { co_out.err_title = "Cancellazione fallita"; co_out.err_detail = "record non trovato"; co_out.err_status_code = StatiRisposta.ErroreInterno; return StatusCode(StatusCodes.Status500InternalServerError, co_out); } //return co_out; } #endregion #region Saldi articoli /// Ricerca articoli per impianto return:ActionResult [HttpGet("saldi_articolo")] public async Task>> saldi_articolo(string token, string? art, string? desart, string? matric, string? maga,string? codcli, string? codimp ) { try { string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); _saldi = getSaldiartByTenant(ten); Configurazioni conf = await readConf(tenConf); int max_record = 0; max_record = conf.max_record != null ? conf.max_record.Value : 0; string codlis = string.Empty; _clienti = getClientiByTenant(ten); var a = await _clienti.Where(t => t.ancodice == codcli).ToListAsync(); if (a != null && a.Count() == 0) { codlis = conf.listino; } else { codlis = string.IsNullOrEmpty(a.First().annumlis) ? conf.listino : a.First().annumlis; } var co = await _saldi.Where(t => t.slcodmag != null && t.slcodmag.Equals(maga) && t.licodlis != null && t.licodlis.Equals(codlis)).ToListAsync(); if (!string.IsNullOrEmpty(art)) { co = co.Where(t => t.slcodice != null && t.slcodice.ToUpper().Contains(art.ToUpper())).ToList(); } if (!string.IsNullOrEmpty(desart)) { co = co.Where(t => t.ardesart != null && t.ardesart.ToUpper().Contains(desart.ToUpper())).ToList(); } if (!string.IsNullOrEmpty(matric)) { co = co.Where(t => t.amcodice != null && t.amcodice.ToUpper().Contains(matric.ToUpper())).ToList(); } //2024-02-19: se l'articolo è gestito a matricole, la query restituisce tutte le righe splittate, //in questo caso forzo la quantità a 1 if (co != null && co.Count() > 0) { foreach (Saldiart s in co) { if (s.gest_matr != null && s.gest_matr.Equals("S")) { s.slqtaper = 1; } } } co = co.Take(max_record).ToList(); return StatusCode(StatusCodes.Status200OK, co); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } } #endregion #region Magazzino private async Task fillMag_NewByInput(Mag_New i, string token) { Mag_New r = new Mag_New(); string ten = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); //i = fakeInput(i, ten); _mag = getMag_NewByTenant(ten); var co = await _mag.Where(t => t.seriale_rapportino == i.seriale_rapportino).OrderByDescending(t => t.riga).ToListAsync(); int? row = 0; if (co != null && co.Count() > 0) { row = co.First().riga; row++; } else { row++; } r.seriale_rapportino = i.seriale_rapportino; r.riga = row; r.magazzino = i.magazzino; r.articolo = i.articolo; r.tipo_movimento = i.tipo_movimento; r.quantita = i.quantita; r.prezzo = i.prezzo; r.codice_tecnico = i.codice_tecnico; r.generato = i.generato; r.codlotto = i.codlotto; r.matricola = i.matricola; r.cprownum = row; return r; } private Mag_New_out fillMag_NewOUTByInput(Mag_New i) { Mag_New_out r = new Mag_New_out(); r.seriale_rapportino = i.seriale_rapportino; r.riga = i.riga; r.magazzino = i.magazzino; r.articolo = i.articolo; r.tipo_movimento = i.tipo_movimento; r.quantita = i.quantita; r.prezzo = i.prezzo; r.codice_tecnico = i.codice_tecnico; r.generato = i.generato; r.codlotto = i.codlotto; r.matricola = i.matricola; return r; } /// rapportino per pezzi magazzino. Inserisce in LABSEMAG_NEW return:ActionResult [HttpPost] [Route("rapportini/add")] public async Task> addrapportino([FromBody] Mag_New model, string token) { string ten = getClaimValueByToken(token, "tenant"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } Mag_New co = new Mag_New(); Mag_New_out co_out = new Mag_New_out(); co = await fillMag_NewByInput(model, token); co_out = fillMag_NewOUTByInput(co); try { /* switch (ten) { case Clienti.Sicilia: using (var transaction = _Sicilia_mag.Database.BeginTransaction()) { await _Sicilia_mag.Mag.AddAsync(co); await _Sicilia_mag.SaveChangesAsync(); transaction.Commit(); } break; case Clienti.Siet: using (var transactionSiet = _Siet_mag.Database.BeginTransaction()) { await _Siet_mag.Mag.AddAsync(co); await _Siet_mag.SaveChangesAsync(); transactionSiet.Commit(); } break; case Clienti.PMS: using (var transactionPMS = _PMS_mag.Database.BeginTransaction()) { await _PMS_mag.Mag.AddAsync(co); await _PMS_mag.SaveChangesAsync(); transactionPMS.Commit(); } break; case Clienti.LW: using (var transactionlw = _LW_mag.Database.BeginTransaction()) { await _LW_mag.Mag.AddAsync(co); await _LW_mag.SaveChangesAsync(); transactionlw.Commit(); } break; case Clienti.Tedesco: using (var transactionTedes = _Tedes_mag.Database.BeginTransaction()) { await _Tedes_mag.Mag.AddAsync(co); await _Tedes_mag.SaveChangesAsync(); transactionTedes.Commit(); } break; case Clienti.Syscom: using (var transactionsys = _Sys_mag.Database.BeginTransaction()) { await _Sys_mag.Mag.AddAsync(co); await _Sys_mag.SaveChangesAsync(); transactionsys.Commit(); } break; default: break; } */ co_out.err_status_code = StatiRisposta.Ok; return StatusCode(StatusCodes.Status200OK, co_out); } 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, co_out); } //return co_out; } #endregion #region Storico rapportini private Sto_Rapp_out fillSto_Rapp_Out(Sto_Rapp i, string tenant) { Sto_Rapp_out o = new Sto_Rapp_out(); o.tccodice = !string.IsNullOrEmpty(i.tccodice) ? i.tccodice.Trim() : string.Empty; ; o.tcdescri = !string.IsNullOrEmpty(i.tcdescri) ? i.tcdescri.Trim() : string.Empty; ; o.note_esito = !string.IsNullOrEmpty(i.note_esito) ? i.note_esito.Trim():string.Empty ; o.data_rapportino = i.data_rapportino; Dictionary dic = new Dictionary(); switch (tenant) { case Clienti.Marrocco: #region marrocco //chiamata if (!string.IsNullOrEmpty(i.codice_segnalazione) && !i.codice_segnalazione.Trim().Equals(string.Empty)) { dic.Add("Codice segnalazione", i.codice_segnalazione.Trim()); } if (!string.IsNullOrEmpty(i.seriale_chiamata) && !i.seriale_chiamata.Trim().Equals(string.Empty)) { dic.Add("N° Chiamata", i.seriale_chiamata.Trim()); } //manutenzione if (!string.IsNullOrEmpty(i.codice_intervento) && !i.codice_intervento.Trim().Equals(string.Empty)) { StringBuilder sb = new StringBuilder(); sb.Append(i.codice_intervento.Trim()); if (!string.IsNullOrEmpty(i.cidescri) && !i.cidescri.Trim().Equals(string.Empty)) { sb.Append(" - " + i.cidescri.Trim()); } if (!string.IsNullOrEmpty(i.cidessup) && !i.cidessup.Trim().Equals(string.Empty)) { sb.Append(" - " + i.cidessup.Trim()); } dic.Add("Manutenzione", sb.ToString()); } if (i.data_manutenzione != null) { dic.Add("Data manutenzione", i.data_manutenzione.Value.ToString()); } //dati intervento if (!string.IsNullOrEmpty(i.stato_finale) && !i.stato_finale.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.stato_finale) { case "1": st = "In Funzione"; dic.Add("Stato finale", st); break; case "0": st = "Fermo"; dic.Add("Stato finale", st); break; } } if (!string.IsNullOrEmpty(i.esito_intervento) && !i.esito_intervento.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.esito_intervento) { case "1": st = "Positivo"; break; case "P": st = "Positivo"; break; default: st = "Negativo"; break; } dic.Add("Esito intervento", st); } if (!string.IsNullOrEmpty(i.descrizione_intervento) && !i.descrizione_intervento.Trim().Equals(string.Empty)) { dic.Add("Descrizione intervento", i.descrizione_intervento.Trim()); } if (!string.IsNullOrEmpty(i.difetti_riscontrati) && !i.difetti_riscontrati.Trim().Equals(string.Empty)) { dic.Add("Difetti riscontrati", i.difetti_riscontrati.Trim()); } if (!string.IsNullOrEmpty(i.lavoro_eseguito) && !i.lavoro_eseguito.Trim().Equals(string.Empty)) { dic.Add("Lavoro eseguito", i.lavoro_eseguito.Trim()); } if (!string.IsNullOrEmpty(i.note_intervento) && !i.note_intervento.Trim().Equals(string.Empty)) { dic.Add("Note intervento", i.note_intervento); } if (!string.IsNullOrEmpty(i.tipo_intervento) && !i.tipo_intervento.Trim().Equals(string.Empty)) { dic.Add("Tipo intervento", i.tipo_intervento.Trim()); } if (!string.IsNullOrEmpty(i.codice_chiusura_1) && !i.codice_chiusura_1.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_1.Trim()); if (!string.IsNullOrEmpty(i.cc1)) { sb.Append(" - " + i.cc1.Trim()); } sb.Append(i.ccds1); if (!string.IsNullOrEmpty(i.ccds1)) { sb.Append(" - " + i.ccds1.Trim()); } dic.Add("Codice Chiusura 1", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_2) && !i.codice_chiusura_2.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_2.Trim()); if (!string.IsNullOrEmpty(i.cc2)) { sb.Append(" - " + i.cc2.Trim()); } sb.Append(i.ccds2); if (!string.IsNullOrEmpty(i.ccds2)) { sb.Append(" - " + i.ccds2.Trim()); } dic.Add("Codice Chiusura 2", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_3) && !i.codice_chiusura_3.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_3.Trim()); if (!string.IsNullOrEmpty(i.cc3)) { sb.Append(" - " + i.cc3.Trim()); } sb.Append(i.ccds3); if (!string.IsNullOrEmpty(i.ccds3)) { sb.Append(" - " + i.ccds3.Trim()); } dic.Add("Codice Chiusura 3", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_4) && !i.codice_chiusura_4.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_4.Trim()); if (!string.IsNullOrEmpty(i.cc4)) { sb.Append(" - " + i.cc4.Trim()); } sb.Append(i.ccds4); if (!string.IsNullOrEmpty(i.ccds4)) { sb.Append(" - " + i.ccds4.Trim()); } dic.Add("Codice Chiusura 4", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_5) && !i.codice_chiusura_5.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_5.Trim()); if (!string.IsNullOrEmpty(i.cc5)) { sb.Append(" - " + i.cc5.Trim()); } sb.Append(i.ccds5); if (!string.IsNullOrEmpty(i.ccds5)) { sb.Append(" - " + i.ccds5.Trim()); } dic.Add("Codice Chiusura 5", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_6) && !i.codice_chiusura_6.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_6.Trim()); if (!string.IsNullOrEmpty(i.cc6)) { sb.Append(" - " + i.cc6.Trim()); } sb.Append(i.ccds6); if (!string.IsNullOrEmpty(i.ccds6)) { sb.Append(" - " + i.ccds6.Trim()); } dic.Add("Codice Chiusura 6", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_7) && !i.codice_chiusura_7.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_7.Trim()); if (!string.IsNullOrEmpty(i.cc7)) { sb.Append(" - " + i.cc7.Trim()); } sb.Append(i.ccds7); if (!string.IsNullOrEmpty(i.ccds7)) { sb.Append(" - " + i.ccds7.Trim()); } dic.Add("Codice Chiusura 7", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_8) && !i.codice_chiusura_8.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_8.Trim()); if (!string.IsNullOrEmpty(i.cc8)) { sb.Append(" - " + i.cc8.Trim()); } sb.Append(i.ccds8); if (!string.IsNullOrEmpty(i.ccds8)) { sb.Append(" - " + i.ccds8.Trim()); } dic.Add("Codice Chiusura 8", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_9) && !i.codice_chiusura_9.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_9.Trim()); if (!string.IsNullOrEmpty(i.cc9)) { sb.Append(" - " + i.cc9.Trim()); } sb.Append(i.ccds9); if (!string.IsNullOrEmpty(i.ccds9)) { sb.Append(" - " + i.ccds9.Trim()); } dic.Add("Codice Chiusura 9", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_10) && !i.codice_chiusura_10.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_10.Trim()); if (!string.IsNullOrEmpty(i.cc10)) { sb.Append(" - " + i.cc10.Trim()); } sb.Append(i.ccds10); if (!string.IsNullOrEmpty(i.ccds10)) { sb.Append(" - " + i.ccds10.Trim()); } dic.Add("Codice Chiusura 10", sb.ToString()); } if (!string.IsNullOrEmpty(i.firma) && !i.firma.Trim().Equals(string.Empty)) { dic.Add("Firma", i.firma.Trim()); } if (!string.IsNullOrEmpty(i.ser_buono) && !i.ser_buono.Trim().Equals(string.Empty)) { dic.Add("N° buono", i.ser_buono.Trim()); } if (!string.IsNullOrEmpty(i.seriale_rapportino) && !i.seriale_rapportino.Trim().Equals(string.Empty)) { dic.Add("Seriale rapportino", i.seriale_rapportino.Trim()); } if (!string.IsNullOrEmpty(i.pagamento) && !i.pagamento.Trim().Equals(string.Empty)) { dic.Add("Pagamento", i.pagamento.Trim()); } if (!string.IsNullOrEmpty(i.note_pagamento) && !i.note_pagamento.Trim().Equals(string.Empty)) { dic.Add("Note pagamento", i.note_pagamento.Trim()); } if (!string.IsNullOrEmpty(i.codice_impianto) && !i.codice_impianto.Trim().Equals(string.Empty)) { dic.Add("Cod. impianto", i.codice_impianto.Trim()); } if (!string.IsNullOrEmpty(i.indirizzo) && !i.indirizzo.Trim().Equals(string.Empty)) { StringBuilder sb = new StringBuilder(); string ind = string.Empty; string via = !string.IsNullOrEmpty(i.indirizzo_tipo) ? i.indirizzo_tipo.Trim() : string.Empty; string indiri = !string.IsNullOrEmpty(i.indirizzo) ? i.indirizzo.Trim() : string.Empty; string num = string.Empty; if (i.indirizzo_num != null && i.indirizzo_num.Value > 0) { num = i.indirizzo_num.ToString().Trim(); } string num2 = !string.IsNullOrEmpty(i.indirizzo_num2) ? i.indirizzo_num2.Trim() : string.Empty; string sca = !string.IsNullOrEmpty(i.indirizzo_scala) ? i.indirizzo_scala.Trim() : string.Empty; //ind = string.Concat("{0} {1} num {2} interno {3} scala {4}",via,indiri,num,num2,sca); if (!string.IsNullOrEmpty(via)) sb.Append(via); if (!string.IsNullOrEmpty(indiri)) sb.Append(" " + indiri); if (!string.IsNullOrEmpty(num)) sb.Append(" ," + num); if (!string.IsNullOrEmpty(num2)) sb.Append(" Int: " + num2); if (!string.IsNullOrEmpty(sca)) sb.Append(" Scala: " + sca); dic.Add("Indirizzo imp", sb.ToString()); } if (!string.IsNullOrEmpty(i.azienda_tecnico) && !i.azienda_tecnico.Trim().Equals(string.Empty)) { dic.Add("Azienda", i.azienda_tecnico); } if (!string.IsNullOrEmpty(i.generato) && !i.generato.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.generato) { case "S": st = "SI"; break; default: st = "NO"; break; } dic.Add("Rapportino importato", st); } if (i.ore_lavoro != null && i.ore_lavoro.Value > 0) { dic.Add("Ore lavoro", i.ore_lavoro.Value.ToString()); } if (i.spese_viaggio != null && i.spese_viaggio.Value > 0) { dic.Add("Spese viaggio", i.spese_viaggio.Value.ToString()); } if (i.materiale != null && i.materiale.Value > 0) { dic.Add("Materiale", i.materiale.Value.ToString()); } if (i.anticipo != null && i.anticipo.Value > 0) { dic.Add("Anticipo", i.anticipo.Value.ToString()); } if (i.manodopera != null && i.manodopera.Value > 0) { dic.Add("Manodopera", i.manodopera.Value.ToString()); } if (i.diritto_chiamata != null && i.diritto_chiamata.Value > 0) { dic.Add("Diritto chiamata", i.diritto_chiamata.Value.ToString()); } if (i.totale != null && i.totale.Value > 0) { dic.Add("Totale", i.totale.Value.ToString()); } #endregion break; case Clienti.Gitoga: #region gitoga //chiamata if (!string.IsNullOrEmpty(i.codice_segnalazione) && !i.codice_segnalazione.Trim().Equals(string.Empty)) { dic.Add("Codice segnalazione", i.codice_segnalazione.Trim()); } if (!string.IsNullOrEmpty(i.seriale_chiamata) && !i.seriale_chiamata.Trim().Equals(string.Empty)) { dic.Add("N° Chiamata", i.seriale_chiamata.Trim()); } //manutenzione if (!string.IsNullOrEmpty(i.codice_intervento) && !i.codice_intervento.Trim().Equals(string.Empty)) { StringBuilder sb = new StringBuilder(); sb.Append(i.codice_intervento.Trim()); if (!string.IsNullOrEmpty(i.cidescri) && !i.cidescri.Trim().Equals(string.Empty)) { sb.Append(" - " + i.cidescri.Trim()); } if (!string.IsNullOrEmpty(i.cidessup) && !i.cidessup.Trim().Equals(string.Empty)) { sb.Append(" - " + i.cidessup.Trim()); } dic.Add("Manutenzione", sb.ToString()); } if (i.data_manutenzione != null) { dic.Add("Data manutenzione", i.data_manutenzione.Value.ToString()); } //dati intervento if (!string.IsNullOrEmpty(i.stato_finale) && !i.stato_finale.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.stato_finale) { case "1": st = "In Funzione"; dic.Add("Stato finale", st); break; case "0": st = "Fermo"; dic.Add("Stato finale", st); break; } } if (!string.IsNullOrEmpty(i.esito_intervento) && !i.esito_intervento.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.esito_intervento) { case "1": st = "Positivo"; break; case "P": st = "Positivo"; break; default: st = "Negativo"; break; } dic.Add("Esito intervento", st); } if (!string.IsNullOrEmpty(i.descrizione_intervento) && !i.descrizione_intervento.Trim().Equals(string.Empty)) { dic.Add("Descrizione intervento", i.descrizione_intervento.Trim()); } if (!string.IsNullOrEmpty(i.difetti_riscontrati) && !i.difetti_riscontrati.Trim().Equals(string.Empty)) { dic.Add("Difetti riscontrati", i.difetti_riscontrati.Trim()); } if (!string.IsNullOrEmpty(i.lavoro_eseguito) && !i.lavoro_eseguito.Trim().Equals(string.Empty)) { dic.Add("Lavoro eseguito", i.lavoro_eseguito.Trim()); } if (!string.IsNullOrEmpty(i.note_intervento) && !i.note_intervento.Trim().Equals(string.Empty)) { dic.Add("Note intervento", i.note_intervento); } if (!string.IsNullOrEmpty(i.tipo_intervento) && !i.tipo_intervento.Trim().Equals(string.Empty)) { dic.Add("Tipo intervento", i.tipo_intervento.Trim()); } if (!string.IsNullOrEmpty(i.codice_chiusura_1) && !i.codice_chiusura_1.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_1.Trim()); if (!string.IsNullOrEmpty(i.cc1)) { sb.Append(" - " + i.cc1.Trim()); } sb.Append(i.ccds1); if (!string.IsNullOrEmpty(i.ccds1)) { sb.Append(" - " + i.ccds1.Trim()); } dic.Add("Codice Chiusura 1", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_2) && !i.codice_chiusura_2.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_2.Trim()); if (!string.IsNullOrEmpty(i.cc2)) { sb.Append(" - " + i.cc2.Trim()); } sb.Append(i.ccds2); if (!string.IsNullOrEmpty(i.ccds2)) { sb.Append(" - " + i.ccds2.Trim()); } dic.Add("Codice Chiusura 2", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_3) && !i.codice_chiusura_3.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_3.Trim()); if (!string.IsNullOrEmpty(i.cc3)) { sb.Append(" - " + i.cc3.Trim()); } sb.Append(i.ccds3); if (!string.IsNullOrEmpty(i.ccds3)) { sb.Append(" - " + i.ccds3.Trim()); } dic.Add("Codice Chiusura 3", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_4) && !i.codice_chiusura_4.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_4.Trim()); if (!string.IsNullOrEmpty(i.cc4)) { sb.Append(" - " + i.cc4.Trim()); } sb.Append(i.ccds4); if (!string.IsNullOrEmpty(i.ccds4)) { sb.Append(" - " + i.ccds4.Trim()); } dic.Add("Codice Chiusura 4", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_5) && !i.codice_chiusura_5.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_5.Trim()); if (!string.IsNullOrEmpty(i.cc5)) { sb.Append(" - " + i.cc5.Trim()); } sb.Append(i.ccds5); if (!string.IsNullOrEmpty(i.ccds5)) { sb.Append(" - " + i.ccds5.Trim()); } dic.Add("Codice Chiusura 5", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_6) && !i.codice_chiusura_6.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_6.Trim()); if (!string.IsNullOrEmpty(i.cc6)) { sb.Append(" - " + i.cc6.Trim()); } sb.Append(i.ccds6); if (!string.IsNullOrEmpty(i.ccds6)) { sb.Append(" - " + i.ccds6.Trim()); } dic.Add("Codice Chiusura 6", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_7) && !i.codice_chiusura_7.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_7.Trim()); if (!string.IsNullOrEmpty(i.cc7)) { sb.Append(" - " + i.cc7.Trim()); } sb.Append(i.ccds7); if (!string.IsNullOrEmpty(i.ccds7)) { sb.Append(" - " + i.ccds7.Trim()); } dic.Add("Codice Chiusura 7", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_8) && !i.codice_chiusura_8.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_8.Trim()); if (!string.IsNullOrEmpty(i.cc8)) { sb.Append(" - " + i.cc8.Trim()); } sb.Append(i.ccds8); if (!string.IsNullOrEmpty(i.ccds8)) { sb.Append(" - " + i.ccds8.Trim()); } dic.Add("Codice Chiusura 8", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_9) && !i.codice_chiusura_9.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_9.Trim()); if (!string.IsNullOrEmpty(i.cc9)) { sb.Append(" - " + i.cc9.Trim()); } sb.Append(i.ccds9); if (!string.IsNullOrEmpty(i.ccds9)) { sb.Append(" - " + i.ccds9.Trim()); } dic.Add("Codice Chiusura 9", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_10) && !i.codice_chiusura_10.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_10.Trim()); if (!string.IsNullOrEmpty(i.cc10)) { sb.Append(" - " + i.cc10.Trim()); } sb.Append(i.ccds10); if (!string.IsNullOrEmpty(i.ccds10)) { sb.Append(" - " + i.ccds10.Trim()); } dic.Add("Codice Chiusura 10", sb.ToString()); } if (!string.IsNullOrEmpty(i.firma) && !i.firma.Trim().Equals(string.Empty)) { dic.Add("Firma", i.firma.Trim()); } if (!string.IsNullOrEmpty(i.ser_buono) && !i.ser_buono.Trim().Equals(string.Empty)) { dic.Add("N° buono", i.ser_buono.Trim()); } if (!string.IsNullOrEmpty(i.seriale_rapportino) && !i.seriale_rapportino.Trim().Equals(string.Empty)) { dic.Add("Seriale rapportino", i.seriale_rapportino.Trim()); } if (!string.IsNullOrEmpty(i.pagamento) && !i.pagamento.Trim().Equals(string.Empty)) { dic.Add("Pagamento", i.pagamento.Trim()); } if (!string.IsNullOrEmpty(i.note_pagamento) && !i.note_pagamento.Trim().Equals(string.Empty)) { dic.Add("Note pagamento", i.note_pagamento.Trim()); } if (!string.IsNullOrEmpty(i.codice_impianto) && !i.codice_impianto.Trim().Equals(string.Empty)) { dic.Add("Cod. impianto", i.codice_impianto.Trim()); } if (!string.IsNullOrEmpty(i.indirizzo) && !i.indirizzo.Trim().Equals(string.Empty)) { StringBuilder sb = new StringBuilder(); string ind = string.Empty; string via = !string.IsNullOrEmpty(i.indirizzo_tipo) ? i.indirizzo_tipo.Trim() : string.Empty; string indiri = !string.IsNullOrEmpty(i.indirizzo) ? i.indirizzo.Trim() : string.Empty; string num = string.Empty; if (i.indirizzo_num != null && i.indirizzo_num.Value > 0) { num = i.indirizzo_num.ToString().Trim(); } string num2 = !string.IsNullOrEmpty(i.indirizzo_num2) ? i.indirizzo_num2.Trim() : string.Empty; string sca = !string.IsNullOrEmpty(i.indirizzo_scala) ? i.indirizzo_scala.Trim() : string.Empty; //ind = string.Concat("{0} {1} num {2} interno {3} scala {4}",via,indiri,num,num2,sca); if (!string.IsNullOrEmpty(via)) sb.Append(via); if (!string.IsNullOrEmpty(indiri)) sb.Append(" " + indiri); if (!string.IsNullOrEmpty(num)) sb.Append(" ," + num); if (!string.IsNullOrEmpty(num2)) sb.Append(" Int: " + num2); if (!string.IsNullOrEmpty(sca)) sb.Append(" Scala: " + sca); dic.Add("Indirizzo imp", sb.ToString()); } if (!string.IsNullOrEmpty(i.azienda_tecnico) && !i.azienda_tecnico.Trim().Equals(string.Empty)) { dic.Add("Azienda", i.azienda_tecnico); } if (!string.IsNullOrEmpty(i.generato) && !i.generato.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.generato) { case "S": st = "SI"; break; default: st = "NO"; break; } dic.Add("Rapportino importato", st); } if (i.ore_lavoro != null && i.ore_lavoro.Value > 0) { dic.Add("Ore lavoro", i.ore_lavoro.Value.ToString()); } if (i.spese_viaggio != null && i.spese_viaggio.Value > 0) { dic.Add("Spese viaggio", i.spese_viaggio.Value.ToString()); } if (i.materiale != null && i.materiale.Value > 0) { dic.Add("Materiale", i.materiale.Value.ToString()); } if (i.anticipo != null && i.anticipo.Value > 0) { dic.Add("Anticipo", i.anticipo.Value.ToString()); } if (i.manodopera != null && i.manodopera.Value > 0) { dic.Add("Manodopera", i.manodopera.Value.ToString()); } if (i.diritto_chiamata != null && i.diritto_chiamata.Value > 0) { dic.Add("Diritto chiamata", i.diritto_chiamata.Value.ToString()); } if (i.totale != null && i.totale.Value > 0) { dic.Add("Totale", i.totale.Value.ToString()); } #endregion break; case Clienti.Lifta: #region lifta //chiamata if (!string.IsNullOrEmpty(i.codice_segnalazione) && !i.codice_segnalazione.Trim().Equals(string.Empty)) { dic.Add("Codice segnalazione", i.codice_segnalazione.Trim()); } if (!string.IsNullOrEmpty(i.seriale_chiamata) && !i.seriale_chiamata.Trim().Equals(string.Empty)) { dic.Add("N° Chiamata", i.seriale_chiamata.Trim()); } //manutenzione if (!string.IsNullOrEmpty(i.codice_intervento) && !i.codice_intervento.Trim().Equals(string.Empty)) { StringBuilder sb = new StringBuilder(); sb.Append(i.codice_intervento.Trim()); if (!string.IsNullOrEmpty(i.cidescri) && !i.cidescri.Trim().Equals(string.Empty)) { sb.Append(" - " + i.cidescri.Trim()); } if (!string.IsNullOrEmpty(i.cidessup) && !i.cidessup.Trim().Equals(string.Empty)) { sb.Append(" - " + i.cidessup.Trim()); } dic.Add("Manutenzione", sb.ToString()); } if (i.data_manutenzione != null) { dic.Add("Data manutenzione", i.data_manutenzione.Value.ToString()); } //dati intervento if (!string.IsNullOrEmpty(i.stato_finale) && !i.stato_finale.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.stato_finale) { case "1": st = "In Funzione"; dic.Add("Stato finale", st); break; case "0": st = "Fermo"; dic.Add("Stato finale", st); break; } } if (!string.IsNullOrEmpty(i.esito_intervento) && !i.esito_intervento.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.esito_intervento) { case "1": st = "Positivo"; break; case "P": st = "Positivo"; break; default: st = "Negativo"; break; } dic.Add("Esito intervento", st); } if (!string.IsNullOrEmpty(i.descrizione_intervento) && !i.descrizione_intervento.Trim().Equals(string.Empty)) { dic.Add("Descrizione intervento", i.descrizione_intervento.Trim()); } if (!string.IsNullOrEmpty(i.difetti_riscontrati) && !i.difetti_riscontrati.Trim().Equals(string.Empty)) { dic.Add("Difetti riscontrati", i.difetti_riscontrati.Trim()); } if (!string.IsNullOrEmpty(i.lavoro_eseguito) && !i.lavoro_eseguito.Trim().Equals(string.Empty)) { dic.Add("Lavoro eseguito", i.lavoro_eseguito.Trim()); } if (!string.IsNullOrEmpty(i.note_intervento) && !i.note_intervento.Trim().Equals(string.Empty)) { dic.Add("Note intervento", i.note_intervento); } if (!string.IsNullOrEmpty(i.tipo_intervento) && !i.tipo_intervento.Trim().Equals(string.Empty)) { dic.Add("Tipo intervento", i.tipo_intervento.Trim()); } if (!string.IsNullOrEmpty(i.codice_chiusura_1) && !i.codice_chiusura_1.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_1.Trim()); if (!string.IsNullOrEmpty(i.cc1)) { sb.Append(" - " + i.cc1.Trim()); } sb.Append(i.ccds1); if (!string.IsNullOrEmpty(i.ccds1)) { sb.Append(" - " + i.ccds1.Trim()); } dic.Add("Codice Chiusura 1", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_2) && !i.codice_chiusura_2.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_2.Trim()); if (!string.IsNullOrEmpty(i.cc2)) { sb.Append(" - " + i.cc2.Trim()); } sb.Append(i.ccds2); if (!string.IsNullOrEmpty(i.ccds2)) { sb.Append(" - " + i.ccds2.Trim()); } dic.Add("Codice Chiusura 2", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_3) && !i.codice_chiusura_3.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_3.Trim()); if (!string.IsNullOrEmpty(i.cc3)) { sb.Append(" - " + i.cc3.Trim()); } sb.Append(i.ccds3); if (!string.IsNullOrEmpty(i.ccds3)) { sb.Append(" - " + i.ccds3.Trim()); } dic.Add("Codice Chiusura 3", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_4) && !i.codice_chiusura_4.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_4.Trim()); if (!string.IsNullOrEmpty(i.cc4)) { sb.Append(" - " + i.cc4.Trim()); } sb.Append(i.ccds4); if (!string.IsNullOrEmpty(i.ccds4)) { sb.Append(" - " + i.ccds4.Trim()); } dic.Add("Codice Chiusura 4", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_5) && !i.codice_chiusura_5.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_5.Trim()); if (!string.IsNullOrEmpty(i.cc5)) { sb.Append(" - " + i.cc5.Trim()); } sb.Append(i.ccds5); if (!string.IsNullOrEmpty(i.ccds5)) { sb.Append(" - " + i.ccds5.Trim()); } dic.Add("Codice Chiusura 5", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_6) && !i.codice_chiusura_6.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_6.Trim()); if (!string.IsNullOrEmpty(i.cc6)) { sb.Append(" - " + i.cc6.Trim()); } sb.Append(i.ccds6); if (!string.IsNullOrEmpty(i.ccds6)) { sb.Append(" - " + i.ccds6.Trim()); } dic.Add("Codice Chiusura 6", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_7) && !i.codice_chiusura_7.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_7.Trim()); if (!string.IsNullOrEmpty(i.cc7)) { sb.Append(" - " + i.cc7.Trim()); } sb.Append(i.ccds7); if (!string.IsNullOrEmpty(i.ccds7)) { sb.Append(" - " + i.ccds7.Trim()); } dic.Add("Codice Chiusura 7", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_8) && !i.codice_chiusura_8.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_8.Trim()); if (!string.IsNullOrEmpty(i.cc8)) { sb.Append(" - " + i.cc8.Trim()); } sb.Append(i.ccds8); if (!string.IsNullOrEmpty(i.ccds8)) { sb.Append(" - " + i.ccds8.Trim()); } dic.Add("Codice Chiusura 8", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_9) && !i.codice_chiusura_9.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_9.Trim()); if (!string.IsNullOrEmpty(i.cc9)) { sb.Append(" - " + i.cc9.Trim()); } sb.Append(i.ccds9); if (!string.IsNullOrEmpty(i.ccds9)) { sb.Append(" - " + i.ccds9.Trim()); } dic.Add("Codice Chiusura 9", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_10) && !i.codice_chiusura_10.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_10.Trim()); if (!string.IsNullOrEmpty(i.cc10)) { sb.Append(" - " + i.cc10.Trim()); } sb.Append(i.ccds10); if (!string.IsNullOrEmpty(i.ccds10)) { sb.Append(" - " + i.ccds10.Trim()); } dic.Add("Codice Chiusura 10", sb.ToString()); } if (!string.IsNullOrEmpty(i.firma) && !i.firma.Trim().Equals(string.Empty)) { dic.Add("Firma", i.firma.Trim()); } if (!string.IsNullOrEmpty(i.ser_buono) && !i.ser_buono.Trim().Equals(string.Empty)) { dic.Add("N° buono", i.ser_buono.Trim()); } if (!string.IsNullOrEmpty(i.seriale_rapportino) && !i.seriale_rapportino.Trim().Equals(string.Empty)) { dic.Add("Seriale rapportino", i.seriale_rapportino.Trim()); } if (!string.IsNullOrEmpty(i.pagamento) && !i.pagamento.Trim().Equals(string.Empty)) { dic.Add("Pagamento", i.pagamento.Trim()); } if (!string.IsNullOrEmpty(i.note_pagamento) && !i.note_pagamento.Trim().Equals(string.Empty)) { dic.Add("Note pagamento", i.note_pagamento.Trim()); } if (!string.IsNullOrEmpty(i.codice_impianto) && !i.codice_impianto.Trim().Equals(string.Empty)) { dic.Add("Cod. impianto", i.codice_impianto.Trim()); } if (!string.IsNullOrEmpty(i.indirizzo) && !i.indirizzo.Trim().Equals(string.Empty)) { StringBuilder sb = new StringBuilder(); string ind = string.Empty; string via = !string.IsNullOrEmpty(i.indirizzo_tipo) ? i.indirizzo_tipo.Trim() : string.Empty; string indiri = !string.IsNullOrEmpty(i.indirizzo) ? i.indirizzo.Trim() : string.Empty; string num = string.Empty; if (i.indirizzo_num != null && i.indirizzo_num.Value > 0) { num = i.indirizzo_num.ToString().Trim(); } string num2 = !string.IsNullOrEmpty(i.indirizzo_num2) ? i.indirizzo_num2.Trim() : string.Empty; string sca = !string.IsNullOrEmpty(i.indirizzo_scala) ? i.indirizzo_scala.Trim() : string.Empty; //ind = string.Concat("{0} {1} num {2} interno {3} scala {4}",via,indiri,num,num2,sca); if (!string.IsNullOrEmpty(via)) sb.Append(via); if (!string.IsNullOrEmpty(indiri)) sb.Append(" " + indiri); if (!string.IsNullOrEmpty(num)) sb.Append(" ," + num); if (!string.IsNullOrEmpty(num2)) sb.Append(" Int: " + num2); if (!string.IsNullOrEmpty(sca)) sb.Append(" Scala: " + sca); dic.Add("Indirizzo imp", sb.ToString()); } if (!string.IsNullOrEmpty(i.azienda_tecnico) && !i.azienda_tecnico.Trim().Equals(string.Empty)) { dic.Add("Azienda", i.azienda_tecnico); } if (!string.IsNullOrEmpty(i.generato) && !i.generato.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.generato) { case "S": st = "SI"; break; default: st = "NO"; break; } dic.Add("Rapportino importato", st); } if (i.ore_lavoro != null && i.ore_lavoro.Value > 0) { dic.Add("Ore lavoro", i.ore_lavoro.Value.ToString()); } if (i.spese_viaggio != null && i.spese_viaggio.Value > 0) { dic.Add("Spese viaggio", i.spese_viaggio.Value.ToString()); } if (i.materiale != null && i.materiale.Value > 0) { dic.Add("Materiale", i.materiale.Value.ToString()); } if (i.anticipo != null && i.anticipo.Value > 0) { dic.Add("Anticipo", i.anticipo.Value.ToString()); } if (i.manodopera != null && i.manodopera.Value > 0) { dic.Add("Manodopera", i.manodopera.Value.ToString()); } if (i.diritto_chiamata != null && i.diritto_chiamata.Value > 0) { dic.Add("Diritto chiamata", i.diritto_chiamata.Value.ToString()); } if (i.totale != null && i.totale.Value > 0) { dic.Add("Totale", i.totale.Value.ToString()); } #endregion break; case Clienti.Ferrari: #region ferrari //chiamata if (!string.IsNullOrEmpty(i.codice_segnalazione) && !i.codice_segnalazione.Trim().Equals(string.Empty)) { dic.Add("Codice segnalazione", i.codice_segnalazione.Trim()); } if (!string.IsNullOrEmpty(i.seriale_chiamata) && !i.seriale_chiamata.Trim().Equals(string.Empty)) { dic.Add("N° Chiamata", i.seriale_chiamata.Trim()); } //manutenzione if (!string.IsNullOrEmpty(i.codice_intervento) && !i.codice_intervento.Trim().Equals(string.Empty)) { StringBuilder sb = new StringBuilder(); sb.Append(i.codice_intervento.Trim()); if(!string.IsNullOrEmpty(i.cidescri) && !i.cidescri.Trim().Equals(string.Empty)) { sb.Append(" - "+i.cidescri.Trim()); } if (!string.IsNullOrEmpty(i.cidessup) && !i.cidessup.Trim().Equals(string.Empty)) { sb.Append(" - " + i.cidessup.Trim()); } dic.Add("Manutenzione", sb.ToString()); } if(i.data_manutenzione!=null) { dic.Add("Data manutenzione", i.data_manutenzione.Value.ToString()); } //dati intervento if (!string.IsNullOrEmpty(i.stato_finale) && !i.stato_finale.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.stato_finale) { case "1": st = "In Funzione"; dic.Add("Stato finale", st); break; case "0": st = "Fermo"; dic.Add("Stato finale", st); break; } } if (!string.IsNullOrEmpty(i.esito_intervento) && !i.esito_intervento.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.esito_intervento) { case "1": st = "Positivo"; break; case "P": st = "Positivo"; break; default: st = "Negativo"; break; } dic.Add("Esito intervento", st); } if (!string.IsNullOrEmpty(i.descrizione_intervento) && !i.descrizione_intervento.Trim().Equals(string.Empty)) { dic.Add("Descrizione intervento", i.descrizione_intervento.Trim()); } if (!string.IsNullOrEmpty(i.difetti_riscontrati) && !i.difetti_riscontrati.Trim().Equals(string.Empty)) { dic.Add("Difetti riscontrati", i.difetti_riscontrati.Trim()); } if (!string.IsNullOrEmpty(i.lavoro_eseguito) && !i.lavoro_eseguito.Trim().Equals(string.Empty)) { dic.Add("Lavoro eseguito", i.lavoro_eseguito.Trim()); } if (!string.IsNullOrEmpty(i.note_intervento) && !i.note_intervento.Trim().Equals(string.Empty)) { dic.Add("Note intervento", i.note_intervento); } if (!string.IsNullOrEmpty(i.tipo_intervento) && !i.tipo_intervento.Trim().Equals(string.Empty)) { dic.Add("Tipo intervento", i.tipo_intervento.Trim()); } if (!string.IsNullOrEmpty(i.codice_chiusura_1) && !i.codice_chiusura_1.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_1.Trim()); if(!string.IsNullOrEmpty(i.cc1)) { sb.Append(" - "+i.cc1.Trim()); } sb.Append(i.ccds1); if (!string.IsNullOrEmpty(i.ccds1)) { sb.Append(" - " + i.ccds1.Trim()); } dic.Add("Codice Chiusura 1", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_2) && !i.codice_chiusura_2.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_2.Trim()); if (!string.IsNullOrEmpty(i.cc2)) { sb.Append(" - " + i.cc2.Trim()); } sb.Append(i.ccds2); if (!string.IsNullOrEmpty(i.ccds2)) { sb.Append(" - " + i.ccds2.Trim()); } dic.Add("Codice Chiusura 2", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_3) && !i.codice_chiusura_3.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_3.Trim()); if (!string.IsNullOrEmpty(i.cc3)) { sb.Append(" - " + i.cc3.Trim()); } sb.Append(i.ccds3); if (!string.IsNullOrEmpty(i.ccds3)) { sb.Append(" - " + i.ccds3.Trim()); } dic.Add("Codice Chiusura 3", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_4) && !i.codice_chiusura_4.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_4.Trim()); if (!string.IsNullOrEmpty(i.cc4)) { sb.Append(" - " + i.cc4.Trim()); } sb.Append(i.ccds4); if (!string.IsNullOrEmpty(i.ccds4)) { sb.Append(" - " + i.ccds4.Trim()); } dic.Add("Codice Chiusura 4", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_5) && !i.codice_chiusura_5.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_5.Trim()); if (!string.IsNullOrEmpty(i.cc5)) { sb.Append(" - " + i.cc5.Trim()); } sb.Append(i.ccds5); if (!string.IsNullOrEmpty(i.ccds5)) { sb.Append(" - " + i.ccds5.Trim()); } dic.Add("Codice Chiusura 5", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_6) && !i.codice_chiusura_6.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_6.Trim()); if (!string.IsNullOrEmpty(i.cc6)) { sb.Append(" - " + i.cc6.Trim()); } sb.Append(i.ccds6); if (!string.IsNullOrEmpty(i.ccds6)) { sb.Append(" - " + i.ccds6.Trim()); } dic.Add("Codice Chiusura 6", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_7) && !i.codice_chiusura_7.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_7.Trim()); if (!string.IsNullOrEmpty(i.cc7)) { sb.Append(" - " + i.cc7.Trim()); } sb.Append(i.ccds7); if (!string.IsNullOrEmpty(i.ccds7)) { sb.Append(" - " + i.ccds7.Trim()); } dic.Add("Codice Chiusura 7", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_8) && !i.codice_chiusura_8.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_8.Trim()); if (!string.IsNullOrEmpty(i.cc8)) { sb.Append(" - " + i.cc8.Trim()); } sb.Append(i.ccds8); if (!string.IsNullOrEmpty(i.ccds8)) { sb.Append(" - " + i.ccds8.Trim()); } dic.Add("Codice Chiusura 8", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_9) && !i.codice_chiusura_9.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_9.Trim()); if (!string.IsNullOrEmpty(i.cc9)) { sb.Append(" - " + i.cc9.Trim()); } sb.Append(i.ccds9); if (!string.IsNullOrEmpty(i.ccds9)) { sb.Append(" - " + i.ccds9.Trim()); } dic.Add("Codice Chiusura 9", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_10) && !i.codice_chiusura_10.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_10.Trim()); if (!string.IsNullOrEmpty(i.cc10)) { sb.Append(" - " + i.cc10.Trim()); } sb.Append(i.ccds10); if (!string.IsNullOrEmpty(i.ccds10)) { sb.Append(" - " + i.ccds10.Trim()); } dic.Add("Codice Chiusura 10", sb.ToString()); } if (!string.IsNullOrEmpty(i.firma) && !i.firma.Trim().Equals(string.Empty)) { dic.Add("Firma", i.firma.Trim()); } if (!string.IsNullOrEmpty(i.ser_buono) && !i.ser_buono.Trim().Equals(string.Empty)) { dic.Add("N° buono", i.ser_buono.Trim()); } if (!string.IsNullOrEmpty(i.seriale_rapportino) && !i.seriale_rapportino.Trim().Equals(string.Empty)) { dic.Add("Seriale rapportino", i.seriale_rapportino.Trim()); } if (!string.IsNullOrEmpty(i.pagamento) && !i.pagamento.Trim().Equals(string.Empty)) { dic.Add("Pagamento", i.pagamento.Trim()); } if (!string.IsNullOrEmpty(i.note_pagamento) && !i.note_pagamento.Trim().Equals(string.Empty)) { dic.Add("Note pagamento", i.note_pagamento.Trim()); } if (!string.IsNullOrEmpty(i.codice_impianto) && !i.codice_impianto.Trim().Equals(string.Empty)) { dic.Add("Cod. impianto", i.codice_impianto.Trim()); } if (!string.IsNullOrEmpty(i.indirizzo) && !i.indirizzo.Trim().Equals(string.Empty)) { StringBuilder sb = new StringBuilder(); string ind = string.Empty; string via = !string.IsNullOrEmpty(i.indirizzo_tipo) ? i.indirizzo_tipo.Trim() : string.Empty; string indiri = !string.IsNullOrEmpty(i.indirizzo) ? i.indirizzo.Trim() : string.Empty; string num = string.Empty; if(i.indirizzo_num!=null && i.indirizzo_num.Value>0) { num = i.indirizzo_num.ToString().Trim(); } string num2 = !string.IsNullOrEmpty(i.indirizzo_num2) ? i.indirizzo_num2.Trim() : string.Empty; string sca = !string.IsNullOrEmpty(i.indirizzo_scala) ? i.indirizzo_scala.Trim() : string.Empty; //ind = string.Concat("{0} {1} num {2} interno {3} scala {4}",via,indiri,num,num2,sca); if (!string.IsNullOrEmpty(via)) sb.Append(via); if (!string.IsNullOrEmpty(indiri)) sb.Append(" "+indiri); if (!string.IsNullOrEmpty(num)) sb.Append(" ,"+num); if (!string.IsNullOrEmpty(num2)) sb.Append(" Int: " + num2); if (!string.IsNullOrEmpty(sca)) sb.Append(" Scala: " + sca); dic.Add("Indirizzo imp", sb.ToString()); } if (!string.IsNullOrEmpty(i.azienda_tecnico) && !i.azienda_tecnico.Trim().Equals(string.Empty)) { dic.Add("Azienda", i.azienda_tecnico); } if (!string.IsNullOrEmpty(i.generato) && !i.generato.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.generato) { case "S": st = "SI"; break; default: st = "NO"; break; } dic.Add("Rapportino importato", st); } if (i.ore_lavoro != null && i.ore_lavoro.Value > 0) { dic.Add("Ore lavoro", i.ore_lavoro.Value.ToString()); } if (i.spese_viaggio!=null && i.spese_viaggio.Value > 0) { dic.Add("Spese viaggio", i.spese_viaggio.Value.ToString()); } if (i.materiale != null && i.materiale.Value > 0) { dic.Add("Materiale", i.materiale.Value.ToString()); } if (i.anticipo != null && i.anticipo.Value>0) { dic.Add("Anticipo", i.anticipo.Value.ToString()); } if (i.manodopera != null && i.manodopera.Value > 0) { dic.Add("Manodopera", i.manodopera.Value.ToString()); } if (i.diritto_chiamata != null && i.diritto_chiamata.Value > 0) { dic.Add("Diritto chiamata", i.diritto_chiamata.Value.ToString()); } if (i.totale != null && i.totale.Value > 0) { dic.Add("Totale", i.totale.Value.ToString()); } #endregion break; case Clienti.Sicilia: #region sicilia //chiamata if (!string.IsNullOrEmpty(i.codice_segnalazione) && !i.codice_segnalazione.Trim().Equals(string.Empty)) { dic.Add("Codice segnalazione", i.codice_segnalazione.Trim()); } if (!string.IsNullOrEmpty(i.seriale_chiamata) && !i.seriale_chiamata.Trim().Equals(string.Empty)) { dic.Add("N° Chiamata", i.seriale_chiamata.Trim()); } //manutenzione if (!string.IsNullOrEmpty(i.codice_intervento) && !i.codice_intervento.Trim().Equals(string.Empty)) { StringBuilder sb = new StringBuilder(); sb.Append(i.codice_intervento.Trim()); if (!string.IsNullOrEmpty(i.cidescri) && !i.cidescri.Trim().Equals(string.Empty)) { sb.Append(" - " + i.cidescri.Trim()); } if (!string.IsNullOrEmpty(i.cidessup) && !i.cidessup.Trim().Equals(string.Empty)) { sb.Append(" - " + i.cidessup.Trim()); } dic.Add("Manutenzione", sb.ToString()); } if (i.data_manutenzione != null) { dic.Add("Data manutenzione", i.data_manutenzione.Value.ToString()); } //dati intervento if (!string.IsNullOrEmpty(i.stato_finale) && !i.stato_finale.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.stato_finale) { case "1": st = "In Funzione"; dic.Add("Stato finale", st); break; case "0": st = "Fermo"; dic.Add("Stato finale", st); break; } } if (!string.IsNullOrEmpty(i.esito_intervento) && !i.esito_intervento.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.esito_intervento) { case "1": st = "Positivo"; break; case "P": st = "Positivo"; break; default: st = "Negativo"; break; } dic.Add("Esito intervento", st); } if (!string.IsNullOrEmpty(i.descrizione_intervento) && !i.descrizione_intervento.Trim().Equals(string.Empty)) { dic.Add("Descrizione intervento", i.descrizione_intervento.Trim()); } if (!string.IsNullOrEmpty(i.difetti_riscontrati) && !i.difetti_riscontrati.Trim().Equals(string.Empty)) { dic.Add("Difetti riscontrati", i.difetti_riscontrati.Trim()); } if (!string.IsNullOrEmpty(i.lavoro_eseguito) && !i.lavoro_eseguito.Trim().Equals(string.Empty)) { dic.Add("Lavoro eseguito", i.lavoro_eseguito.Trim()); } if (!string.IsNullOrEmpty(i.note_intervento) && !i.note_intervento.Trim().Equals(string.Empty)) { dic.Add("Note intervento", i.note_intervento); } if (!string.IsNullOrEmpty(i.tipo_intervento) && !i.tipo_intervento.Trim().Equals(string.Empty)) { dic.Add("Tipo intervento", i.tipo_intervento.Trim()); } if (!string.IsNullOrEmpty(i.codice_chiusura_1) && !i.codice_chiusura_1.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_1.Trim()); if (!string.IsNullOrEmpty(i.cc1)) { sb.Append(" - " + i.cc1.Trim()); } sb.Append(i.ccds1); if (!string.IsNullOrEmpty(i.ccds1)) { sb.Append(" - " + i.ccds1.Trim()); } dic.Add("Codice Chiusura 1", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_2) && !i.codice_chiusura_2.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_2.Trim()); if (!string.IsNullOrEmpty(i.cc2)) { sb.Append(" - " + i.cc2.Trim()); } sb.Append(i.ccds2); if (!string.IsNullOrEmpty(i.ccds2)) { sb.Append(" - " + i.ccds2.Trim()); } dic.Add("Codice Chiusura 2", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_3) && !i.codice_chiusura_3.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_3.Trim()); if (!string.IsNullOrEmpty(i.cc3)) { sb.Append(" - " + i.cc3.Trim()); } sb.Append(i.ccds3); if (!string.IsNullOrEmpty(i.ccds3)) { sb.Append(" - " + i.ccds3.Trim()); } dic.Add("Codice Chiusura 3", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_4) && !i.codice_chiusura_4.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_4.Trim()); if (!string.IsNullOrEmpty(i.cc4)) { sb.Append(" - " + i.cc4.Trim()); } sb.Append(i.ccds4); if (!string.IsNullOrEmpty(i.ccds4)) { sb.Append(" - " + i.ccds4.Trim()); } dic.Add("Codice Chiusura 4", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_5) && !i.codice_chiusura_5.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_5.Trim()); if (!string.IsNullOrEmpty(i.cc5)) { sb.Append(" - " + i.cc5.Trim()); } sb.Append(i.ccds5); if (!string.IsNullOrEmpty(i.ccds5)) { sb.Append(" - " + i.ccds5.Trim()); } dic.Add("Codice Chiusura 5", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_6) && !i.codice_chiusura_6.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_6.Trim()); if (!string.IsNullOrEmpty(i.cc6)) { sb.Append(" - " + i.cc6.Trim()); } sb.Append(i.ccds6); if (!string.IsNullOrEmpty(i.ccds6)) { sb.Append(" - " + i.ccds6.Trim()); } dic.Add("Codice Chiusura 6", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_7) && !i.codice_chiusura_7.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_7.Trim()); if (!string.IsNullOrEmpty(i.cc7)) { sb.Append(" - " + i.cc7.Trim()); } sb.Append(i.ccds7); if (!string.IsNullOrEmpty(i.ccds7)) { sb.Append(" - " + i.ccds7.Trim()); } dic.Add("Codice Chiusura 7", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_8) && !i.codice_chiusura_8.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_8.Trim()); if (!string.IsNullOrEmpty(i.cc8)) { sb.Append(" - " + i.cc8.Trim()); } sb.Append(i.ccds8); if (!string.IsNullOrEmpty(i.ccds8)) { sb.Append(" - " + i.ccds8.Trim()); } dic.Add("Codice Chiusura 8", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_9) && !i.codice_chiusura_9.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_9.Trim()); if (!string.IsNullOrEmpty(i.cc9)) { sb.Append(" - " + i.cc9.Trim()); } sb.Append(i.ccds9); if (!string.IsNullOrEmpty(i.ccds9)) { sb.Append(" - " + i.ccds9.Trim()); } dic.Add("Codice Chiusura 9", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_10) && !i.codice_chiusura_10.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_10.Trim()); if (!string.IsNullOrEmpty(i.cc10)) { sb.Append(" - " + i.cc10.Trim()); } sb.Append(i.ccds10); if (!string.IsNullOrEmpty(i.ccds10)) { sb.Append(" - " + i.ccds10.Trim()); } dic.Add("Codice Chiusura 10", sb.ToString()); } if (!string.IsNullOrEmpty(i.firma) && !i.firma.Trim().Equals(string.Empty)) { dic.Add("Firma", i.firma.Trim()); } if (!string.IsNullOrEmpty(i.ser_buono) && !i.ser_buono.Trim().Equals(string.Empty)) { dic.Add("N° buono", i.ser_buono.Trim()); } if (!string.IsNullOrEmpty(i.seriale_rapportino) && !i.seriale_rapportino.Trim().Equals(string.Empty)) { dic.Add("Seriale rapportino", i.seriale_rapportino.Trim()); } if (!string.IsNullOrEmpty(i.pagamento) && !i.pagamento.Trim().Equals(string.Empty)) { dic.Add("Pagamento", i.pagamento.Trim()); } if (!string.IsNullOrEmpty(i.note_pagamento) && !i.note_pagamento.Trim().Equals(string.Empty)) { dic.Add("Note pagamento", i.note_pagamento.Trim()); } if (!string.IsNullOrEmpty(i.codice_impianto) && !i.codice_impianto.Trim().Equals(string.Empty)) { dic.Add("Cod. impianto", i.codice_impianto.Trim()); } if (!string.IsNullOrEmpty(i.indirizzo) && !i.indirizzo.Trim().Equals(string.Empty)) { StringBuilder sb = new StringBuilder(); string ind = string.Empty; string via = !string.IsNullOrEmpty(i.indirizzo_tipo) ? i.indirizzo_tipo.Trim() : string.Empty; string indiri = !string.IsNullOrEmpty(i.indirizzo) ? i.indirizzo.Trim() : string.Empty; string num = string.Empty; if (i.indirizzo_num != null && i.indirizzo_num.Value > 0) { num = i.indirizzo_num.ToString().Trim(); } string num2 = !string.IsNullOrEmpty(i.indirizzo_num2) ? i.indirizzo_num2.Trim() : string.Empty; string sca = !string.IsNullOrEmpty(i.indirizzo_scala) ? i.indirizzo_scala.Trim() : string.Empty; //ind = string.Concat("{0} {1} num {2} interno {3} scala {4}",via,indiri,num,num2,sca); if (!string.IsNullOrEmpty(via)) sb.Append(via); if (!string.IsNullOrEmpty(indiri)) sb.Append(" " + indiri); if (!string.IsNullOrEmpty(num)) sb.Append(" ," + num); if (!string.IsNullOrEmpty(num2)) sb.Append(" Int: " + num2); if (!string.IsNullOrEmpty(sca)) sb.Append(" Scala: " + sca); dic.Add("Indirizzo imp", sb.ToString()); } if (!string.IsNullOrEmpty(i.azienda_tecnico) && !i.azienda_tecnico.Trim().Equals(string.Empty)) { dic.Add("Azienda", i.azienda_tecnico); } if (!string.IsNullOrEmpty(i.generato) && !i.generato.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.generato) { case "S": st = "SI"; break; default: st = "NO"; break; } dic.Add("Rapportino importato", st); } if (i.ore_lavoro != null && i.ore_lavoro.Value > 0) { dic.Add("Ore lavoro", i.ore_lavoro.Value.ToString()); } if (i.spese_viaggio != null && i.spese_viaggio.Value > 0) { dic.Add("Spese viaggio", i.spese_viaggio.Value.ToString()); } if (i.materiale != null && i.materiale.Value > 0) { dic.Add("Materiale", i.materiale.Value.ToString()); } if (i.anticipo != null && i.anticipo.Value > 0) { dic.Add("Anticipo", i.anticipo.Value.ToString()); } if (i.manodopera != null && i.manodopera.Value > 0) { dic.Add("Manodopera", i.manodopera.Value.ToString()); } if (i.diritto_chiamata != null && i.diritto_chiamata.Value > 0) { dic.Add("Diritto chiamata", i.diritto_chiamata.Value.ToString()); } if (i.totale != null && i.totale.Value > 0) { dic.Add("Totale", i.totale.Value.ToString()); } #endregion break; case Clienti.Discovery: #region discovery //chiamata if (!string.IsNullOrEmpty(i.codice_segnalazione) && !i.codice_segnalazione.Trim().Equals(string.Empty)) { dic.Add("Codice segnalazione", i.codice_segnalazione.Trim()); } if (!string.IsNullOrEmpty(i.seriale_chiamata) && !i.seriale_chiamata.Trim().Equals(string.Empty)) { dic.Add("N° Chiamata", i.seriale_chiamata.Trim()); } //manutenzione if (!string.IsNullOrEmpty(i.codice_intervento) && !i.codice_intervento.Trim().Equals(string.Empty)) { StringBuilder sb = new StringBuilder(); sb.Append(i.codice_intervento.Trim()); if (!string.IsNullOrEmpty(i.cidescri) && !i.cidescri.Trim().Equals(string.Empty)) { sb.Append(" - " + i.cidescri.Trim()); } if (!string.IsNullOrEmpty(i.cidessup) && !i.cidessup.Trim().Equals(string.Empty)) { sb.Append(" - " + i.cidessup.Trim()); } dic.Add("Manutenzione", sb.ToString()); } if (i.data_manutenzione != null) { dic.Add("Data manutenzione", i.data_manutenzione.Value.ToString()); } //dati intervento if (!string.IsNullOrEmpty(i.stato_finale) && !i.stato_finale.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.stato_finale) { case "1": st = "In Funzione"; dic.Add("Stato finale", st); break; case "0": st = "Fermo"; dic.Add("Stato finale", st); break; } } if (!string.IsNullOrEmpty(i.esito_intervento) && !i.esito_intervento.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.esito_intervento) { case "1": st = "Positivo"; break; case "P": st = "Positivo"; break; default: st = "Negativo"; break; } dic.Add("Esito intervento", st); } if (!string.IsNullOrEmpty(i.descrizione_intervento) && !i.descrizione_intervento.Trim().Equals(string.Empty)) { dic.Add("Descrizione intervento", i.descrizione_intervento.Trim()); } if (!string.IsNullOrEmpty(i.difetti_riscontrati) && !i.difetti_riscontrati.Trim().Equals(string.Empty)) { dic.Add("Difetti riscontrati", i.difetti_riscontrati.Trim()); } if (!string.IsNullOrEmpty(i.lavoro_eseguito) && !i.lavoro_eseguito.Trim().Equals(string.Empty)) { dic.Add("Lavoro eseguito", i.lavoro_eseguito.Trim()); } if (!string.IsNullOrEmpty(i.note_intervento) && !i.note_intervento.Trim().Equals(string.Empty)) { dic.Add("Note intervento", i.note_intervento); } if (!string.IsNullOrEmpty(i.tipo_intervento) && !i.tipo_intervento.Trim().Equals(string.Empty)) { dic.Add("Tipo intervento", i.tipo_intervento.Trim()); } if (!string.IsNullOrEmpty(i.codice_chiusura_1) && !i.codice_chiusura_1.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_1.Trim()); if (!string.IsNullOrEmpty(i.cc1)) { sb.Append(" - " + i.cc1.Trim()); } sb.Append(i.ccds1); if (!string.IsNullOrEmpty(i.ccds1)) { sb.Append(" - " + i.ccds1.Trim()); } dic.Add("Codice Chiusura 1", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_2) && !i.codice_chiusura_2.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_2.Trim()); if (!string.IsNullOrEmpty(i.cc2)) { sb.Append(" - " + i.cc2.Trim()); } sb.Append(i.ccds2); if (!string.IsNullOrEmpty(i.ccds2)) { sb.Append(" - " + i.ccds2.Trim()); } dic.Add("Codice Chiusura 2", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_3) && !i.codice_chiusura_3.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_3.Trim()); if (!string.IsNullOrEmpty(i.cc3)) { sb.Append(" - " + i.cc3.Trim()); } sb.Append(i.ccds3); if (!string.IsNullOrEmpty(i.ccds3)) { sb.Append(" - " + i.ccds3.Trim()); } dic.Add("Codice Chiusura 3", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_4) && !i.codice_chiusura_4.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_4.Trim()); if (!string.IsNullOrEmpty(i.cc4)) { sb.Append(" - " + i.cc4.Trim()); } sb.Append(i.ccds4); if (!string.IsNullOrEmpty(i.ccds4)) { sb.Append(" - " + i.ccds4.Trim()); } dic.Add("Codice Chiusura 4", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_5) && !i.codice_chiusura_5.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_5.Trim()); if (!string.IsNullOrEmpty(i.cc5)) { sb.Append(" - " + i.cc5.Trim()); } sb.Append(i.ccds5); if (!string.IsNullOrEmpty(i.ccds5)) { sb.Append(" - " + i.ccds5.Trim()); } dic.Add("Codice Chiusura 5", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_6) && !i.codice_chiusura_6.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_6.Trim()); if (!string.IsNullOrEmpty(i.cc6)) { sb.Append(" - " + i.cc6.Trim()); } sb.Append(i.ccds6); if (!string.IsNullOrEmpty(i.ccds6)) { sb.Append(" - " + i.ccds6.Trim()); } dic.Add("Codice Chiusura 6", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_7) && !i.codice_chiusura_7.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_7.Trim()); if (!string.IsNullOrEmpty(i.cc7)) { sb.Append(" - " + i.cc7.Trim()); } sb.Append(i.ccds7); if (!string.IsNullOrEmpty(i.ccds7)) { sb.Append(" - " + i.ccds7.Trim()); } dic.Add("Codice Chiusura 7", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_8) && !i.codice_chiusura_8.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_8.Trim()); if (!string.IsNullOrEmpty(i.cc8)) { sb.Append(" - " + i.cc8.Trim()); } sb.Append(i.ccds8); if (!string.IsNullOrEmpty(i.ccds8)) { sb.Append(" - " + i.ccds8.Trim()); } dic.Add("Codice Chiusura 8", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_9) && !i.codice_chiusura_9.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_9.Trim()); if (!string.IsNullOrEmpty(i.cc9)) { sb.Append(" - " + i.cc9.Trim()); } sb.Append(i.ccds9); if (!string.IsNullOrEmpty(i.ccds9)) { sb.Append(" - " + i.ccds9.Trim()); } dic.Add("Codice Chiusura 9", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_10) && !i.codice_chiusura_10.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_10.Trim()); if (!string.IsNullOrEmpty(i.cc10)) { sb.Append(" - " + i.cc10.Trim()); } sb.Append(i.ccds10); if (!string.IsNullOrEmpty(i.ccds10)) { sb.Append(" - " + i.ccds10.Trim()); } dic.Add("Codice Chiusura 10", sb.ToString()); } if (!string.IsNullOrEmpty(i.firma) && !i.firma.Trim().Equals(string.Empty)) { dic.Add("Firma", i.firma.Trim()); } if (!string.IsNullOrEmpty(i.ser_buono) && !i.ser_buono.Trim().Equals(string.Empty)) { dic.Add("N° buono", i.ser_buono.Trim()); } if (!string.IsNullOrEmpty(i.seriale_rapportino) && !i.seriale_rapportino.Trim().Equals(string.Empty)) { dic.Add("Seriale rapportino", i.seriale_rapportino.Trim()); } if (!string.IsNullOrEmpty(i.pagamento) && !i.pagamento.Trim().Equals(string.Empty)) { dic.Add("Pagamento", i.pagamento.Trim()); } if (!string.IsNullOrEmpty(i.note_pagamento) && !i.note_pagamento.Trim().Equals(string.Empty)) { dic.Add("Note pagamento", i.note_pagamento.Trim()); } if (!string.IsNullOrEmpty(i.codice_impianto) && !i.codice_impianto.Trim().Equals(string.Empty)) { dic.Add("Cod. impianto", i.codice_impianto.Trim()); } if (!string.IsNullOrEmpty(i.indirizzo) && !i.indirizzo.Trim().Equals(string.Empty)) { StringBuilder sb = new StringBuilder(); string ind = string.Empty; string via = !string.IsNullOrEmpty(i.indirizzo_tipo) ? i.indirizzo_tipo.Trim() : string.Empty; string indiri = !string.IsNullOrEmpty(i.indirizzo) ? i.indirizzo.Trim() : string.Empty; string num = string.Empty; if (i.indirizzo_num != null && i.indirizzo_num.Value > 0) { num = i.indirizzo_num.ToString().Trim(); } string num2 = !string.IsNullOrEmpty(i.indirizzo_num2) ? i.indirizzo_num2.Trim() : string.Empty; string sca = !string.IsNullOrEmpty(i.indirizzo_scala) ? i.indirizzo_scala.Trim() : string.Empty; //ind = string.Concat("{0} {1} num {2} interno {3} scala {4}",via,indiri,num,num2,sca); if (!string.IsNullOrEmpty(via)) sb.Append(via); if (!string.IsNullOrEmpty(indiri)) sb.Append(" " + indiri); if (!string.IsNullOrEmpty(num)) sb.Append(" ," + num); if (!string.IsNullOrEmpty(num2)) sb.Append(" Int: " + num2); if (!string.IsNullOrEmpty(sca)) sb.Append(" Scala: " + sca); dic.Add("Indirizzo imp", sb.ToString()); } if (!string.IsNullOrEmpty(i.azienda_tecnico) && !i.azienda_tecnico.Trim().Equals(string.Empty)) { dic.Add("Azienda", i.azienda_tecnico); } if (!string.IsNullOrEmpty(i.generato) && !i.generato.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.generato) { case "S": st = "SI"; break; default: st = "NO"; break; } dic.Add("Rapportino importato", st); } if (i.ore_lavoro != null && i.ore_lavoro.Value > 0) { dic.Add("Ore lavoro", i.ore_lavoro.Value.ToString()); } if (i.spese_viaggio != null && i.spese_viaggio.Value > 0) { dic.Add("Spese viaggio", i.spese_viaggio.Value.ToString()); } if (i.materiale != null && i.materiale.Value > 0) { dic.Add("Materiale", i.materiale.Value.ToString()); } if (i.anticipo != null && i.anticipo.Value > 0) { dic.Add("Anticipo", i.anticipo.Value.ToString()); } if (i.manodopera != null && i.manodopera.Value > 0) { dic.Add("Manodopera", i.manodopera.Value.ToString()); } if (i.diritto_chiamata != null && i.diritto_chiamata.Value > 0) { dic.Add("Diritto chiamata", i.diritto_chiamata.Value.ToString()); } if (i.totale != null && i.totale.Value > 0) { dic.Add("Totale", i.totale.Value.ToString()); } #endregion break; case Clienti.Sarom: #region sarom //chiamata if (!string.IsNullOrEmpty(i.codice_segnalazione) && !i.codice_segnalazione.Trim().Equals(string.Empty)) { dic.Add("Codice segnalazione", i.codice_segnalazione.Trim()); } if (!string.IsNullOrEmpty(i.seriale_chiamata) && !i.seriale_chiamata.Trim().Equals(string.Empty)) { dic.Add("N° Chiamata", i.seriale_chiamata.Trim()); } //manutenzione if (!string.IsNullOrEmpty(i.codice_intervento) && !i.codice_intervento.Trim().Equals(string.Empty)) { StringBuilder sb = new StringBuilder(); sb.Append(i.codice_intervento.Trim()); if (!string.IsNullOrEmpty(i.cidescri) && !i.cidescri.Trim().Equals(string.Empty)) { sb.Append(" - " + i.cidescri.Trim()); } if (!string.IsNullOrEmpty(i.cidessup) && !i.cidessup.Trim().Equals(string.Empty)) { sb.Append(" - " + i.cidessup.Trim()); } dic.Add("Manutenzione", sb.ToString()); } if (i.data_manutenzione != null) { dic.Add("Data manutenzione", i.data_manutenzione.Value.ToString()); } //dati intervento if (!string.IsNullOrEmpty(i.stato_finale) && !i.stato_finale.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.stato_finale) { case "1": st = "In Funzione"; dic.Add("Stato finale", st); break; case "0": st = "Fermo"; dic.Add("Stato finale", st); break; } } if (!string.IsNullOrEmpty(i.esito_intervento) && !i.esito_intervento.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.esito_intervento) { case "1": st = "Positivo"; break; case "P": st = "Positivo"; break; default: st = "Negativo"; break; } dic.Add("Esito intervento", st); } if (!string.IsNullOrEmpty(i.descrizione_intervento) && !i.descrizione_intervento.Trim().Equals(string.Empty)) { dic.Add("Descrizione intervento", i.descrizione_intervento.Trim()); } if (!string.IsNullOrEmpty(i.difetti_riscontrati) && !i.difetti_riscontrati.Trim().Equals(string.Empty)) { dic.Add("Difetti riscontrati", i.difetti_riscontrati.Trim()); } if (!string.IsNullOrEmpty(i.lavoro_eseguito) && !i.lavoro_eseguito.Trim().Equals(string.Empty)) { dic.Add("Lavoro eseguito", i.lavoro_eseguito.Trim()); } if (!string.IsNullOrEmpty(i.note_intervento) && !i.note_intervento.Trim().Equals(string.Empty)) { dic.Add("Note intervento", i.note_intervento); } if (!string.IsNullOrEmpty(i.tipo_intervento) && !i.tipo_intervento.Trim().Equals(string.Empty)) { dic.Add("Tipo intervento", i.tipo_intervento.Trim()); } if (!string.IsNullOrEmpty(i.codice_chiusura_1) && !i.codice_chiusura_1.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_1.Trim()); if (!string.IsNullOrEmpty(i.cc1)) { sb.Append(" - " + i.cc1.Trim()); } sb.Append(i.ccds1); if (!string.IsNullOrEmpty(i.ccds1)) { sb.Append(" - " + i.ccds1.Trim()); } dic.Add("Codice Chiusura 1", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_2) && !i.codice_chiusura_2.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_2.Trim()); if (!string.IsNullOrEmpty(i.cc2)) { sb.Append(" - " + i.cc2.Trim()); } sb.Append(i.ccds2); if (!string.IsNullOrEmpty(i.ccds2)) { sb.Append(" - " + i.ccds2.Trim()); } dic.Add("Codice Chiusura 2", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_3) && !i.codice_chiusura_3.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_3.Trim()); if (!string.IsNullOrEmpty(i.cc3)) { sb.Append(" - " + i.cc3.Trim()); } sb.Append(i.ccds3); if (!string.IsNullOrEmpty(i.ccds3)) { sb.Append(" - " + i.ccds3.Trim()); } dic.Add("Codice Chiusura 3", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_4) && !i.codice_chiusura_4.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_4.Trim()); if (!string.IsNullOrEmpty(i.cc4)) { sb.Append(" - " + i.cc4.Trim()); } sb.Append(i.ccds4); if (!string.IsNullOrEmpty(i.ccds4)) { sb.Append(" - " + i.ccds4.Trim()); } dic.Add("Codice Chiusura 4", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_5) && !i.codice_chiusura_5.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_5.Trim()); if (!string.IsNullOrEmpty(i.cc5)) { sb.Append(" - " + i.cc5.Trim()); } sb.Append(i.ccds5); if (!string.IsNullOrEmpty(i.ccds5)) { sb.Append(" - " + i.ccds5.Trim()); } dic.Add("Codice Chiusura 5", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_6) && !i.codice_chiusura_6.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_6.Trim()); if (!string.IsNullOrEmpty(i.cc6)) { sb.Append(" - " + i.cc6.Trim()); } sb.Append(i.ccds6); if (!string.IsNullOrEmpty(i.ccds6)) { sb.Append(" - " + i.ccds6.Trim()); } dic.Add("Codice Chiusura 6", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_7) && !i.codice_chiusura_7.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_7.Trim()); if (!string.IsNullOrEmpty(i.cc7)) { sb.Append(" - " + i.cc7.Trim()); } sb.Append(i.ccds7); if (!string.IsNullOrEmpty(i.ccds7)) { sb.Append(" - " + i.ccds7.Trim()); } dic.Add("Codice Chiusura 7", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_8) && !i.codice_chiusura_8.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_8.Trim()); if (!string.IsNullOrEmpty(i.cc8)) { sb.Append(" - " + i.cc8.Trim()); } sb.Append(i.ccds8); if (!string.IsNullOrEmpty(i.ccds8)) { sb.Append(" - " + i.ccds8.Trim()); } dic.Add("Codice Chiusura 8", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_9) && !i.codice_chiusura_9.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_9.Trim()); if (!string.IsNullOrEmpty(i.cc9)) { sb.Append(" - " + i.cc9.Trim()); } sb.Append(i.ccds9); if (!string.IsNullOrEmpty(i.ccds9)) { sb.Append(" - " + i.ccds9.Trim()); } dic.Add("Codice Chiusura 9", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_chiusura_10) && !i.codice_chiusura_10.Trim().Equals(string.Empty)) { string c = string.Empty; StringBuilder sb = new StringBuilder(); sb.Append(i.codice_chiusura_10.Trim()); if (!string.IsNullOrEmpty(i.cc10)) { sb.Append(" - " + i.cc10.Trim()); } sb.Append(i.ccds10); if (!string.IsNullOrEmpty(i.ccds10)) { sb.Append(" - " + i.ccds10.Trim()); } dic.Add("Codice Chiusura 10", sb.ToString()); } if (!string.IsNullOrEmpty(i.firma) && !i.firma.Trim().Equals(string.Empty)) { dic.Add("Firma", i.firma.Trim()); } if (!string.IsNullOrEmpty(i.ser_buono) && !i.ser_buono.Trim().Equals(string.Empty)) { dic.Add("N° buono", i.ser_buono.Trim()); } if (!string.IsNullOrEmpty(i.seriale_rapportino) && !i.seriale_rapportino.Trim().Equals(string.Empty)) { dic.Add("Seriale rapportino", i.seriale_rapportino.Trim()); } if (!string.IsNullOrEmpty(i.pagamento) && !i.pagamento.Trim().Equals(string.Empty)) { dic.Add("Pagamento", i.pagamento.Trim()); } if (!string.IsNullOrEmpty(i.note_pagamento) && !i.note_pagamento.Trim().Equals(string.Empty)) { dic.Add("Note pagamento", i.note_pagamento.Trim()); } if (!string.IsNullOrEmpty(i.codice_impianto) && !i.codice_impianto.Trim().Equals(string.Empty)) { dic.Add("Cod. impianto", i.codice_impianto.Trim()); } if (!string.IsNullOrEmpty(i.indirizzo) && !i.indirizzo.Trim().Equals(string.Empty)) { StringBuilder sb = new StringBuilder(); string ind = string.Empty; string via = !string.IsNullOrEmpty(i.indirizzo_tipo) ? i.indirizzo_tipo.Trim() : string.Empty; string indiri = !string.IsNullOrEmpty(i.indirizzo) ? i.indirizzo.Trim() : string.Empty; string num = string.Empty; if (i.indirizzo_num != null && i.indirizzo_num.Value > 0) { num = i.indirizzo_num.ToString().Trim(); } string num2 = !string.IsNullOrEmpty(i.indirizzo_num2) ? i.indirizzo_num2.Trim() : string.Empty; string sca = !string.IsNullOrEmpty(i.indirizzo_scala) ? i.indirizzo_scala.Trim() : string.Empty; //ind = string.Concat("{0} {1} num {2} interno {3} scala {4}",via,indiri,num,num2,sca); if (!string.IsNullOrEmpty(via)) sb.Append(via); if (!string.IsNullOrEmpty(indiri)) sb.Append(" " + indiri); if (!string.IsNullOrEmpty(num)) sb.Append(" ," + num); if (!string.IsNullOrEmpty(num2)) sb.Append(" Int: " + num2); if (!string.IsNullOrEmpty(sca)) sb.Append(" Scala: " + sca); dic.Add("Indirizzo imp", sb.ToString()); } if (!string.IsNullOrEmpty(i.azienda_tecnico) && !i.azienda_tecnico.Trim().Equals(string.Empty)) { dic.Add("Azienda", i.azienda_tecnico); } if (!string.IsNullOrEmpty(i.generato) && !i.generato.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.generato) { case "S": st = "SI"; break; default: st = "NO"; break; } dic.Add("Rapportino importato", st); } if (i.ore_lavoro != null && i.ore_lavoro.Value > 0) { dic.Add("Ore lavoro", i.ore_lavoro.Value.ToString()); } if (i.spese_viaggio != null && i.spese_viaggio.Value > 0) { dic.Add("Spese viaggio", i.spese_viaggio.Value.ToString()); } if (i.materiale != null && i.materiale.Value > 0) { dic.Add("Materiale", i.materiale.Value.ToString()); } if (i.anticipo != null && i.anticipo.Value > 0) { dic.Add("Anticipo", i.anticipo.Value.ToString()); } if (i.manodopera != null && i.manodopera.Value > 0) { dic.Add("Manodopera", i.manodopera.Value.ToString()); } if (i.diritto_chiamata != null && i.diritto_chiamata.Value > 0) { dic.Add("Diritto chiamata", i.diritto_chiamata.Value.ToString()); } if (i.totale != null && i.totale.Value > 0) { dic.Add("Totale", i.totale.Value.ToString()); } #endregion break; default: string appo = string.Empty; if (!string.IsNullOrEmpty(i.codice_chiusura_1) && !i.codice_chiusura_1.Trim().Equals(string.Empty)) { appo = string.Empty; appo = !string.IsNullOrEmpty(i.cc1) ? " - " + i.cc1 : string.Empty; dic.Add("Cod. Chiusura 1", i.codice_chiusura_1.Trim()+appo); } if (!string.IsNullOrEmpty(i.codice_chiusura_2) && !i.codice_chiusura_2.Trim().Equals(string.Empty)) { appo = string.Empty; appo = !string.IsNullOrEmpty(i.cc2) ? " - " + i.cc2 : string.Empty; dic.Add("Cod. Chiusura 2", i.codice_chiusura_2.Trim() + appo); } if (!string.IsNullOrEmpty(i.codice_chiusura_3) && !i.codice_chiusura_3.Trim().Equals(string.Empty)) { appo = string.Empty; appo = !string.IsNullOrEmpty(i.cc3) ? " - " + i.cc3 : string.Empty; dic.Add("Cod. Chiusura 3", i.codice_chiusura_3.Trim() + appo); } if (!string.IsNullOrEmpty(i.codice_chiusura_4) && !i.codice_chiusura_4.Trim().Equals(string.Empty)) { appo = string.Empty; appo = !string.IsNullOrEmpty(i.cc4) ? " - " + i.cc4 : string.Empty; dic.Add("Cod. Chiusura 4", i.codice_chiusura_4.Trim() + appo); } if (!string.IsNullOrEmpty(i.codice_chiusura_5) && !i.codice_chiusura_5.Trim().Equals(string.Empty)) { appo = string.Empty; appo = !string.IsNullOrEmpty(i.cc5) ? " - " + i.cc5 : string.Empty; dic.Add("Cod. Chiusura 5", i.codice_chiusura_5.Trim() + appo); } if (!string.IsNullOrEmpty(i.codice_chiusura_6) && !i.codice_chiusura_6.Trim().Equals(string.Empty)) { appo = string.Empty; appo = !string.IsNullOrEmpty(i.cc6) ? " - " + i.cc6 : string.Empty; dic.Add("Cod. Chiusura 6", i.codice_chiusura_6.Trim() + appo); } if (!string.IsNullOrEmpty(i.codice_chiusura_7) && !i.codice_chiusura_7.Trim().Equals(string.Empty)) { appo = string.Empty; appo = !string.IsNullOrEmpty(i.cc7) ? " - " + i.cc7 : string.Empty; dic.Add("Cod. Chiusura 7", i.codice_chiusura_7.Trim() + appo); } if (!string.IsNullOrEmpty(i.codice_chiusura_8) && !i.codice_chiusura_8.Trim().Equals(string.Empty)) { appo = string.Empty; appo = !string.IsNullOrEmpty(i.cc8) ? " - " + i.cc8 : string.Empty; dic.Add("Cod. Chiusura 8", i.codice_chiusura_8.Trim() + appo); } if (!string.IsNullOrEmpty(i.codice_chiusura_9) && !i.codice_chiusura_9.Trim().Equals(string.Empty)) { appo = string.Empty; appo = !string.IsNullOrEmpty(i.cc9) ? " - " + i.cc9 : string.Empty; dic.Add("Cod. Chiusura 9", i.codice_chiusura_9.Trim() + appo); } if (!string.IsNullOrEmpty(i.codice_chiusura_10) && !i.codice_chiusura_10.Trim().Equals(string.Empty)) { appo = string.Empty; appo = !string.IsNullOrEmpty(i.cc10) ? " - " + i.cc10 : string.Empty; dic.Add("Cod. Chiusura 10", i.codice_chiusura_10.Trim() + appo); } if (!string.IsNullOrEmpty(i.descrizione_intervento) && !i.descrizione_intervento.Trim().Equals(string.Empty)) { dic.Add("Descrizione intervento", i.descrizione_intervento.Trim()); } if (!string.IsNullOrEmpty(i.note_intervento) && !i.note_intervento.Trim().Equals(string.Empty)) { dic.Add("Note intervento", i.note_intervento.Trim()); } if (!string.IsNullOrEmpty(i.esito_intervento) && !i.esito_intervento.Trim().Equals(string.Empty)) { dic.Add("Esito intervento", i.esito_intervento.Trim()); } break; } o.dettaglio = dic; return o; } private Impianto_out fillImpianto_out(Impianto i) { Impianto_out u = new Impianto_out(); u.codimp = i.imcodimp; u.descimp = i.imdescri; StringBuilder sb = new StringBuilder(); string via = !string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() : string.Empty; string indiri = !string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() : string.Empty; string num = string.Empty; if (i.imindiri3 != null && i.imindiri3.Value > 0) { num = i.imindiri3.ToString().Trim(); } string num2 = !string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() : string.Empty; string sca = !string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() : string.Empty; if (!string.IsNullOrEmpty(via)) sb.Append(via); if (!string.IsNullOrEmpty(indiri)) sb.Append(" " + indiri); if (!string.IsNullOrEmpty(num)) sb.Append(" ," + num); if (!string.IsNullOrEmpty(num2)) sb.Append(" Int: " + num2); if (!string.IsNullOrEmpty(sca)) sb.Append(" Scala: " + sca); u.indiri = sb.ToString(); u.localita = i.imlocali; u.cap = i.imcodcap; u.comune = i.imcomune; u.provin = i.improvin; return u; } /// Ricerca Impianti return:ActionResult [HttpGet("ricerca_impianti")] public async Task>> ricerca_impianti(string token, string? codimp, string? indirizzo_imp) { try { if (string.IsNullOrEmpty(codimp) && string.IsNullOrEmpty(indirizzo_imp)) { Impianto_out e = new Impianto_out(); e.err_title = "Errore in ricerca impianti."; e.err_detail = "Immettere almeno un parametro di ricerca."; e.err_status_code = StatiRisposta.OperazioneNonAmmessa; return StatusCode(StatusCodes.Status400BadRequest, e); } else { string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); _impianto = getImpiantiByTenant(ten); var l = await _impianto.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten)).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(); List lis = new List(); foreach (Impianto i in l) { Impianto_out o = new Impianto_out(); o = fillImpianto_out(i); lis.Add(o); } return StatusCode(StatusCodes.Status200OK, lis); } } catch(Exception ex) { Impianto_out e = new Impianto_out(); e.err_title = "Errore in ricerca impianti."; e.err_detail = ex.Message; e.err_status_code = StatiRisposta.ErroreInterno; return StatusCode(StatusCodes.Status428PreconditionRequired, e); } } /// Storico interventi return:ActionResult [HttpGet("storico_interventi")] public async Task>> storico_interventi(string token, string? codimp, bool rapp_tec=true) { Sto_Rapp_out e = new Sto_Rapp_out(); try { string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); string tecnico = getClaimValueByToken(token, "tccodice"); _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(); if (!string.IsNullOrEmpty(codimp)) { l = l.Where(t => t.codice_impianto != null && t.codice_impianto.Trim().Equals(codimp.Trim())).ToList(); } if(rapp_tec) { l = l.Where(t => t.tccodice != null && t.tccodice.Equals(tecnico)).ToList(); } List lis = new List(); if(l!=null && l.Count()>0) { foreach (Sto_Rapp s in l) { Sto_Rapp_out o = new Sto_Rapp_out(); o = fillSto_Rapp_Out(s, ten); lis.Add(o); } } else { //Dictionary dic = new Dictionary(); //dic.Add("", "Nessuno storico interventi per questo impianto"); //e.dettaglio = dic; e.note_esito = "Nessuno storico interventi per questo impianto"; lis.Add(e); } return StatusCode(StatusCodes.Status200OK, lis); } catch (Exception ex) { e.err_title = "Errore in storico interventi"; e.err_detail = ex.Message; e.err_status_code = StatiRisposta.ErroreInterno; return StatusCode(StatusCodes.Status500InternalServerError, e); } } #endregion #region Anagrafica clienti /// Anagrafica return:ActionResult [HttpGet("anagrafica")] public async Task> anagrafica(string token, string codcli) { try { string ten = getClaimValueByToken(token, "tenant"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } Anag aa = new Anag(); _clienti = getClientiByTenant(ten); var an = await _clienti.Where(t => t.ancodice == codcli).ToListAsync(); aa = an.First(); return StatusCode(StatusCodes.Status200OK, aa); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } } #endregion #region tabelle di dominio /// Tabelle di dominio: causali pagamenti, causali rapportino, tipi esito, tipi intervento return:ActionResult [HttpGet("tabelle_dominio")] public async Task> tabelle_dominio(string token) { try { TabelleDominio td = new TabelleDominio(); string ten = getClaimValueByToken(token, "tenant"); if(!ten.Equals(Clienti.VT)) { _pagam = getPagamentiByTenant(ten); var a = await _pagam.ToListAsync(); td.cau_pag = a; _cau_rapp = getCausaliRappByTenant(ten); var b = await _cau_rapp.ToListAsync(); td.cau_rapp = b; } List e = new List(); ComboItem c1 = new ComboItem(); c1.chiave = "P"; c1.valore = "Positivo"; e.Add(c1); ComboItem c2 = new ComboItem(); c2.chiave = "N"; c2.valore = "Negativo"; e.Add(c2); td.esito = e; List si = new List(); ComboItem s1 = new ComboItem(); s1.chiave = "1"; s1.valore = "In Funzione"; si.Add(s1); ComboItem s2 = new ComboItem(); s2.chiave = "0"; s2.valore = "Fermo"; si.Add(s2); td.statoImpianto = si; return StatusCode(StatusCodes.Status200OK, td); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } } #endregion #region timbrature /// private async Task fillTimbratura(Timbratura i, string token) { Timbratura r = new Timbratura(); string ten = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); if(ten.Equals(Clienti.VT)) { string ten2 = getClaimValueByToken(token, "tenant2"); ten = ten2; } int id=await getNewId(token); r.azienda = ten; r.id = id; r.ora_ini = i.ora_ini; r.min_ini = i.min_ini; r.ora_fin = i.ora_fin; r.min_fin = i.min_fin; r.ore_viaggio = i.ore_viaggio; r.data_timbratura = i.data_timbratura; //if (ten.Equals(Clienti.Marrocco) && !string.IsNullOrEmpty(i.commessa)) //{ // i.commessa = i.commessa.Substring(0, 15); //} r.commessa = i.commessa; r.tecnico = tecnico; TimeSpan ts = new TimeSpan(i.ora_ini, i.min_ini, 0); DateTime da = Convert.ToDateTime( r.data_timbratura) + ts; ts = new TimeSpan(i.ora_fin, i.min_fin, 0); DateTime a = Convert.ToDateTime(r.data_timbratura) + ts; ts = (a - da); if(ts.Minutes>0) { decimal decimali = Decimal.Divide(ts.Minutes, 100); decimal totale = Convert.ToDecimal(ts.Hours) + decimali; r.tot_ore = totale; } else { r.tot_ore = ts.Hours; } r.giorno =(int) Convert.ToDateTime(i.data_timbratura).DayOfWeek; r.cpccchk = getCpccchk(10); r.note = i.note; return r; } private Timbratura_out fillTimbraturaOut(Timbratura i, string token, int id) { Timbratura_out r = new Timbratura_out(); r.azienda = i.azienda; r.id = id; r.ora_ini = i.ora_ini; r.min_ini = i.min_ini; r.ora_fin = i.ora_fin; r.min_fin = i.min_fin; r.ore_viaggio = i.ore_viaggio; r.data_timbratura = i.data_timbratura; r.commessa = i.commessa; r.tecnico = i.tecnico; r.note = i.note; return r; } private CommesseAdHoc_out formattaCommessa(Commessa commessa) { StringBuilder sb = new StringBuilder(); string _item = string.Empty; CommesseAdHoc_out co = new CommesseAdHoc_out(); if (!string.IsNullOrEmpty(commessa.imcodimp)) { sb.AppendLine("Imp: " + commessa.imcodimp); string via = !string.IsNullOrEmpty(commessa.imindiri1) ? commessa.imindiri1.Trim() : string.Empty; string indiri = !string.IsNullOrEmpty(commessa.imindiri2) ? commessa.imindiri2.Trim() : string.Empty; string num = string.Empty; if (commessa.imindiri3 != null && commessa.imindiri3.Value > 0) { num = commessa.imindiri3.ToString().Trim(); } string num2 = !string.IsNullOrEmpty(commessa.imindiri4) ? commessa.imindiri4.Trim() : string.Empty; string sca = !string.IsNullOrEmpty(commessa.imindiri5) ? commessa.imindiri5.Trim() : string.Empty; string appo = string.Empty; appo = via + indiri + num + num2 + sca; if (!string.IsNullOrEmpty(via)) appo = appo + via; if (!string.IsNullOrEmpty(indiri)) appo = appo + " " + indiri; if (!string.IsNullOrEmpty(num)) appo = appo + " ," + num; if (!string.IsNullOrEmpty(num2)) appo = appo + " Int: " + num2; if (!string.IsNullOrEmpty(sca)) appo = appo + " Scala: " + sca; sb.AppendLine(appo); co.itemList = sb.ToString(); } sb = null; //copio anche gli altri campi della commessa co.andescri = commessa.andescri; co.imindiri1 = commessa.imindiri1; co.imindiri2 = commessa.imindiri2; co.imindiri3 = commessa.imindiri3; co.imindiri4 = commessa.imindiri4; co.imindiri5 = commessa.imindiri5; co.imcodcap = commessa.imcodcap; co.imcodimp = commessa.imcodimp; co.imlocali = commessa.imlocali; co.improvin = commessa.improvin; co.lacodcli = commessa.lacodcli; co.lacodcom = commessa.lacodcom; co.ladatchi = commessa.ladatchi; co.ladeslav = commessa.ladeslav; co.laserial = commessa.laserial; co.latipcli = commessa.latipcli; return co; } private CommesseAdHoc_out formattaCommessaVT(CommesseVT commessa) { StringBuilder sb = new StringBuilder(); string _item = string.Empty; CommesseAdHoc_out co = new CommesseAdHoc_out(); if (!string.IsNullOrEmpty(commessa.imcodimp)) { sb.AppendLine("Imp: " + commessa.imcodimp); string via = !string.IsNullOrEmpty(commessa.imindiri1) ? commessa.imindiri1.Trim() : string.Empty; string indiri = !string.IsNullOrEmpty(commessa.imindiri2) ? commessa.imindiri2.Trim() : string.Empty; string num = string.Empty; if (commessa.imindiri3 != null && commessa.imindiri3.Value > 0) { num = commessa.imindiri3.ToString().Trim(); } string num2 = !string.IsNullOrEmpty(commessa.imindiri4) ? commessa.imindiri4.Trim() : string.Empty; string sca = !string.IsNullOrEmpty(commessa.imindiri5) ? commessa.imindiri5.Trim() : string.Empty; string appo = string.Empty; appo = via + indiri + num + num2 + sca; if (!string.IsNullOrEmpty(via)) appo = appo + via; if (!string.IsNullOrEmpty(indiri)) appo = appo + " " + indiri; if (!string.IsNullOrEmpty(num)) appo = appo + " ," + num; if (!string.IsNullOrEmpty(num2)) appo = appo + " Int: " + num2; if (!string.IsNullOrEmpty(sca)) appo = appo + " Scala: " + sca; sb.AppendLine(appo); co.itemList = sb.ToString(); } sb = null; //copio anche gli altri campi della commessa co.andescri = commessa.andescri; co.imindiri1 = commessa.imindiri1; co.imindiri2 = commessa.imindiri2; co.imindiri3 = commessa.imindiri3; co.imindiri4 = commessa.imindiri4; co.imindiri5 = commessa.imindiri5; co.imcodcap = commessa.imcodcap; co.imcodimp = commessa.imcodimp; co.imlocali = commessa.imlocali; co.improvin = commessa.improvin; co.lacodcli = commessa.lacodcli; co.lacodcom = commessa.lacodcom; co.ladatchi = commessa.ladatchi; co.ladeslav = commessa.ladeslav; co.laserial = commessa.laserial; co.latipcli = commessa.latipcli; return co; } /// Commesse return:ActionResult IEnumerable Commessa [HttpGet("timbrature/commesse")] public async Task>> commesse(string token) { try { string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); string tecnico = getClaimValueByToken(token, "tccodice"); List ll = new List(); _comm = getCommesseByTenant(ten); var l = await _comm.OrderByDescending(t => t.ladatchi).ToListAsync(); foreach (Commessa c in l) { CommesseAdHoc_out co = new CommesseAdHoc_out(); co = formattaCommessa(c); ll.Add(co); } return StatusCode(StatusCodes.Status200OK, ll); } catch (Exception ex) { CommesseAdHoc_out err = new CommesseAdHoc_out(); err.err_title = "Errore in timbrature/commesse"; err.err_detail = ex.Message; err.err_status_code = "500"; return StatusCode(StatusCodes.Status500InternalServerError, err); } } /// Salva la timbratuta in tabella Timbrature return:ActionResult Timbratura_out [HttpPost] [Route("timbrature/salva")] public async Task> timbrature_salva([FromBody] Timbratura model, string token) { Timbratura_out tOut = new Timbratura_out(); try { string ten = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } if (await checkTimbraturaPresente(ten, model) == 0) { Timbratura t = await fillTimbratura(model, token); /* switch (ten) { case Clienti.Sicilia: using (var transaction = _Sicilia_timbr.Database.BeginTransaction()) { await _Sicilia_timbr.Timbr.AddAsync(t); await _Sicilia_timbr.SaveChangesAsync(); transaction.Commit(); } break; case Clienti.Sinergo: using (var transaction2 = _Sinergo_timbr.Database.BeginTransaction()) { await _Sinergo_timbr.Timbr.AddAsync(t); await _Sinergo_timbr.SaveChangesAsync(); transaction2.Commit(); } break; case Clienti.Siet: using (var transactionSiet = _Siet_timbr.Database.BeginTransaction()) { await _Siet_timbr.Timbr.AddAsync(t); await _Siet_timbr.SaveChangesAsync(); transactionSiet.Commit(); } break; case Clienti.PMS: using (var transactionPMS = _PMS_timbr.Database.BeginTransaction()) { await _PMS_timbr.Timbr.AddAsync(t); await _PMS_timbr.SaveChangesAsync(); transactionPMS.Commit(); } break; case Clienti.LW: using (var transactionlw = _LW_timbr.Database.BeginTransaction()) { await _LW_timbr.Timbr.AddAsync(t); await _LW_timbr.SaveChangesAsync(); transactionlw.Commit(); } break; case Clienti.Tedesco: using (var transactionTedes = _Tedes_timbr.Database.BeginTransaction()) { await _Tedes_timbr.Timbr.AddAsync(t); await _Tedes_timbr.SaveChangesAsync(); transactionTedes.Commit(); } break; case Clienti.VT: using (var transactionVT = _VT_timbr.Database.BeginTransaction()) { await _VT_timbr.Timbr.AddAsync(t); await _VT_timbr.SaveChangesAsync(); transactionVT.Commit(); } break; case Clienti.Syscom : using (var transactionsys = _Sys_timbr.Database.BeginTransaction()) { await _Sys_timbr.Timbr.AddAsync(t); await _Sys_timbr.SaveChangesAsync(); transactionsys.Commit(); } break; case Clienti.Marrocco: using (var transactionMarro = _Marro_timbr.Database.BeginTransaction()) { await _Marro_timbr.Timbr.AddAsync(t); await _Marro_timbr.SaveChangesAsync(); transactionMarro.Commit(); } break; default: break; } */ tOut = fillTimbraturaOut(model, ten, t.id); tOut.err_status_code = StatiRisposta.Ok; return StatusCode(StatusCodes.Status200OK, tOut); } else { return StatusCode(StatusCodes.Status500InternalServerError, "timbratura presente."); } } catch (Exception ex) { string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; tOut.err_title = ex.Message; tOut.err_detail = errmsg; tOut.err_status_code = StatiRisposta.ErroreInterno; return StatusCode(StatusCodes.Status500InternalServerError, tOut); } //return tOut; } #endregion #region storico impianto private Sto_Imp_out fillSto_Imp_Out(Sto_Imp i, string tenant) { Sto_Imp_out o = new Sto_Imp_out(); o.tipo_movimento = !string.IsNullOrEmpty(i.tipo_movimento) ? i.tipo_movimento.Trim() : string.Empty; ; o.articolo = !string.IsNullOrEmpty(i.articolo) ? i.articolo.Trim() : string.Empty; o.data_rapportino = i.data_rapportino; Dictionary dic = new Dictionary(); switch (tenant) { case Clienti.Marrocco: break; case Clienti.Ferrari: break; case Clienti.Sicilia: #region sicilia if (!string.IsNullOrEmpty(i.codimp) && !i.codimp.Trim().Equals(string.Empty)) { dic.Add("Codice Impianto", i.codimp.Trim()); } if (!string.IsNullOrEmpty(i.desc_impianto) && !i.desc_impianto.Trim().Equals(string.Empty)) { dic.Add("Descrizione impianto", i.desc_impianto.Trim()); } if (!string.IsNullOrEmpty(i.indirizzo) && !i.indirizzo.Trim().Equals(string.Empty)) { StringBuilder sb = new StringBuilder(); string ind = string.Empty; string via = !string.IsNullOrEmpty(i.indirizzo_tipo) ? i.indirizzo_tipo.Trim() : string.Empty; string indiri = !string.IsNullOrEmpty(i.indirizzo) ? i.indirizzo.Trim() : string.Empty; string num = string.Empty; if (i.indirizzo_num != null && i.indirizzo_num.Value > 0) { num = i.indirizzo_num.ToString().Trim(); } string num2 = !string.IsNullOrEmpty(i.indirizzo_num2) ? i.indirizzo_num2.Trim() : string.Empty; string sca = !string.IsNullOrEmpty(i.indirizzo_scala) ? i.indirizzo_scala.Trim() : string.Empty; //ind = string.Concat("{0} {1} num {2} interno {3} scala {4}",via,indiri,num,num2,sca); if (!string.IsNullOrEmpty(via)) sb.Append(via); if (!string.IsNullOrEmpty(indiri)) sb.Append(" " + indiri); if (!string.IsNullOrEmpty(num)) sb.Append(" ," + num); if (!string.IsNullOrEmpty(num2)) sb.Append(" Int: " + num2); if (!string.IsNullOrEmpty(sca)) sb.Append(" Scala: " + sca); dic.Add("Indirizzo imp", sb.ToString()); } if (!string.IsNullOrEmpty(i.codice_tecnico) && !i.codice_tecnico.Trim().Equals(string.Empty)) { dic.Add("Codice tecnico", i.codice_tecnico.Trim()); } if (!string.IsNullOrEmpty(i.desc_tecnico) && !i.desc_tecnico.Trim().Equals(string.Empty)) { dic.Add("Descrizione tecnico", i.desc_tecnico.Trim()); } if (!string.IsNullOrEmpty(i.seriale_rapportino) && !i.seriale_rapportino.Trim().Equals(string.Empty)) { dic.Add("Seriale rapportino", i.seriale_rapportino.Trim()); } if (i.data_rapportino != null) { dic.Add("Data rapportino", i.data_rapportino.Value.ToString()); } if (!string.IsNullOrEmpty(i.magazzino) && !i.magazzino.Trim().Equals(string.Empty)) { dic.Add("Codice magazzino", i.magazzino.Trim()); } if (!string.IsNullOrEmpty(i.tipo_movimento) && !i.tipo_movimento.Trim().Equals(string.Empty)) { string st = string.Empty; switch (i.tipo_movimento) { case "E": st = "Eliminato da impianto"; break; case "A": st = "Aggiunto a impianto"; break; case "S": st = "Sostituito a impianto"; break; } dic.Add("Operazione", st); } if (!string.IsNullOrEmpty(i.articolo) && !i.articolo.Trim().Equals(string.Empty)) { dic.Add("Codice articolo", i.articolo.Trim()); } if (!string.IsNullOrEmpty(i.desc_art) && !i.desc_art.Trim().Equals(string.Empty)) { dic.Add("Descrizione articolo", i.desc_art.Trim()); } if (!string.IsNullOrEmpty(i.codlotto) && !i.codlotto.Trim().Equals(string.Empty)) { dic.Add("Codice lotto", i.codlotto.Trim()); } if (!string.IsNullOrEmpty(i.matricola) && !i.matricola.Trim().Equals(string.Empty)) { dic.Add("Matricola", i.matricola.Trim()); } if (i.quantita != null && i.quantita.Value > 0) { dic.Add("Qta", i.quantita.Value.ToString()); } if (i.prezzo != null && i.prezzo.Value > 0) { dic.Add("Prezzo", i.prezzo.Value.ToString()); } if (!string.IsNullOrEmpty(i.note) && !i.note.Trim().Equals(string.Empty)) { dic.Add("Note intervento", i.note.Trim()); } if (!string.IsNullOrEmpty(i.azienda_impianto) && !i.azienda_impianto.Trim().Equals(string.Empty)) { dic.Add("Azienda", i.azienda_impianto.Trim()); } #endregion break; case Clienti.Discovery: break; case Clienti.Sarom: break; default: break; } o.dettaglio = dic; return o; } /// Storico rapportini tecnico return:ActionResult di Sto_Imp_out [HttpGet("storico_impianto")] public async Task>> storico_impianto(string token, string? codimp /*,bool rapp_tec = true*/) { Sto_Imp_out e = new Sto_Imp_out(); try { string ten = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); _sto_imp = getStoricoImpiantoByTenant(ten); var l = await _sto_imp.Where(t => t.azienda_impianto != null && t.azienda_impianto.Equals(ten)).ToListAsync(); if (!string.IsNullOrEmpty(codimp)) { l = l.Where(t => t.codimp != null && t.codimp.Equals(codimp)).ToList(); } List lis = new List(); if(l!=null && l.Count()>0) { foreach (Sto_Imp s in l) { Sto_Imp_out o = new Sto_Imp_out(); o = fillSto_Imp_Out(s, ten); lis.Add(o); } } else { e.articolo = "Nessun dato storico per questo impianto"; lis.Add(e); } return StatusCode(StatusCodes.Status200OK, lis); } catch (Exception ex) { e.err_title = "Errore in Storico impianto"; e.err_detail = ex.Message; e.err_status_code = StatiRisposta.ErroreInterno; return StatusCode(StatusCodes.Status500InternalServerError, e); } } #endregion #region Rapportini da commessa public string _tablecode; public string _warncode; /// Ricerca Commessa return:ActionResult [HttpGet("ricerca_commessa_impianto")] public async Task>> ricerca_commessa_impianto(int tipo,string token, string? codimp, string? indirizzo_imp, string? cli, string? comm) { Output_Ricerca uscita = new Output_Ricerca(); //tipo 1: ricerca commessa - tipo2: ricerca impianto var st = StatusCodes.Status200OK; List lis = new List(); switch (tipo) { case 1: #region ricerca commessa try { //if (string.IsNullOrEmpty(codimp) && string.IsNullOrEmpty(indirizzo_imp) && string.IsNullOrEmpty(cli) && string.IsNullOrEmpty(comm)) //{ // uscita.err_title = "Errore in ricerca Commesse/Impianto."; // uscita.err_detail = "Immettere almeno un parametro di ricerca."; // uscita.err_status_code = StatiRisposta.OperazioneNonAmmessa; // //return StatusCode(StatusCodes.Status400BadRequest, uscita); // st = StatusCodes.Status400BadRequest; // lis.Add(uscita); //} //else //{ string ten = getClaimValueByToken(token, "tenant"); //string ten = getClaimValueByToken(token, "tenant"); _comm = getCommesseByTenant(ten); var l = await _comm.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 (Commessa i in l) { Output_Ricerca o = new Output_Ricerca(); o = fillOutputRicerca(i); lis.Add(o); } st = StatusCodes.Status200OK; } catch (Exception ex) { uscita.err_title = "Errore in ricerca_impianti_chiamata."; uscita.err_detail = ex.Message; uscita.err_status_code = StatiRisposta.ErroreInterno; //return StatusCode(StatusCodes.Status500InternalServerError, uscita); st = StatusCodes.Status500InternalServerError; lis.Add(uscita); } #endregion break; case 2: #region ricerca Impianto try { //if (string.IsNullOrEmpty(codimp) && string.IsNullOrEmpty(indirizzo_imp)) //{ // uscita.err_title = "Errore in ricerca_commessa_impianto."; // uscita.err_detail = "Immettere almeno un parametro di ricerca."; // uscita.err_status_code = StatiRisposta.OperazioneNonAmmessa; // //return StatusCode(StatusCodes.Status400BadRequest, uscita); // st = StatusCodes.Status400BadRequest; // lis.Add(uscita); //} //else //{ string ten = getClaimValueByToken(token, "tenant"); _impianto = getImpiantiByTenant(ten); var l = await _impianto.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten)).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; } catch (Exception ex) { Impianto_out e = new Impianto_out(); e.err_title = "Errore in ricerca impianti."; e.err_detail = ex.Message; e.err_status_code = StatiRisposta.ErroreInterno; //return StatusCode(StatusCodes.Status428PreconditionRequired, e); st = StatusCodes.Status500InternalServerError; lis.Add(uscita); } #endregion break; default: uscita.err_title = "Errore in ricerca_commessa_impianto."; uscita.err_detail = "Tipo Ricerca non corretto"; uscita.err_status_code = StatiRisposta.OperazioneNonAmmessa; //return StatusCode(StatusCodes.Status400BadRequest, uscita); st = StatusCodes.Status400BadRequest; lis.Add(uscita); break; } return StatusCode(st, lis); } /// Ricerca Commessa NUOVAreturn:ActionResult [HttpGet("ricerca_commessa_impianto2")] public async Task>> ricerca_commessa_impianto2(int tipo, string token, string? codimp, string? indirizzo_imp, string? cli, string? comm) { Output_Ricerca uscita = new Output_Ricerca(); string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); string tecnico = getClaimValueByToken(token, "tccodice"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } //Radio Commessa, tipo 1 , campi cli e comm //Radio Cliente, tipo 2, campi cli //Radio Impianto, tipo 3, campi codimp e indirizzoImp var st = StatusCodes.Status200OK; List lis = new List(); switch (tipo) { case 1: #region ricerca commessa try { //string ten = getClaimValueByToken(token, "tenant"); _comm = getCommesseByTenant(ten); var l = await _comm.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 (Commessa i in l) { Output_Ricerca o = new Output_Ricerca(); o = fillOutputRicerca(i); lis.Add(o); } st = StatusCodes.Status200OK; } catch (Exception ex) { uscita.err_title = "Errore in ricerca_commessa_impianto2."; uscita.err_detail = ex.Message; uscita.err_status_code = StatiRisposta.ErroreInterno; //return StatusCode(StatusCodes.Status500InternalServerError, uscita); st = StatusCodes.Status500InternalServerError; lis.Add(uscita); } #endregion break; case 3: #region ricerca IMPIANTO //Radio Cliente, tipo 2, campi codimp e indirizzoImp try { _impianto = getImpiantiByTenant(ten); var l = await _impianto.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten)).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; } catch (Exception ex) { Impianto_out e = new Impianto_out(); e.err_title = "Errore in ricerca impianti2."; e.err_detail = ex.Message; e.err_status_code = StatiRisposta.ErroreInterno; //return StatusCode(StatusCodes.Status428PreconditionRequired, e); st = StatusCodes.Status500InternalServerError; lis.Add(uscita); } #endregion break; case 2: #region ricerca CLIENTE try { //Radio Cliente, tipo 2, campi cli _impianto = getImpiantiByTenant(ten); var l = await _impianto.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten)).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; } catch (Exception ex) { uscita.err_title = "Errore in ricerca impianti2."; uscita.err_detail = ex.Message; uscita.err_status_code = StatiRisposta.ErroreInterno; st = StatusCodes.Status500InternalServerError; lis.Add(uscita); } #endregion break; default: uscita.err_title = "Errore in ricerca_commessa_impianto2."; uscita.err_detail = "Tipo Ricerca non corretto"; uscita.err_status_code = StatiRisposta.OperazioneNonAmmessa; st = StatusCodes.Status400BadRequest; lis.Add(uscita); break; } return StatusCode(st, lis); } /// Salva la timbratuta in tabella Timbrature return:ActionResult Timbratura_out [HttpPost] [Route("chiamata/inserisci")] public async Task> Chiamata_Insert(string token, string codimp, string? codice_commessa) { Output_Chiamate tOut = new Output_Chiamate(); tOut.uscita = new Chiamate_out(); Input i = new Input(); try { string ten = getClaimValueByToken(token, "tenant"); string tecnico = getClaimValueByToken(token, "tccodice"); string ten2 = getClaimValueByToken(token, "tenant2"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } Chiamate_out o = new Chiamate_out(); Prog cpwarnNumChiamata=new Prog(); Prog cpwarnSeriale = new Prog(); Prog2 cpwarnNumChiamataDecimal = new Prog2(); Prog2 cpwarnSerialeDecimal = new Prog2(); string serialeChiamata = string.Empty; string progChiamata = string.Empty; string tablecodeProg = string.Empty; string warncodeProg = string.Empty; string tablecodeSer = string.Empty; string warncodeSer = string.Empty; decimal? serialeLetto = 0; decimal? progressivoLetto = 0; string esercizio = Convert.ToString(DateTime.Today.Year); //lettura seriali e progressivi cpwarnNumChiamataDecimal = await leggiCpwarnProgDecimal(ten, "prog\\NUMCHI\\", esercizio); progChiamata = Convert.ToString(cpwarnNumChiamataDecimal.autonum); tablecodeProg = cpwarnNumChiamataDecimal.tablecode; warncodeProg = cpwarnNumChiamataDecimal.warncode; progressivoLetto = cpwarnNumChiamataDecimal.autonum; cpwarnSerialeDecimal = await leggiCpwarnSerialeDecimal(ten, "prog\\SERCHI\\"); serialeChiamata = Convert.ToString(cpwarnSerialeDecimal.autonum); tablecodeSer = cpwarnSerialeDecimal.tablecode; warncodeSer = cpwarnSerialeDecimal.warncode; serialeLetto = cpwarnSerialeDecimal.autonum; //inserisco //2024-04-23: codice_commessa posto a nullable (quando inserisco una chiamata selezionando solo l'impianto) //gestisco la ricerca del seriale string serial_comm = string.Empty; if (!string.IsNullOrEmpty(codice_commessa)) { serial_comm = await leggiSerialeByCodCommessa(ten, codice_commessa); } tOut.uscita = await inserimentoChiamata2(tenConf, tecnico, codimp, serialeChiamata, progChiamata, serial_comm, ten, tenConf); //aggiornamento seriali e progressivi string serialeUpdate = string.Empty; float numeroUpdate = 0; serialeUpdate = tOut.uscita.chserial; serialeLetto = serialeLetto + 1; tOut.prog_Out = await aggiornaprogressivoDecimal(ten, serialeLetto, tablecodeSer, warncodeSer); progressivoLetto = progressivoLetto + 1; tOut.prog_Out = await aggiornaprogressivoDecimal(ten, progressivoLetto, tablecodeProg, warncodeProg); i.codice_impianto = tOut.uscita.chcodimp; i.seriale_chiamata = tOut.uscita.chserial; i.ora_ini_rapportino = Convert.ToString(tOut.uscita.chora); i.min_ini_rapportino = Convert.ToString(tOut.uscita.chmin); tOut.chiamate_Out = await presaInCarico(i, token); _chiamate = getChiamateByTenant(ten); var callNew = await _chiamate.Where( t => t.chserial.Equals(serialeUpdate) ).FirstAsync(); o = fillChiamateOut(callNew, ten); tOut.err_status_code = StatiRisposta.Ok; return StatusCode(StatusCodes.Status200OK, o); } catch (Exception ex) { string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; tOut.uscita.err_title = ex.Message; tOut.uscita.err_detail = errmsg; tOut.uscita.err_status_code = StatiRisposta.ErroreInterno; return StatusCode(StatusCodes.Status500InternalServerError, tOut.uscita); } } private Output_Ricerca fillOutputRicerca(Commessa i) { Output_Ricerca r = new Output_Ricerca(); r.codice_commessa = i.lacodcom; r.desc_commessa = i.lacodcom; r.tipo_cliente_comm = i.latipcli; r.cliente_comm = i.lacodcli; r.dt_fine_validita = i.ladatchi; r.codice_impianto = i.imcodimp; r.imindiri1 = i.imindiri1; r.imindiri2 = i.imindiri2; r.imindiri3 = i.imindiri3; r.imindiri4 = i.imindiri4; r.imindiri5 = i.imindiri5; r.desc_cliente_comm = i.andescri; r.cap_impianto = i.imcodcap; r.provincia_impianto = i.improvin; StringBuilder sb = new StringBuilder(); string commessa = !string.IsNullOrEmpty(i.lacodcom) ? i.lacodcom.Trim() : string.Empty; if(!string.IsNullOrEmpty(i.ladeslav)) { commessa = commessa + " - " +i.ladeslav.Trim(); } sb.AppendLine("Comm: " + commessa); if (!string.IsNullOrEmpty(i.imcodimp)) { sb.AppendLine("Imp: " + i.imcodimp); } if (!string.IsNullOrEmpty(i.andescri)) { string appoCli = i.andescri; if(appoCli.Length>25) { appoCli = appoCli.Substring(0, 25); } sb.AppendLine("Cli " + appoCli); } r.itemList = sb.ToString(); sb.Clear(); return r; } private Output_Ricerca fillOutputRicercaByImpianto(Impianto i) { Output_Ricerca r = new Output_Ricerca(); r.codice_impianto = i.imcodimp; r.descrizione_impianto = i.imdescri; r.imindiri1 = i.imindiri1; r.imindiri2 = i.imindiri2; r.imindiri3 = i.imindiri3; r.imindiri4 = i.imindiri4; r.imindiri5 = i.imindiri5; r.cap_impianto = i.imcodcap; r.provincia_impianto = i.improvin; StringBuilder sb = new StringBuilder(); sb.AppendLine("Imp: " + i.imcodimp); if (!string.IsNullOrEmpty(i.imdescri)) { sb.AppendLine( i.imdescri); } string via = !string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() : string.Empty; string indiri = !string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() : string.Empty; string num = string.Empty; if (i.imindiri3 != null && i.imindiri3.Value > 0) { num = i.imindiri3.ToString().Trim(); } string num2 = !string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() : string.Empty; string sca = !string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() : string.Empty; string appo = string.Empty; if (!string.IsNullOrEmpty(via)) appo=appo+via; if (!string.IsNullOrEmpty(indiri)) appo = appo + " "+indiri; if (!string.IsNullOrEmpty(num)) appo = appo + " ," + num; if (!string.IsNullOrEmpty(num2)) appo = appo + " Int: " + num2; if (!string.IsNullOrEmpty(sca)) appo = appo + " Scala: " + sca; sb.AppendLine(appo); if (!string.IsNullOrEmpty( i.imrefref)) { sb.AppendLine(i.imrefref); } r.itemList = sb.ToString(); sb.Clear(); return r; } private ChiamateTable fillChiamateTableInput(ChiamateTable i, string codimp, string tecnico, string tenant, string serialeLetto, string progLetto, string seriale_commessa) { DateTime adesso = DateTime.Now; ChiamateTable o = new ChiamateTable(); string codiceEsercizio = string.Empty; codiceEsercizio = Convert.ToString(adesso.Year); string nuovoSeriale = string.Empty; nuovoSeriale = getNuovoSerialeChiamata(serialeLetto); o.chcodazi = i.chcodazi; o.chserial = nuovoSeriale; //o.chtipo = i.chtipo; scrivo tipo A per distinguere le chiamate normali da quelle inserite da app o.chtipo = "X"; o.chcodese = codiceEsercizio; o.chnumero = Convert.ToDecimal(progLetto)+1; o.chdata = adesso.Date; o.chora = adesso.Hour; o.chmin = adesso.Minute; o.chopins = i.chopins; o.chopass = i.chopass; o.chopchi = i.chopchi; o.chcodimp = codimp; o.chaziimp = i.chaziimp; o.chtchiam = tecnico; o.chtmanut = i.chtmanut; o.chstato = "C"; o.chdtapp = adesso.Date; o.choraapi = adesso.Hour; o.chminapi = adesso.Minute; o.choraapf = adesso.Hour + 1; o.chminapf = adesso.Minute; //TODO il seriale della commessa lo devo avere e lo memorizzo qui //per ora prendo quello che scrivo sul template; poi quello che mi viene passato dalla ricerca o.chrifer = seriale_commessa; o.chtelef = i.chtelef; o.chcodseg = i.chcodseg; o.chstopi = i.chstopi; o.chnote = i.chnote; o.chdtass = adesso.Date; o.chorass = adesso.Hour; o.chminass = adesso.Minute; o.chdtchi = i.chdtchi; o.chorachi = i.chorachi; o.chminchi = i.chminchi; o.chdtlin = i.chdtlin; o.chorali = i.chorali; o.chminli = i.chminli; o.chdtlfi = i.chdtlfi; o.choralf = i.choralf; o.chminlf = i.chminlf; o.chvalfat = i.chvalfat; o.cpccchk = getCpccchk(10); o.chnrap1 = i.chnrap1; o.chsrap1 = i.chsrap1; o.chnrap2 = i.chnrap2; o.chsrap2 = i.chsrap2; o.chmodrac = i.chmodrac; o.chprgann = i.chprgann; o.chserchi = i.chserchi; o.chdesfat = i.chdesfat; o.chdessup = i.chdessup; o.chimpofa = i.chimpofa; o.chserdoc = i.chserdoc; o.chimpmat = i.chimpmat; o.chimpman = i.chimpman; o.chperman = i.chperman; o.chfleste = i.chfleste; o.chflstim = i.chflstim; o.chserext = i.chserext; o.chrifiutata = i.chrifiutata; //o.chincarico = i.chincarico; //o.chserweb = i.chserweb; //o.chinlinea = i.chinlinea; //o.chtelesan = i.chtelesan; return o; } private string getNuovoSerialeChiamata(string lastSerial) { //lunghezza 10 fissa string new_serial = string.Empty; int ser = int.Parse(lastSerial); ser++; new_serial = ser.ToString(); new_serial = new_serial.PadLeft(10, '0'); return new_serial; } private async Task inserimentoChiamata2(string ten, string tecnico, string codimp, string serLetto, string progLetto, string codice_commessa, string ten2,string tenConf) { Chiamate_out c = new Chiamate_out(); string serialeTemplate = string.Empty; ChiamateTable t = new ChiamateTable(); ChiamateTableTaskManager tm = new ChiamateTableTaskManager(); var tt = new List(); var ttTaskManager = new List(); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } if (!ten.Equals(ten2)) { ten = ten2; } _chiatable = getChiamateTableByTenant(ten); _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(); t = fillChiamateTableInput(tt.FirstOrDefault(), codimp, tecnico, ten, serLetto, progLetto, codice_commessa); _service.AddChiamateTableToDbAsync(ten, t); System.Threading.Thread.Sleep(1000); //scrittura /* switch (ten) { case Clienti.Marrocco: case Clienti.Gitoga: case Clienti.Lifta: //GITOGA e LIFTA sono comunque dentro il db di Marrocco t = fillChiamateTableInput(tt.FirstOrDefault(), codimp, tecnico, ten,serLetto,progLetto, codice_commessa); using (var tranMarro = _Marro_chiatable.Database.BeginTransaction()) { await _Marro_chiatable.Chi.AddAsync(t); await _Marro_chiatable.SaveChangesAsync(); tranMarro.Commit(); } break; case Clienti.Siet: t = fillChiamateTableInput(tt.FirstOrDefault(), codimp, tecnico, ten, serLetto, progLetto, codice_commessa); using (var tranSiet = _Siet_chiatable.Database.BeginTransaction()) { await _Siet_chiatable.Chi.AddAsync(t); await _Siet_chiatable.SaveChangesAsync(); tranSiet.Commit(); } break; case Clienti.Sicilia: t = fillChiamateTableInput(tt.FirstOrDefault(), codimp, tecnico, ten, serLetto, progLetto, codice_commessa); using (var tranSicilia = _Sicilia_chiatable.Database.BeginTransaction()) { await _Sicilia_chiatable.Chi.AddAsync(t); await _Sicilia_chiatable.SaveChangesAsync(); tranSicilia.Commit(); } break; case Clienti.PMS: t = fillChiamateTableInput(tt.FirstOrDefault(), codimp, tecnico, ten, serLetto, progLetto, codice_commessa); using (var tranPMS = _Pms_chiatable.Database.BeginTransaction()) { await _Pms_chiatable.Chi.AddAsync(t); await _Pms_chiatable.SaveChangesAsync(); tranPMS.Commit(); } break; case Clienti.VT: t = fillChiamateTableInput(tt.FirstOrDefault(), codimp, tecnico, ten, serLetto, progLetto, codice_commessa); using (var tranVT = _VT_chiatable.Database.BeginTransaction()) { await _VT_chiatable.Chi.AddAsync(t); await _VT_chiatable.SaveChangesAsync(); tranVT.Commit(); } break; case Clienti.Tedesco: t = fillChiamateTableInput(tt.FirstOrDefault(), codimp, tecnico, ten, serLetto, progLetto, codice_commessa); using (var tranTedes = _Tedes_chiatable.Database.BeginTransaction()) { await _Tedes_chiatable.Chi.AddAsync(t); await _Tedes_chiatable.SaveChangesAsync(); tranTedes.Commit(); } break; case Clienti.LW: tm = await fillChiamateTableTaskManagerInput(ttTaskManager.FirstOrDefault(), codimp, tecnico, ten, serLetto, progLetto, codice_commessa); using (var tranLW = _LW_chiatable.Database.BeginTransaction()) { await _LW_chiatable.Chi.AddAsync(tm); await _LW_chiatable.SaveChangesAsync(); tranLW.Commit(); } break; case Clienti.Syscom: tm = await fillChiamateTableTaskManagerInput(ttTaskManager.FirstOrDefault(), codimp, tecnico, ten, serLetto, progLetto, codice_commessa); using (var transys = _Sys_chiatable.Database.BeginTransaction()) { await _Sys_chiatable.Chi.AddAsync(tm); await _Sys_chiatable.SaveChangesAsync(); transys.Commit(); } break; default: break; } */ _chiamate = getChiamateByTenant(ten); var chiamata_newTM = _chiamate.Where(x => x.chserial.Equals(t.chserial)).FirstOrDefault(); c = fillChiamateOut(chiamata_newTM, ten); //switch (ten) //{ // case Clienti.LW: // case Clienti.Syscom: // break; // default: // var chiamata_new = _chiamate.Where(x => x.chserial.Equals(t.chserial)).FirstOrDefault(); // c = fillChiamateOut(chiamata_new, ten); // break; //} return c; } private async Task presaInCarico(Input model, string token) { string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } Chiamate_out calltec_out = new Chiamate_out(); Chiamate calltec = new Chiamate(); if (await checkChiamataPresa(ten, model.seriale_chiamata, TipoRapportino.PresaInCarico,ten2) == 0) { _confLette = await readConf(tenConf); string newSerial = string.Empty; newSerial = await getSeriale(token); Rapp_New r = await fillRappNewByInput(model, token, newSerial, _confLette); _service.AddRappNewToDbAsync(ten, r); System.Threading.Thread.Sleep(1000); //restituisco la chiamata calltec = await getChiamataBySerial(model.seriale_chiamata, token); calltec_out = fillChiamateOut(calltec, ten); calltec.err_status_code = StatiRisposta.Ok; } else { calltec_out.err_title = "Impossibile prendere in carico la chiamata"; calltec_out.err_detail = "Chiamata precendentemente presa in carico: " + model.seriale_chiamata; calltec_out.err_status_code = StatiRisposta.OperazioneNonAmmessa; } return calltec_out; } private async Task aggiornaprogressivoDecimal(string tenant, decimal? nuovoProg, string tablecode, string warncode) { Prog_out cso = new Prog_out(); string cpcccchk = getCpccchk(10); _cpwarns = getCpwarnByTenant(tenant); Prog2 entitasViewModel = _cpwarns.Where(p => p.tablecode.Equals(tablecode) && p.warncode.Equals(warncode)).FirstOrDefault(); entitasViewModel.autonum = nuovoProg; entitasViewModel.cpccchk = cpcccchk; _service.UpdCpwarnToDbAsync(tenant, entitasViewModel); System.Threading.Thread.Sleep(1000); //scrittura /* switch (tenant) { case Clienti.Sicilia: using (var transactionSicilia = _Sicilia_cpwarn.Database.BeginTransaction()) { _cpwarns = getCpwarnByTenant(tenant); Prog2 entitasViewModel = _cpwarns.Where(p => p.tablecode.Equals(tablecode) && p.warncode.Equals(warncode)).FirstOrDefault(); entitasViewModel.autonum = nuovoProg; entitasViewModel.cpccchk = cpcccchk; _Sicilia_cpwarn.Entry(entitasViewModel).State = EntityState.Modified; await _Sicilia_cpwarn.SaveChangesAsync(); transactionSicilia.Commit(); } break; case Clienti.PMS: using (var transactionPMS = _PMS_cpwarn.Database.BeginTransaction()) { _cpwarns = getCpwarnByTenant(tenant); Prog2 entitasViewModel = _cpwarns.Where(p => p.tablecode.Equals(tablecode) && p.warncode.Equals(warncode)).FirstOrDefault(); entitasViewModel.autonum = nuovoProg; entitasViewModel.cpccchk = cpcccchk; _PMS_cpwarn.Entry(entitasViewModel).State = EntityState.Modified; await _PMS_cpwarn.SaveChangesAsync(); transactionPMS.Commit(); } break; case Clienti.Syscom: using (var transactionSys = _Sys_cpwarn.Database.BeginTransaction()) { _cpwarns = getCpwarnByTenant(tenant); Prog2 entitasViewModel = _cpwarns.Where(p => p.tablecode.Equals(tablecode) && p.warncode.Equals(warncode)).FirstOrDefault(); entitasViewModel.autonum = nuovoProg; entitasViewModel.cpccchk = cpcccchk; _Sys_cpwarn.Entry(entitasViewModel).State = EntityState.Modified; await _Sys_cpwarn.SaveChangesAsync(); transactionSys.Commit(); } break; case Clienti.LW: using (var transactionLW = _LW_cpwarn.Database.BeginTransaction()) { _cpwarns = getCpwarnByTenant(tenant); Prog2 entitasViewModel = _cpwarns.Where(p => p.tablecode.Equals(tablecode) && p.warncode.Equals(warncode)).FirstOrDefault(); entitasViewModel.autonum = nuovoProg; entitasViewModel.cpccchk = cpcccchk; _LW_cpwarn.Entry(entitasViewModel).State = EntityState.Modified; await _LW_cpwarn.SaveChangesAsync(); transactionLW.Commit(); } break; default: break; } */ return cso; } private async Task leggiCpwarnProgDecimal(string tenant, string tablecode, string codiceEsercizio) { string _ten = tenant; var str = tenant; str = Regex.Replace(str, @" ", ""); //autorun decimal _cpwarns = getCpwarnByTenant(tenant); var cpwarn = await _cpwarns.Where(p => p.tablecode != null && p.tablecode.Contains(tablecode) && p.tablecode.Contains(codiceEsercizio) && p.tablecode.Contains(tenant.TrimEnd())).FirstAsync(); return cpwarn; } private async Task leggiCpwarnSerialeDecimal(string tenant, string tablecode) { //autorun decimal _cpwarns = getCpwarnByTenant(tenant); var cpwarn = await _cpwarns.Where(p => p.tablecode != null && p.tablecode.Contains(tablecode) && p.tablecode.Contains(tenant.TrimEnd())).FirstAsync(); return cpwarn; } private async Task leggiSerialeByCodCommessa(string tenant, string codice_commessa) { string serial = string.Empty; _comm = getCommesseByTenant(tenant); var ser = await _comm.Where(p => p.lacodcom!=null && p.lacodcom.Equals(codice_commessa)).FirstAsync(); serial = ser.laserial; return serial; } #endregion #region Logging /// Upload return:ActionResult [HttpPost] [Route("log/scrivi")] public async Task scriviLog( string token, string mex) { string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); string tenConf = getClaimValueByToken(token, "tenantConfigurazioni"); string tecnico = getClaimValueByToken(token, "tccodice"); if (string.IsNullOrEmpty(ten)) { ten = tenConf; } string dataLog = DateTime.Now.ToString(); try { string ver = Request.Headers["X-App-Version"]; var re = Request; var headers = re.Headers; StringValues x = default(StringValues); if (headers.ContainsKey("X-App-Version")) { var m = headers.TryGetValue("X-App-Version", out x); } Console.WriteLine(string.Format("*********** {0} LOG: tenant:{1} tenant2: {2} tenantConf: {3} tecnico:{4}", dataLog,ten, ten2, tenConf, tecnico)); if (!string.IsNullOrEmpty(ver)) { Console.WriteLine(string.Format("versione app: {0} ", ver)); } Console.WriteLine(string.Format("{0} ", mex)); Console.WriteLine(string.Format("*********** {0} FINE LOG: tenant:{1} tenant2: {2} tenantConf: {3} tecnico:{4}", dataLog,ten, ten2, tenConf, tecnico)); return Ok(new { count = 1, mex.Length }); } catch (Exception ex) { StringBuilder sb = new StringBuilder(); string errMsg = string.Empty; if (ex.Message != null) { sb.AppendLine(ex.Message); } if (ex.InnerException != null) { sb.AppendLine(ex.InnerException.Message); } errMsg = sb.ToString(); Console.WriteLine(string.Format("*********** {0} ERRORE LOG: tenant:{1} tenant2: {2} tenantConf: {3} tecnico:{4}", dataLog, ten, ten2, tenConf, tecnico)); Console.WriteLine(string.Format("{0} ", errMsg)); Console.WriteLine(string.Format("*********** {0} Fine ERRORE LOG: tenant:{1} tenant2: {2} tenantConf: {3} tecnico:{4}", dataLog, ten, ten2, tenConf, tecnico)); return StatusCode(StatusCodes.Status500InternalServerError, "Error: " + errMsg); } } #endregion } }