ApiManutenzioni/ApiPolo/Controllers/PoloController.cs
2025-02-14 10:11:24 +01:00

15616 lines
726 KiB
C#

using ApiPolo.Models;
using ApiPolo.Models.Discovery_dbcontext;
using ApiPolo.Models.Ferrari_dbcontext;
using ApiPolo.Models.Marrocco_dbcontext;
using ApiPolo.Models.Sicilia_dbcontext;
using ApiPolo.Models.Sarom_dbcontext;
using ApiPolo.Models.Gitoga_dbcontext;
using ApiPolo.Models.Lifta_dbcontext;
using ApiPolo.Models.Lift_web_dbcontext;
using ApiPolo.Models.Tedesco_dbcontext;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.IdentityModel.Tokens;
using Renci.SshNet;
using System.IdentityModel.Tokens.Jwt;
using System.Net;
using System.Security.Claims;
using System.Text;
using ApiPolo.Models.Sinergo_dbcontext;
using System.Collections.Generic;
using System.Drawing;
using FirebaseAdmin;
using FirebaseAdmin.Messaging;
using Google.Apis.Auth.OAuth2;
using Newtonsoft.Json;
using static ApiPolo.Controllers.PoloController;
using System.Net.Http.Headers;
using Newtonsoft.Json.Linq;
using System.Linq.Expressions;
using ApiPolo.Models.Siet_dbcontext;
using FirebaseAdmin.Auth.Multitenancy;
using System.Globalization;
using ApiPolo.Models.PMS_dbcontext;
using ApiPolo.Models.VT_dbcontext;
using System.Diagnostics.Contracts;
using Microsoft.EntityFrameworkCore.Storage;
using System.Diagnostics.Metrics;
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 ApiPolo.Models.Security_dbcontext;
using System.Data;
using System.Linq;
using Microsoft.Extensions.Primitives;
using System.Text.RegularExpressions;
using System.Runtime.CompilerServices;
namespace ApiPolo.Controllers
{
/// <summary>
/// Controller unico
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class PoloController : Controller
{
private string _token = string.Empty;
private readonly ConfigurazioniDbContext? _config;
private readonly IConfiguration? _configuration;
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 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>? _tecnici;
private DbSet<Rapp_New>? _rapp_new;
private DbSet<Chiamate>? _chiamate;
private DbSet<Chiusure>? _chiusure;
private DbSet<Manprog>? _manutprog;
private DbSet<Prese>? _prese;
private DbSet<Compo_Impia>? _compo;
private DbSet<Compo_Impia_Table>? _compoTable;
private DbSet<Saldiart>? _saldi;
private DbSet<Mag_New>? _mag;
private DbSet<Magazzini>? _magazzini;
private DbSet<Sto_Rapp>? _sto_rapp;
private DbSet<Anag>? _clienti;
private DbSet<Caus_Rapp>? _cau_rapp;
private DbSet<Pagam>? _pagam;
private DbSet<Commessa>? _comm;
private DbSet<Timbratura>? _timbr;
private DbSet<Sto_Imp>? _sto_imp;
private DbSet<AziendaRif>? _azi_coll;
private DbSet<Impianto>? _impianto;
private DbSet<Sostituzione>? _sostituzione;
private DbSet<ChiamateTable>? _chiatable;
private DbSet<ChiamateTableTaskManager>? _chiatableTaskManager;
private DbSet<ChiamataSeriale>? _chiamateser;
private DbSet<Prog>? _chiamateprogr;
private DbSet<Prog2>? _cpwarns;
private DbSet<ChiusureTable>? _chiuTable;
private DbSet<TecniciTable>? _tecTable;
private DbSet<AnagTable>? _anagTable;
private DbSet<ImpiantoTable>? _impiaTable;
private DbSet<AnagVT>? _clientiVT;
private DbSet<Progressivo>? _VT_prog;
private DbSet<Registrazione>? _VT_regi;
private DbSet<AziendaPres>? _VT_AziPresenti;
private DbSet<CommesseVT>? _VT_Commesse;
private DbSet<CommesseVT_Table>? _VT_CommesseTable;
private DbSet<DatiAzienda>? _VT_DatiAzi;
private DbSet<Rapportino>? _VT_rapport;
private DbSet<Buoni>? _VT_buo;
private DbSet<Rapp_New_View>? _rapp_new_view;
private DbSet<Articoli>? _articoliTable;
private DbSet<CommessaDesc>? _commDesc;
private DbSet<CommessaDescSiet>? _commDescSiet;
private DbSet<CC_CI>? _ccci;
private DbSet<CC_CIWiev>? _ccciView;
private Configurazioni? _confLette;
/// <summary>polocontroller</summary>
public PoloController(
IConfiguration configuration,
ConfigurazioniDbContext config,
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
#endregion
)
{
_configuration = configuration;
_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;
#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 Utility
private async Task<Configurazioni> readConf(string ten)
{
Configurazioni c=new Configurazioni();
List<Configurazioni> co =new List<Configurazioni>();
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;
}
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<Tecnici> getTecniciByTenant(string tenant)
{
DbSet<Tecnici>? _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<Rapp_New> getRappNewByTenant(string tenant)
{
DbSet<Rapp_New>? _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<Chiamate> getChiamateByTenant(string tenant)
{
DbSet<Chiamate>? _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<Chiusure> getChiusureByTenant(string tenant)
{
DbSet<Chiusure>? _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<Manprog> getManutenzioniByTenant(string tenant)
{
DbSet<Manprog>? _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<Prese> getPreseByTenant(string tenant)
{
DbSet<Prese>? _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<Sto_Rapp> getSto_RappByTenant(string tenant)
{
DbSet<Sto_Rapp>? _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<Anag> getClientiByTenant(string tenant)
{
DbSet<Anag>? _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<Caus_Rapp> getCausaliRappByTenant(string tenant)
{
DbSet<Caus_Rapp>? _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<Pagam> getPagamentiByTenant(string tenant)
{
DbSet<Pagam>? _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<Saldiart> getSaldiartByTenant(string tenant)
{
DbSet<Saldiart>? _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<Compo_Impia> getComponentiByTenant(string tenant)
{
DbSet<Compo_Impia>? _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<Compo_Impia_Table> getComponentiTableByTenant(string tenant)
{
DbSet<Compo_Impia_Table>? _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<Magazzini> getMagazziniByTenant(string tenant)
{
DbSet<Magazzini>? _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<Mag_New> getMag_NewByTenant(string tenant)
{
DbSet<Mag_New>? _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<Impianto> getImpiantiByTenant(string tenant)
{
DbSet<Impianto>? _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<Commessa> getCommesseByTenant(string tenant)
{
DbSet<Commessa>? _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<Timbratura> getTimbratureByTenant(string tenant)
{
DbSet<Timbratura>? _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<Sto_Imp> getStoricoImpiantoByTenant(string tenant)
{
DbSet<Sto_Imp>? _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<AziendaRif> getAziendeRifByTenant(string tenant)
{
DbSet<AziendaRif>? _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<Sostituzione> getSostituzioneByTenant(string tenant)
{
DbSet<Sostituzione>? _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<ChiamateTable> getChiamateTableByTenant(string tenant)
{
DbSet<ChiamateTable>? _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<ChiamateTableTaskManager> getChiamateTableTaskManagerByTenant(string tenant)
{
DbSet<ChiamateTableTaskManager>? _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<ChiamataSeriale> getChiamateSerialeByTenant(string tenant)
{
DbSet<ChiamataSeriale>? _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<Prog> getChiamateProgressiviByTenant(string tenant)
{
//gestione per cvpwarn con campo float
DbSet<Prog>? _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<Prog2> getCpwarnByTenant(string tenant)
{
//gestione per cvpwarn con campo float
DbSet<Prog2>? _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;
default:
abilitata = false;
break;
}
return abilitata;
}
private async Task<string> 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;
}
switch (ten)
{
case Clienti.VT:
_rapp_new = _VT_rapptable.Rapps;
//ten = ten2;
break;
default:
_rapp_new = getRappNewByTenant(ten);
break;
}
string suff_rapp = string.Empty;
string primo_seriale = string.Empty;
//D000000004
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;
}
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<int> 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.Discovery:
new_serial = suffClienti.Discovery + new_serial;
break;
case Clienti.Marrocco:
new_serial = suffClienti.Marrocco + new_serial;
break;
case Clienti.Ferrari:
new_serial = suffClienti.Ferrari + new_serial;
break;
case Clienti.Sicilia:
new_serial = suffClienti.Sicilia + new_serial;
break;
case Clienti.Sarom:
new_serial = suffClienti.Sarom + new_serial;
break;
case Clienti.Sinergo:
new_serial = suffClienti.Sinergo + new_serial;
break;
case Clienti.Gitoga:
new_serial = suffClienti.Gitoga + new_serial;
break;
case Clienti.Lifta:
new_serial = suffClienti.Lifta + new_serial;
break;
case Clienti.Siet:
new_serial = suffClienti.Siet + new_serial;
break;
case Clienti.PMS:
new_serial = suffClienti.PMS + new_serial;
break;
case Clienti.VT:
new_serial = suffClienti.VT + new_serial;
break;
case Clienti.LW:
new_serial = suffClienti.LW + new_serial;
break;
case Clienti.Tedesco:
new_serial = suffClienti.Tedes + new_serial;
break;
case Clienti.Syscom:
new_serial = suffClienti.Sys + 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<Chiamate> 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;
}
if (ten.Equals(Clienti.VT))
{
ten = getClaimValueByToken(token, "tenant2");
_chiamate= _VT_chia.Chiamate;
}
else
{
_chiamate = getChiamateByTenant(ten);
}
var calltec = await _chiamate.Where(
t => t.chserial == ser_chiamata
&& t.chcodazi == ten
).OrderBy(t => t.chdtapp).ToListAsync();
return calltec.First();
}
private async Task<Manprog> 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<Manprog> 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<Manprog> 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;
}
/// <summary> vuoto=chiamata presa in carico 3=chiamata chiusa 2=manutenzione chiusa</summary>
public static class TipoRapportino
{
/// <summary></summary>
public const string PresaInCarico = "";
/// <summary></summary>
public const string ManutenzioneChiusa = "2";
/// <summary></summary>
public const string ChiamataChiusa = "3";
/// <summary></summary>
public const string ChiamataDaCommessa = "4";
/// <summary></summary>
public const string ChiamataCapoTecnico = "5";
}
private async Task<int> checkChiamataPresa(string ten, string serChiamata,string tipo, string ten2)
{
//tipo rapportino =""
int trovati = 0;
switch (ten)
{
case Clienti.VT:
_rapp_new= _VT_rapptable.Rapps;
ten = ten2;
break;
default:
_rapp_new = getRappNewByTenant(ten);
break;
}
var rapp = await _rapp_new.Where(t => t.azienda_impianto == ten
&& t.seriale_chiamata !=null && t.seriale_chiamata.Equals(serChiamata)
&& 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<Rapp_New> checkChiamataDaRilasciare(string ten, string serRapportino, string tipo,string ten2)
{
//tipo rapportino =""
Rapp_New trovati = null;
switch (ten)
{
case Clienti.VT:
_rapp_new = _VT_rapptable.Rapps;
ten = ten2;
break;
default:
_rapp_new = getRappNewByTenant(ten);
break;
}
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<int> checkChiamataRifiutata(string ten, string serChiamata, string tipo,string ten2)
{
//tipo rapportino =""
int trovati = 0;
switch (ten)
{
case Clienti.VT:
_rapp_new = _VT_rapptable.Rapps;
ten = ten2;
break;
default:
_rapp_new = getRappNewByTenant(ten);
break;
}
var rapp = await _rapp_new.Where(t => t.azienda_impianto == ten
&& t.seriale_chiamata != null && t.seriale_chiamata.Equals(serChiamata)
&& 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<int> checkChiamataChiusa(string ten, string serChiamata, string tipo)
{
//tipo rapportino =3 o tipo rapportino=4
int trovati = 0;
if(ten.Equals(Clienti.VT))
{
_rapp_new = _VT_rapptable.Rapps;
}
else
{
_rapp_new = getRappNewByTenant(ten);
}
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<int> 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;
}
/// <summary> 200=Ok 500=ErroreInterno 400=OperazioneNonAmmessa</summary>
public static class StatiRisposta
{
/// <summary></summary>
public const string Ok = "200";
/// <summary></summary>
public const string ErroreInterno = "500";
/// <summary></summary>
public const string OperazioneNonAmmessa = "400";
}
private async Task<int> 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<Prese> 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<int> 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;
}
/// <summary></summary>
public static class Clienti
{
/// <summary></summary>
public const string Marrocco = "MARRO";
/// <summary></summary>
public const string Ferrari = "FERRA";
/// <summary>Zucchetti Sicilia</summary>
public const string Sicilia = "LABSE";
/// <summary>Discovery</summary>
public const string Discovery = "DISCO";
/// <summary>Sarom</summary>
public const string Sarom = "SAROM";
/// <summary>Sinergo</summary>
public const string Sinergo = "SINER";
/// <summary>Gitoga</summary>
public const string Gitoga = "GITSR";
/// <summary>Lifta</summary>
public const string Lifta = "LIFTA";
/// <summary>Siet</summary>
public const string Siet = "SIET2";
/// <summary>PMS</summary>
public const string PMS = "PMS00";
/// <summary>VT app</summary>
public const string VT = "VIRTU";
/// <summary>Lift-web</summary>
public const string LW = "DEMO ";
/// <summary>Tedesco Impianti</summary>
public const string Tedesco = "TEDES";
/// <summary>Syscom</summary>
public const string Syscom = "A0001";
}
/// <summary></summary>
public static class suffClienti
{
/// <summary></summary>
public const string Marrocco = "K";
/// <summary></summary>
public const string Ferrari = "Y";
/// <summary>Zucchetti Sicilia</summary>
public const string Sicilia = "J";
/// <summary>Discovery</summary>
public const string Discovery = "Z";
/// <summary>Sarom</summary>
public const string Sarom = "H";
/// <summary>Sinergo</summary>
public const string Sinergo = "Q";
/// <summary>Gitoga</summary>
public const string Gitoga = "G";
/// <summary>Lifta</summary>
public const string Lifta = "L";
/// <summary>Siet</summary>
public const string Siet = "S";
/// <summary>PMS</summary>
public const string PMS = "S";
/// <summary>Virtual task</summary>
public const string VT = "V";
/// <summary>Lift web</summary>
public const string LW = "L";
/// <summary>Tedesco impianti</summary>
public const string Tedes = "T";
/// <summary>Syscom</summary>
public const string Sys = "S";
}
/// <summary>trasforma un Saldiart in un Mag_New</summary>
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;
}
/// <summary>trasforma un Compi_Impia in un Mag_New</summary>
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;
}
private static Random random = new Random();
/// <summary>crea un cpccchk</summary>
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());
}
/// <summary>formatta l'indirizzo della lista chiamate</summary>
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("<br>");
sb.Append("<b>Impianto</b> : " + i.chcodimp.Trim());
}
if (!string.IsNullOrEmpty(i.imrefref))
{
sb.Append("<br>");
sb.Append("<b>Ref.</b> : " + i.imrefref.Trim());
}
formatst = sb.ToString();
return formatst;
}
/// <summary>formatta l'indirizzo stampa chiamate</summary>
public static string formattaIndirizzoStampaMarrocco(Chiamate i)
{
string formatst = string.Empty;
StringBuilder sb = new StringBuilder();
sb.Append("<b>SPETT. AMM. COND. :</b> ");
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("<br>");
sb.Append("<b>Numero Ref.</b> : " + i.imrefref.Trim());
}
formatst = sb.ToString();
return formatst;
}
/// <summary>formatta l'indirizzo stampa chiamateper Discovery</summary>
public static string formattaIndirizzoStampaDiscovery(Chiamate i)
{
string formatst = string.Empty;
StringBuilder sb = new StringBuilder();
sb.Append("<b>SPETT. AMM. COND. :</b> ");
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;
}
/// <summary>formatta l'indirizzo della lista chiamate TEDESCO</summary>
public static string formattaItemChiamateTedesco(Chiamate i)
{
string formatst = string.Empty;
StringBuilder sb = new StringBuilder();
if (!string.IsNullOrEmpty(i.imdescri))
{
sb.Append("<b>N.pratica</b> : " + i.imdescri.Trim());
sb.Append("<br>");
}
sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty);
sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imcodcap) ? " " + i.imcodcap.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imlocali) ? " " + i.imlocali.Trim() + " " : string.Empty);
if (!string.IsNullOrEmpty(i.chcodimp))
{
sb.Append("<br>");
sb.Append("<b>Impianto</b> : " + i.chcodimp.Trim());
}
formatst = sb.ToString();
return formatst;
}
/// <summary>formatta l'indirizzo della lista chiamate Virtual task</summary>
public static string formattaItemChiamateVT(Chiamate i)
{
string formatst = string.Empty;
StringBuilder sb = new StringBuilder();
if (!string.IsNullOrEmpty(i.andescri))
{
sb.Append("<b>Cliente</b> : " + i.andescri.Trim());
sb.Append("<br>");
}
if (!string.IsNullOrEmpty(i.chcodimp))
{
sb.Append("<b>Impianto</b> : " + i.chcodimp.Trim());
sb.Append("<br>");
}
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("<br>");
}
if (!string.IsNullOrEmpty(i.chrifer))
{
sb.Append("<b>Rif.</b> : " + i.chrifer.Trim());
sb.Append("<br>");
}
if (!string.IsNullOrEmpty(i.chtelef))
{
sb.Append("<b>Tel.</b> : " + i.chtelef.Trim());
sb.Append("<br>");
}
if (!string.IsNullOrEmpty(i.chcodseg))
{
sb.Append("<b>Cod.Segn.</b> : " + i.chcodseg.Trim());
sb.Append("<br>");
}
formatst = sb.ToString();
return formatst;
}
/// <summary>formatta il riferimento impainto (html)</summary>
public static string formattaRiferimentoImpiantoMarrocco(Chiamate i)
{
string formatst = string.Empty;
StringBuilder sb = new StringBuilder();
sb.Append("<b>N. Impianto</b> : " + i.chcodimp.Trim());
if (!string.IsNullOrEmpty(i.imubicaz))
{
sb.Append("<br>");
sb.Append("<b>Ubicazione</b> : " + i.imubicaz.Trim());
}
if (!string.IsNullOrEmpty(i.chcodimp))
{
sb.Append("<br>");
sb.Append("<b>Matricola impianto :</b> ");
sb.Append(!string.IsNullOrEmpty(i.immatric) ? i.immatric.Trim() + " " : string.Empty);
}
formatst = sb.ToString();
return formatst;
}
/// <summary>formatta il riferimento impianto Disco (html)</summary>
public static string formattaRiferimentoImpiantoDiscovery(Chiamate i)
{
string formatst = string.Empty;
StringBuilder sb = new StringBuilder();
sb.Append("<b>N. Impianto</b> : " + i.chcodimp.Trim());
if (!string.IsNullOrEmpty(i.imubicaz))
{
sb.Append("<br>");
sb.Append("<b>Ubicazione</b> : " + i.imubicaz.Trim());
}
if (!string.IsNullOrEmpty(i.chcodimp))
{
sb.Append("<br>");
sb.Append("<b>Matricola impianto :</b> ");
sb.Append(!string.IsNullOrEmpty(i.immatric) ? i.immatric.Trim() + " " : string.Empty);
}
formatst = sb.ToString();
return formatst;
}
/// <summary>formatta il riferimento impianto Ferrari (html)</summary>
public static string formattaRiferimentoImpiantoFerrari(Chiamate i)
{
string formatst = string.Empty;
StringBuilder sb = new StringBuilder();
sb.Append("<b>N. Impianto</b> : " + i.chcodimp.Trim());
if (!string.IsNullOrEmpty(i.imubicaz))
{
sb.Append("<br>");
sb.Append("<b>Ubicazione</b> : " + i.imubicaz.Trim());
}
if (!string.IsNullOrEmpty(i.chcodimp))
{
sb.Append("<br>");
sb.Append("<b>Matricola impianto :</b> ");
sb.Append(!string.IsNullOrEmpty(i.immatric) ? i.immatric.Trim() + " " : string.Empty);
}
formatst = sb.ToString();
return formatst;
}
/// <summary>formatta l'indirizzo stampa manutenzioni</summary>
public static string formattaIndirizzoStampaManutMarrocco(Manprog i)
{
string formatst = string.Empty;
StringBuilder sb = new StringBuilder();
sb.Append("<b>SPETT. AMM. COND. :</b>");
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("<br>");
sb.Append("<b>Numero Ref.</b> : " + i.imrefref.Trim());
}
formatst = sb.ToString();
return formatst;
}
/// <summary>formatta il riferimento impainto (html)</summary>
public static string formattaIndirizzoStampaManutDiscovery(Manprog i)
{
string formatst = string.Empty;
StringBuilder sb = new StringBuilder();
sb.Append("<b>SPETT. AMM. COND. :</b>");
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("<br>");
sb.Append("<b>Numero Ref.</b> : " + i.imrefref.Trim());
}
formatst = sb.ToString();
return formatst;
}
/// <summary>formatta l'indirizzo della lista manutenzioni</summary>
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("<br>");
sb.Append("<b>Impianto</b> : " + i.ctcodimp.Trim());
}
if (!string.IsNullOrEmpty(i.imrefref))
{
sb.Append("<br>");
sb.Append("<b>Ref.</b> : " + i.imrefref.Trim());
}
formatst = sb.ToString();
return formatst;
}
/// <summary>formatta riferimwnto impianto su buono (html)</summary>
public static string formattaRifImpMarrocco(Manprog i)
{
string formatst = string.Empty;
StringBuilder sb = new StringBuilder();
if (!string.IsNullOrEmpty(i.ctcodimp))
{
sb.Append("<b>Matricola impianto</b> : " + i.ctcodimp.Trim());
if(!string.IsNullOrEmpty(i.immatric))
{
sb.Append( " - " + i.immatric.Trim());
}
}
if (!string.IsNullOrEmpty(i.imubicaz))
{
sb.Append("<br>");
sb.Append("<b>Ubicazione</b> : " + i.imubicaz.Trim());
}
formatst = sb.ToString();
return formatst;
}
/// <summary>formatta riferimwnto impianto su buono (html) Disco</summary>
public static string formattaRifImpDiscovery(Manprog i)
{
string formatst = string.Empty;
StringBuilder sb = new StringBuilder();
if (!string.IsNullOrEmpty(i.ctcodimp))
{
sb.Append("<b>N. Impianto</b> : " + i.ctcodimp.Trim());
}
if (!string.IsNullOrEmpty(i.imubicaz))
{
sb.Append("<br>");
sb.Append("<b>Ubicazione</b> : " + i.imubicaz.Trim());
}
if (!string.IsNullOrEmpty(i.immatric))
{
sb.Append("<br>");
sb.AppendLine("<b>Matricola</b> : " + 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;
}
/// <summary>Configurazioni per azienda return:ActionResult</summary>
[HttpGet("configurazioni")]
public async Task<ActionResult<Configurazione_out>> 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<AziendaRif> l = new List<AziendaRif>();
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<ActionResult<Configurazione_out>> 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
/// <summary>token riewmpimento</summary>
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;
}
/// <summary>elimina Token</summary>
private async void deleteToken(Token t)
{
using (var transaction = _tokens.Database.BeginTransaction())
{
_tokens.tok.Remove(t);
await _tokens.SaveChangesAsync();
transaction.Commit();
}
}
/// <summary>inserisce Token</summary>
private async void insertToken(Token t)
{
using (var transaction = _tokens.Database.BeginTransaction())
{
await _tokens.tok.AddAsync(t);
await _tokens.SaveChangesAsync();
transaction.Commit();
}
}
/// <summary>token salvataggio</summary>
[HttpPost]
[Route("token/add")]
public async Task<ActionResult<Token_out>> addToken(string tokenDevice, string token)
{
Token_out t = new Token_out();
bool da_inserire = false;
try
{
List<Token> co = new List<Token>();
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);
}
}
/// <summary>token salvataggio</summary>
[HttpPost]
[Route("token/sendMessage")]
public async Task<ActionResult<Token_out>> 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<string, string>()
{
{ "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);
}
}
//<summary>SendNotificationAsync</summary>
private async Task<string> 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
/// <summary>Magazzini per login return:ActionResult</summary>
[HttpGet("magazzini")]
public async Task<ActionResult<IEnumerable<Magazzini>>> magazzini(string token)
{
List < Magazzini > lst= new List<Magazzini>();
string ten = getClaimValueByToken(token, "tenant");
string ten2 = getClaimValueByToken(token, "tenant2");
string tenAdhoc = getClaimValueByToken(token, "tenantConfigurazioni");
if(string.IsNullOrEmpty(ten))
{
ten = tenAdhoc;
}
if (ten.Equals(Clienti.VT))
{
return lst;
}
else
{
_magazzini = getMagazziniByTenant(ten);
return await _magazzini.ToListAsync();
}
}
/// <summary>Login iniziale return:ActionResult</summary>
[HttpPost("loginTechnical")]
public async Task< ActionResult<LoginOut>> 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<Tecnici>();
switch (model.Tenant)
{
case Clienti.VT:
_tecnici= _VT_tec.Tecnici;
tecnico = await _tecnici.Where(t => t.tcuser == model.Username && t.tcpwd == model.Password ).Take(1).ToListAsync();
string ten2 = tecnico.First().tccodazi;
_confLette = await readConf(ten2);
break;
default:
//2024-11-26: leggo le configurazioni prima perchè come tenant non devo più leggere AZIENDA ma AZIENDA_ADHOC
_confLette = await readConf(model.Tenant);
tenAdHoc = (_confLette != null && _confLette.azienda_adhoc!=null)? _confLette.azienda_adhoc:string.Empty;
_tecnici = getTecniciByTenant(tenAdHoc);
//model.Tenant = tenAdHoc;// lo valoriozzo con quello iniziale per non cambiare il passaggio nel token
tecnico = await _tecnici.Where(t => t.tcuser == model.Username && t.tcpwd == model.Password && t.tccodazi == tenAdHoc).Take(1).ToListAsync();
break;
}
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<Claim>
{
//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;
//per VT il costo lo devo leggere dal profilo del tecnico
if (model.Tenant.Equals(Clienti.VT))
{
string ten2 = tecnico.First().tccodazi;
string codTec = tecnico.First().tccodice;
_tecTable = _VT_tectable.Tectable;
var costo = _tecTable.Where(t => t.tccodazi.Equals(ten2) && t.tccodice.Equals(codTec)).First();
cc.costo_orario = costo.tccoor;
}
else
{
cc.costo_orario = _confLette.costo_orario;
}
cc.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;
o.Config = cc;
//cerco le aziende collegate
List<AziendaRif> l = new List<AziendaRif>();
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);
}
}
}
if(bCercaAziVT)
{
ten = model.Tenant;
string ten2 = tecnico.First().tccodazi;
string tecn= tecnico.First().tccodice;
_VT_DatiAzi = _VT_DatiAzienda.Dati;
var t = await _VT_DatiAzi.Where(t => t.azienda.Equals(ten2) && t.tecnico.Equals(tecn)).ToListAsync();
if (t.Any())
{
foreach (DatiAzienda appo in t)
{
AziendaRif ar = new AziendaRif();
//https://localhost:7068/VIRTU/AZI01/AZI01_LOGO.jpg
string logo = !string.IsNullOrEmpty(appo.url_logo) ? appo.url_logo.Trim() : string.Empty;
//var uriBuilder = new UriBuilder(Request.Scheme, Request.Host.Host, Request.Host.Port ?? -1);
//logo = uriBuilder + logo;
ar.pilogurl = logo;
ar.picodtec = appo.tecnico;
ar.pinomede = appo.ragsoc;
ar.pitextin = appo.testo_buono;
ar.pirifazi = appo.azienda;
ar.piazihoc = model.Tenant;
l.Add(ar);
}
}
/*
_azi_coll = _VT_azi.Azi;
var a= await _azi_coll.Where(t => t.piazihoc != null && t.piazihoc.Equals(ten)
&& t.picodtec != null && t.picodtec.Trim().Equals(o.Tccodice.Trim())
&& t.pirifazi!=null && t.pirifazi.Equals(ten2)
).ToListAsync();
if(a.Any())
{
foreach (AziendaRif appo in a)
{
//https://localhost:7068/VIRTU/AZI01/AZI01_LOGO.jpg
string logo = !string.IsNullOrEmpty(appo.pilogurl) ? appo.pilogurl.Trim() : string.Empty;
//var uriBuilder = new UriBuilder(Request.Scheme, Request.Host.Host, Request.Host.Port ?? -1);
//logo = uriBuilder + logo;
appo.pilogurl = logo;
l.Add(appo);
}
}
*/
}
o.aziende_coll = l;
}
return StatusCode(StatusCodes.Status200OK, o);
}
}
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<string> 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";
switch (ten)
{
case Clienti.VT:
_rapp_new = _VT_rapptable.Rapps;
ten = ten2;
break;
default:
_rapp_new = getRappNewByTenant(ten);
break;
}
//var rapp = await _rapp_new.Where(t => t.azienda_impianto == ten && t.ser_buono!=null && t.tipo_rapportino== TipoRapportino.ChiamataChiusa).OrderByDescending(t => t.ser_buono).Take(1).ToListAsync();
//var rapp = await _rapp_new.Where(t => t.azienda_impianto == ten && t.ser_buono != null && t.ser_buono.Trim().Contains(pref) && t.tipo_rapportino == TipoRapportino.ChiamataChiusa).OrderByDescending(t => t.ser_buono).Take(1).ToListAsync();
//tolto filtro su tipo rapportino per gestire anche il tipo 4 =commessa
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<Rapp_New> 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;
}
switch (ten)
{
case Clienti.VT:
_chiamate = _VT_chia.Chiamate;
ten = getClaimValueByToken(token, "tenant2");
break;
default:
_chiamate = getChiamateByTenant(ten);
break;
}
//i = fakeInput(i,ten);
var chia = await _chiamate.Where(t => t.chserial.Trim().Equals(i.seriale_chiamata.Trim())).OrderBy(t => t.chdtapp).ToListAsync();
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<Rapp_New> 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;
}
switch (ten)
{
case Clienti.VT:
_chiamate = _VT_chia.Chiamate;
ten = getClaimValueByToken(token, "tenant2");
break;
default:
_chiamate = getChiamateByTenant(ten);
break;
}
var chia = await _chiamate.Where(t => t.chserial == i.seriale_chiamata).OrderBy(t => t.chdtapp).ToListAsync();
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<Rapp_New> 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);
switch (ten)
{
case Clienti.VT:
_chiamate = _VT_chia.Chiamate;
ten = getClaimValueByToken(token, "tenant2");
break;
default:
_chiamate = getChiamateByTenant(ten);
break;
}
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;
}
// MARROCCO se la chiamata è fatta da un capo tecnico che deve rendicontare l'attività delle squadra
// sulla chiamata nel campo CHMODRAC viene scritto COMME
var chiam2 = await _chiamate.Where(
t => t.chserial.Equals(i.seriale_chiamata)
&& t.chcodazi == ten && t.chtipo.Equals("A")
).OrderByDescending(t => t.chdtapp).ToListAsync();
if (chiam2 != null && chiam2.Count() > 0)
{
if (ten.Equals(Clienti.Marrocco) && chiam2 != null && chiam2.FirstOrDefault().chmodrac != null && chiam2.FirstOrDefault().chmodrac.Equals("COMME"))
{
r.tipo_rapportino = TipoRapportino.ChiamataCapoTecnico;
}
if (ten.Equals(Clienti.Gitoga) && chiam2 != null && chiam2.FirstOrDefault().chmodrac != null && chiam2.FirstOrDefault().chmodrac.Equals("COMME"))
{
r.tipo_rapportino = TipoRapportino.ChiamataCapoTecnico;
}
if (ten.Equals(Clienti.Lifta) && chiam2 != null && chiam2.FirstOrDefault().chmodrac != null && chiam2.FirstOrDefault().chmodrac.Equals("COMME"))
{
r.tipo_rapportino = TipoRapportino.ChiamataCapoTecnico;
}
}
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 = adesso.Hour.ToString();
r.ora_ini_rapportino = i.ora_ini_rapportino;
r.ora_fin_rapportino = i.ora_fin_rapportino;
//r.min_ini_rapportino = adesso.Minute.ToString();
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("<b>SPETT.LE :</b>");
sb.Append(!string.IsNullOrEmpty(i.andescri) ? i.andescri + " " : string.Empty);
sb.Append("<br>");
//indirizzo
sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty);
sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() : string.Empty);
chiamataIndStampa = sb.ToString();
break;
default:
sb.Append("<b>SPETT.LE :</b>");
if(!string.IsNullOrEmpty(i.andescri))
{
sb.Append(!string.IsNullOrEmpty(i.andescri) ? i.andescri + " " : string.Empty);
sb.Append("<br>");
}
sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty );
sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() : string.Empty);
chiamataIndStampa = sb.ToString();
break;
}
o.indirizzo_stampa = chiamataIndStampa;
sb.Clear();
string chiamataItemList = string.Empty;
switch (tenant)
{
case Clienti.Marrocco:
#region marrocco
chiamataItemList = formattaItemChiamateMarrocco(i);
#endregion
break;
case Clienti.Gitoga:
#region gitoga
chiamataItemList = formattaItemChiamateMarrocco(i);
#endregion
break;
case Clienti.Lifta:
#region lifta
chiamataItemList = formattaItemChiamateMarrocco(i);
#endregion
break;
case Clienti.Tedesco:
#region Tedesco
chiamataItemList = formattaItemChiamateTedesco(i);
#endregion
break;
case Clienti.VT:
chiamataItemList = formattaItemChiamateVT(i);
break;
default:
#region default
sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty);
sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imcodcap) ? " " + i.imcodcap.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imlocali) ? " " + i.imlocali.Trim() + " " : string.Empty);
if (!string.IsNullOrEmpty(i.chcodimp))
{
sb.Append("<br>");
sb.Append("<b>Impianto</b> : " + i.chcodimp.Trim());
}
chiamataItemList = sb.ToString();
break;
#endregion
}
o.impianto_list = chiamataItemList;
sb.Clear();
string rif_impianto = string.Empty;
switch (tenant)
{
case Clienti.Marrocco:
#region marrocco
rif_impianto = formattaRiferimentoImpiantoMarrocco(i);
#endregion
break;
case Clienti.Gitoga:
#region gitoga
rif_impianto = formattaRiferimentoImpiantoMarrocco(i);
#endregion
break;
case Clienti.Lifta:
#region lifta
rif_impianto = formattaRiferimentoImpiantoMarrocco(i);
#endregion
break;
case Clienti.Discovery:
#region discovery
rif_impianto = formattaRiferimentoImpiantoDiscovery(i);
#endregion
break;
case Clienti.Ferrari:
#region ferrari
rif_impianto = formattaRiferimentoImpiantoFerrari(i);
#endregion
break;
case Clienti.Siet:
#region SIET
sb.AppendLine("<b>N. Impianto: </b> " + i.chcodimp);
if (!string.IsNullOrEmpty(i.imubicaz))
{
sb.AppendLine("<b>Ubicazione: </b> " + i.imubicaz);
}
if (!string.IsNullOrEmpty(i.chrifer))
{
string comm = getCommessaSietBySerial(i.chrifer);
if(!string.IsNullOrEmpty(comm))
{
sb.AppendLine("<b>Commessa: </b> " + comm);
}
}
rif_impianto = sb.ToString();
#endregion
break;
default:
sb.AppendLine("<b>N. Impianto: </b> "+i.chcodimp );
if(!string.IsNullOrEmpty(i.imubicaz))
sb.AppendLine("<b>Ubicazione: </b> " + i.imubicaz);
rif_impianto = sb.ToString();
break;
}
o.riferimento_impianto = rif_impianto;
sb.Clear();
o.imcodcap = i.imcodcap;
o.imcomune = i.imcomune;
o.improvin = i.improvin;
o.imcodnaz = i.imcodnaz;
o.immatric = i.immatric;
o.imnumimp = i.imnumimp;
o.imubicaz = i.imubicaz;
o.tcdescri = i.tcdescri;
o.tccodice = i.tccodice;
o.ser_rapp_ic = i.ser_rapp_ic;
o.tipo_rapp_ic = i.tipo_rapp_ic;
o.ic = i.ic;
o.ser_rapp_rif = i.ser_rapp_rif;
o.tipo_rapp_rif = i.tipo_rapp_rif;
o.rif = i.rif;
o.ser_rapp_chiu = i.ser_rapp_chiu;
o.tipo_rapp_chiu = i.tipo_rapp_chiu;
o.ser_buono_chiu = i.ser_buono_chiu;
o.err_title = i.err_title;
o.err_detail = i.err_detail;
o.err_status_code = i.err_status_code;
o.ancodice = i.ancodice;
o.chiamata = i.chiamata;
o.spe_viaggio = i.spe_viaggio;
o.chnumero = i.chnumero;
Dictionary<string, string> dic = new Dictionary<string, string>();
switch (tenant)
{
case Clienti.Marrocco:
#region marrocco
dic.Add("Esercizio ", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("REF ", !string.IsNullOrEmpty(i.imrefref) ? i.imrefref : String.Empty);
dic.Add("Riferimento:", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Telefono rif.:", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
#endregion
break;
case Clienti.Gitoga:
#region gitoga
dic.Add("Esercizio ", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("REF ", !string.IsNullOrEmpty(i.imrefref) ? i.imrefref : String.Empty);
dic.Add("Riferimento:", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Telefono rif.:", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
#endregion
break;
case Clienti.Lifta:
#region lifta
dic.Add("Esercizio ", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("REF ", !string.IsNullOrEmpty(i.imrefref) ? i.imrefref : String.Empty);
dic.Add("Riferimento:", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Telefono rif.:", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
#endregion
break;
case Clienti.Ferrari:
#region ferrari
dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty);
dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty);
dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty);
dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty);
dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty);
dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty);
dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty);
dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty);
dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty);
dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty);
dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty);
dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty);
dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty);
dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty);
dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty);
dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty);
dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty);
dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty);
dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty);
dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty);
dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty);
dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty);
dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty);
dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty);
dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty);
dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty);
dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty);
dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty);
dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty);
dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty);
dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty);
dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty);
dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty);
dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty);
dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty);
dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty);
dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty);
dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty);
dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty);
dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty);
dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty);
dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty);
dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty);
dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty);
dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty);
dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty);
dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty);
dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty);
dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty);
dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty);
dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty);
dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty);
#endregion
break;
case Clienti.Sicilia:
#region sicilia
dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty);
dic.Add("Numero chiamata", !string.IsNullOrEmpty( i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty);
dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty);
dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty);
dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty);
dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty);
dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty);
dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty);
dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty);
dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty);
dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty);
dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty);
dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty);
dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty);
dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty);
dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty);
dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty);
dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty);
dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty);
dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty);
dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty);
dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty);
dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty);
dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty);
dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty);
dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty);
dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty);
dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty);
dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty);
dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty);
dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty);
dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty);
dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty);
dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty);
dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty);
dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty);
dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty);
dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty);
dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty);
dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty);
dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty);
dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty);
dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty);
dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty);
dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty);
dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty);
dic.Add("Data inizio manutenzione", i.imdainma !=null ? i.imdainma.ToString() : String.Empty);
dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty);
dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty);
dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty);
dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty);
dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty);
#endregion
break;
case Clienti.Discovery:
#region discovery
dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty);
dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty);
dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty);
dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty);
dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty);
dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty);
dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty);
dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty);
dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty);
dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty);
dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty);
dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty);
dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty);
dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty);
dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty);
dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty);
dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty);
dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty);
dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty);
dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty);
dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty);
dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty);
dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty);
dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty);
dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty);
dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty);
dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty);
dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty);
dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty);
dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty);
dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty);
dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty);
dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty);
dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty);
dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty);
dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty);
dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty);
dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty);
dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty);
dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty);
dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty);
dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty);
dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty);
dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty);
dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty);
dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty);
dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty);
dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty);
dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty);
dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty);
dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty);
dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty);
#endregion
break;
case Clienti.Sarom:
#region Sarom
dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty);
dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty);
dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty);
dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty);
dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty);
dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty);
dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty);
dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty);
dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty);
dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty);
dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty);
dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty);
dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty);
dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty);
dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty);
dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty);
dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty);
dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty);
dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty);
dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty);
dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty);
dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty);
dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty);
dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty);
dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty);
dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty);
dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty);
dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty);
dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty);
dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty);
dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty);
dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty);
dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty);
dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty);
dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty);
dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty);
dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty);
dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty);
dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty);
dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty);
dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty);
dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty);
dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty);
dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty);
dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty);
dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty);
dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty);
dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty);
dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty);
dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty);
dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty);
dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty);
#endregion
break;
default:
break;
}
o.altri = dic;
o.imazirif = i.imazirif;
o.imrefref = i.imrefref;
return o;
}
private 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("<b>SPETT.LE :</b>");
if (!string.IsNullOrEmpty(i.andescri))
{
sb.Append(!string.IsNullOrEmpty(i.andescri) ? i.andescri.Trim() + " " : string.Empty);
sb.Append("<br>");
}
sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty);
sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty);
sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() : string.Empty);
chiamataIndStampa = sb.ToString();
//switch (tenant)
//{
// case Clienti.Marrocco:
// #region marrocco
// chiamataIndStampa = formattaIndirizzoStampaMarrocco(i);
// #endregion
// break;
// case Clienti.Gitoga:
// #region gitoga
// chiamataIndStampa = formattaIndirizzoStampaMarrocco(i);
// #endregion
// break;
// case Clienti.Lifta:
// #region lifta
// chiamataIndStampa = formattaIndirizzoStampaMarrocco(i);
// #endregion
// break;
// case Clienti.Discovery:
// #region Discovery
// chiamataIndStampa = formattaIndirizzoStampaDiscovery(i);
// #endregion
// break;
// case Clienti.Siet:
// //ragione sociale cliente
// sb.Append("<b>SPETT.LE :</b>");
// sb.Append(!string.IsNullOrEmpty(i.andescri) ? i.andescri + " " : string.Empty);
// sb.Append("<br>");
// //indirizzo
// sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty);
// sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty);
// sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty);
// sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty);
// sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() : string.Empty);
// chiamataIndStampa = sb.ToString();
// break;
// default:
// sb.Append("<b>SPETT.LE :</b>");
// if (!string.IsNullOrEmpty(i.andescri))
// {
// sb.Append(!string.IsNullOrEmpty(i.andescri) ? i.andescri + " " : string.Empty);
// sb.Append("<br>");
// }
// sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty);
// sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty);
// sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty);
// sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty);
// sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() : string.Empty);
// chiamataIndStampa = sb.ToString();
// break;
//}
o.indirizzo_stampa = chiamataIndStampa;
sb.Clear();
string chiamataItemList = string.Empty;
//switch (tenant)
//{
// case Clienti.Marrocco:
// #region marrocco
// chiamataItemList = formattaItemChiamateMarrocco(i);
// #endregion
// break;
// case Clienti.Gitoga:
// #region gitoga
// chiamataItemList = formattaItemChiamateMarrocco(i);
// #endregion
// break;
// case Clienti.Lifta:
// #region lifta
// chiamataItemList = formattaItemChiamateMarrocco(i);
// #endregion
// break;
// case Clienti.Tedesco:
// #region Tedesco
// chiamataItemList = formattaItemChiamateTedesco(i);
// #endregion
// break;
// case Clienti.VT:
// chiamataItemList = formattaItemChiamateVT(i);
// break;
// default:
// #region default
// sb.Append(!string.IsNullOrEmpty(i.imindiri1) ? i.imindiri1.Trim() + " " : string.Empty);
// sb.Append(!string.IsNullOrEmpty(i.imindiri2) ? i.imindiri2.Trim() + " " : string.Empty);
// sb.Append(i.imindiri3 != null ? i.imindiri3.ToString() + " " : string.Empty);
// sb.Append(!string.IsNullOrEmpty(i.imindiri4) ? i.imindiri4.Trim() + " " : string.Empty);
// sb.Append(!string.IsNullOrEmpty(i.imindiri5) ? i.imindiri5.Trim() + " " : string.Empty);
// sb.Append(!string.IsNullOrEmpty(i.imcodcap) ? " " + i.imcodcap.Trim() + " " : string.Empty);
// sb.Append(!string.IsNullOrEmpty(i.imlocali) ? " " + i.imlocali.Trim() + " " : string.Empty);
// if (!string.IsNullOrEmpty(i.chcodimp))
// {
// sb.Append("<br>");
// sb.Append("<b>Impianto</b> : " + i.chcodimp.Trim());
// }
// chiamataItemList = sb.ToString();
// break;
// #endregion
//}
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("<b>N. Impianto: </b> " + i.chcodimp);
// if (!string.IsNullOrEmpty(i.imubicaz))
// {
// sb.AppendLine("<b>Ubicazione: </b> " + i.imubicaz);
// }
// if (!string.IsNullOrEmpty(i.chrifer))
// {
// string comm = getCommessaSietBySerial(i.chrifer);
// if (!string.IsNullOrEmpty(comm))
// {
// sb.AppendLine("<b>Commessa: </b> " + comm);
// }
// }
// rif_impianto = sb.ToString();
// #endregion
// break;
// default:
// sb.AppendLine("<b>N. Impianto: </b> " + i.chcodimp);
// if (!string.IsNullOrEmpty(i.imubicaz))
// sb.AppendLine("<b>Ubicazione: </b> " + i.imubicaz);
// rif_impianto = sb.ToString();
// break;
//}
//sb.AppendLine("<b>N. Impianto: </b> " + i.chcodimp);
if (!string.IsNullOrEmpty(i.imubicaz))
sb.AppendLine("<b>Ubicazione: </b> " + 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<string, string> dic = new Dictionary<string, string>();
switch (tenant)
{
case Clienti.Marrocco:
#region marrocco
dic.Add("Esercizio ", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("REF ", !string.IsNullOrEmpty(i.imrefref) ? i.imrefref : String.Empty);
dic.Add("Riferimento:", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Telefono rif.:", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
#endregion
break;
case Clienti.Gitoga:
#region gitoga
dic.Add("Esercizio ", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("REF ", !string.IsNullOrEmpty(i.imrefref) ? i.imrefref : String.Empty);
dic.Add("Riferimento:", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Telefono rif.:", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
#endregion
break;
case Clienti.Lifta:
#region lifta
dic.Add("Esercizio ", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("REF ", !string.IsNullOrEmpty(i.imrefref) ? i.imrefref : String.Empty);
dic.Add("Riferimento:", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Telefono rif.:", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
#endregion
break;
case Clienti.Ferrari:
#region ferrari
dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty);
dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty);
dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty);
dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty);
dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty);
dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty);
dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty);
dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty);
dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty);
dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty);
dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty);
dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty);
dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty);
dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty);
dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty);
dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty);
dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty);
dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty);
dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty);
dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty);
dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty);
dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty);
dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty);
dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty);
dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty);
dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty);
dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty);
dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty);
dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty);
dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty);
dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty);
dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty);
dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty);
dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty);
dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty);
dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty);
dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty);
dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty);
dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty);
dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty);
dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty);
dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty);
dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty);
dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty);
dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty);
dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty);
dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty);
dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty);
dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty);
dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty);
dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty);
dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty);
#endregion
break;
case Clienti.Sicilia:
#region sicilia
dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty);
dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty);
dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty);
dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty);
dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty);
dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty);
dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty);
dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty);
dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty);
dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty);
dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty);
dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty);
dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty);
dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty);
dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty);
dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty);
dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty);
dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty);
dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty);
dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty);
dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty);
dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty);
dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty);
dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty);
dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty);
dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty);
dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty);
dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty);
dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty);
dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty);
dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty);
dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty);
dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty);
dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty);
dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty);
dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty);
dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty);
dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty);
dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty);
dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty);
dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty);
dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty);
dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty);
dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty);
dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty);
dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty);
dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty);
dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty);
dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty);
dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty);
dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty);
dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty);
#endregion
break;
case Clienti.Discovery:
#region discovery
dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty);
dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty);
dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty);
dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty);
dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty);
dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty);
dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty);
dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty);
dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty);
dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty);
dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty);
dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty);
dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty);
dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty);
dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty);
dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty);
dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty);
dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty);
dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty);
dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty);
dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty);
dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty);
dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty);
dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty);
dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty);
dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty);
dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty);
dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty);
dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty);
dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty);
dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty);
dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty);
dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty);
dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty);
dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty);
dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty);
dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty);
dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty);
dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty);
dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty);
dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty);
dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty);
dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty);
dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty);
dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty);
dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty);
dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty);
dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty);
dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty);
dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty);
dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty);
dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty);
#endregion
break;
case Clienti.Sarom:
#region Sarom
dic.Add("Esercizio", !string.IsNullOrEmpty(i.chcodese) ? i.chcodese : String.Empty);
dic.Add("Tipo", !string.IsNullOrEmpty(i.chtipo) ? i.chtipo : String.Empty);
dic.Add("Numero chiamata", !string.IsNullOrEmpty(i.chnumero.ToString()) ? i.chnumero.ToString() : String.Empty);
dic.Add("Data chiamata", !string.IsNullOrEmpty(i.chdata.ToString()) ? i.chdata.ToString() : String.Empty);
dic.Add("Ora inserimento chiamata", !string.IsNullOrEmpty(i.chora.ToString()) ? i.chora.ToString() : String.Empty);
dic.Add("Min inserimento chiamata", !string.IsNullOrEmpty(i.chmin.ToString()) ? i.chmin.ToString() : String.Empty);
dic.Add("Operatore assegnazione", !string.IsNullOrEmpty(i.chopass.ToString()) ? i.chopass.ToString() : String.Empty);
dic.Add("Operatore chiusura", !string.IsNullOrEmpty(i.chopchi.ToString()) ? i.chopchi.ToString() : String.Empty);
dic.Add("Azienda impianto", !string.IsNullOrEmpty(i.chaziimp) ? i.chaziimp : String.Empty);
dic.Add("Ora appuntamento fine", !string.IsNullOrEmpty(i.choraapf.ToString()) ? i.choraapf.ToString() : String.Empty);
dic.Add("Min appuntamento fine", !string.IsNullOrEmpty(i.chminapf.ToString()) ? i.chminapf.ToString() : String.Empty);
dic.Add("Riferimento chiamata", !string.IsNullOrEmpty(i.chrifer) ? i.chrifer : String.Empty);
dic.Add("Riferimento telefono", !string.IsNullOrEmpty(i.chtelef) ? i.chtelef : String.Empty);
dic.Add("Codice segnalazione", !string.IsNullOrEmpty(i.chcodseg) ? i.chcodseg : String.Empty);
dic.Add("Fermo impianto", !string.IsNullOrEmpty(i.chstopi) ? i.chstopi : String.Empty);
dic.Add("Data assegnazione chiamata", !string.IsNullOrEmpty(i.chdtass.ToString()) ? i.chdtass.ToString() : String.Empty);
dic.Add("Ora assegnazione chiamata", !string.IsNullOrEmpty(i.chorass.ToString()) ? i.chorass.ToString() : String.Empty);
dic.Add("Min assegnazione chiamata", !string.IsNullOrEmpty(i.chminass.ToString()) ? i.chminass.ToString() : String.Empty);
dic.Add("Data chiusura chiamata", !string.IsNullOrEmpty(i.chdtchi.ToString()) ? i.chdtchi.ToString() : String.Empty);
dic.Add("Ora chiusura chiamata", !string.IsNullOrEmpty(i.chorachi.ToString()) ? i.chorachi.ToString() : String.Empty);
dic.Add("Min chiusura chiamata", !string.IsNullOrEmpty(i.chminchi.ToString()) ? i.chminchi.ToString() : String.Empty);
dic.Add("Data inizio intervento", !string.IsNullOrEmpty(i.chdtlin.ToString()) ? i.chdtlin.ToString() : String.Empty);
dic.Add("Ora inizio intervento", !string.IsNullOrEmpty(i.chorali.ToString()) ? i.chorali.ToString() : String.Empty);
dic.Add("Min inizio intervento", !string.IsNullOrEmpty(i.chminli.ToString()) ? i.chminli.ToString() : String.Empty);
dic.Add("Data fine intervento", !string.IsNullOrEmpty(i.chdtlfi.ToString()) ? i.chdtlfi.ToString() : String.Empty);
dic.Add("Ora fine intervento", !string.IsNullOrEmpty(i.choralf.ToString()) ? i.choralf.ToString() : String.Empty);
dic.Add("Min fine intervento", !string.IsNullOrEmpty(i.chminlf.ToString()) ? i.chminlf.ToString() : String.Empty);
dic.Add("Numero 1 rapportino futuro", !string.IsNullOrEmpty(i.chnrap1.ToString()) ? i.chnrap1.ToString() : String.Empty);
dic.Add("Serie 1 rapportino futuro", !string.IsNullOrEmpty(i.chsrap1) ? i.chsrap1 : String.Empty);
dic.Add("Numero 2 rapportino futuro", !string.IsNullOrEmpty(i.chnrap2.ToString()) ? i.chnrap2.ToString() : String.Empty);
dic.Add("Modalità raccolta chiamata", !string.IsNullOrEmpty(i.chmodrac) ? i.chmodrac : String.Empty);
dic.Add("Numero chiamata per impianto per anno", !string.IsNullOrEmpty(i.chprgann.ToString()) ? i.chprgann.ToString() : String.Empty);
dic.Add("Importo manodopera", !string.IsNullOrEmpty(i.chimpman.ToString()) ? i.chimpman.ToString() : String.Empty);
dic.Add("Percentuale manodopera", !string.IsNullOrEmpty(i.chperman.ToString()) ? i.chperman.ToString() : String.Empty);
dic.Add("Stampa manodopera", !string.IsNullOrEmpty(i.chflstim) ? i.chflstim : String.Empty);
dic.Add("Chiusura da remoto", !string.IsNullOrEmpty(i.chfleste) ? i.chfleste : String.Empty);
dic.Add("Riferimento seriale importazione", !string.IsNullOrEmpty(i.chserext) ? i.chserext : String.Empty);
dic.Add("Descrizione impianto", !string.IsNullOrEmpty(i.imdescri) ? i.imdescri : String.Empty);
dic.Add("Tipo impianto", !string.IsNullOrEmpty(i.imtipoim) ? i.imtipoim : String.Empty);
dic.Add("Matricola impianto ", !string.IsNullOrEmpty(i.immatric) ? i.immatric : String.Empty);
dic.Add("Numero impianto ", !string.IsNullOrEmpty(i.imnumimp) ? i.imnumimp : String.Empty);
dic.Add("Ultimo amministratore ", !string.IsNullOrEmpty(i.imultamm) ? i.imultamm : String.Empty);
dic.Add("Desc Ultimo amministratore ", !string.IsNullOrEmpty(i.imultdam) ? i.imultdam : String.Empty);
dic.Add("Telefono Ult. Amministratore", !string.IsNullOrEmpty(i.imulttam) ? i.imulttam : String.Empty);
dic.Add("Ubicazione impianto", !string.IsNullOrEmpty(i.imubicaz) ? i.imubicaz : String.Empty);
dic.Add("Zona manutenzione", !string.IsNullOrEmpty(i.imzonman) ? i.imzonman : String.Empty);
dic.Add("Pubblico/privato", !string.IsNullOrEmpty(i.imflpupr) ? i.imflpupr : String.Empty);
dic.Add("Zona chiamate", !string.IsNullOrEmpty(i.imzonchi) ? i.imzonchi : String.Empty);
dic.Add("Zona supervisione", !string.IsNullOrEmpty(i.imzonsup) ? i.imzonsup : String.Empty);
dic.Add("Data inizio manutenzione", i.imdainma != null ? i.imdainma.ToString() : String.Empty);
dic.Add("Data fine manutenzione", !string.IsNullOrEmpty(i.imdafima.ToString()) ? i.imdafima.ToString() : String.Empty);
dic.Add("Data costruzione", !string.IsNullOrEmpty(i.imdatcos.ToString()) ? i.imdatcos.ToString() : String.Empty);
dic.Add("Numero telesoccorso ", !string.IsNullOrEmpty(i.imteleso) ? i.imteleso : String.Empty);
dic.Add("Email cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Ultimo cliente", !string.IsNullOrEmpty(i.an_email) ? i.an_email : String.Empty);
dic.Add("Codice cliente", !string.IsNullOrEmpty(i.ancodice) ? i.ancodice : String.Empty);
dic.Add("Tipo anagrafica", !string.IsNullOrEmpty(i.antipcon) ? i.antipcon : String.Empty);
#endregion
break;
default:
break;
}
o.altri = dic;
o.imazirif = i.imazirif;
o.imrefref = i.imrefref;
return o;
}
private string getCommessaSietBySerial(string seriale)
{
string commessa = string.Empty;
try
{
_commDescSiet = _Siet_commDesc.Commdesc;
var c = _commDescSiet.Where(c => c.laserial.Equals(seriale)).First();
if (c != null && !string.IsNullOrEmpty(c.lacodcom))
{
commessa = c.lacodcom.Trim();
if (!string.IsNullOrEmpty(c.lacodcen))
{
commessa = commessa + " - " + c.lacodcen.Trim();
}
}
}
catch
{
Console.WriteLine(string.Format("*********** {1} Errore Chiamata al metodo getCommessaSietBySerial: seriale:{0} ", seriale, DateTime.Now.ToString()));
}
return commessa;
}
private Chiamate_out inputToChiamateOut(Input i)
{
Chiamate_out c = new Chiamate_out();
c.chserial = i.seriale_chiamata;
c.chcodazi = i.azienda_chiamata;
c.chaziimp = i.codice_impianto;
c.tccodice = i.codice_tecnico;
c.chdata = i.data_rapportino;
return c;
}
/// <summary>Codici di chiusura per scheda intevento return:ActionResult</summary>
[HttpGet("codici_chiusura")]
public async Task<ActionResult<IEnumerable<Chiusure>>> codiciChiusura(string token)
{
try
{
string ten = getClaimValueByToken(token, "tenant");
string tenConf = getClaimValueByToken(token, "tenantConfigurazioni");
if (string.IsNullOrEmpty(ten))
{
ten = tenConf;
}
switch (ten)
{
case Clienti.VT:
_chiusure = _VT_chiu.Chiu;
ten = getClaimValueByToken(token, "tenant2");
break;
default:
_chiusure = getChiusureByTenant(ten);
break;
}
var l = await _chiusure.Where(c => c.cccodazi.Equals(ten)).ToListAsync();
//per DISCOVERY devo riempire anche gli abbinamenti con il tipo manutenzione
switch (ten)
{
case Clienti.Discovery:
//_ccci = _Disco_ccci.ccci;
_ccciView= _Disco_ccciView.ccciWiev;
foreach (Chiusure t in l)
{
t.tipologieMan = new List<string>();
string cod = t.cccodice;
//logica per cercare nella tabella degli abbinamenti
var appo= await _ccciView.Where(c => c.picodazi!=null && c.picodazi.Equals(ten) && c.picodchi != null && c.picodchi.Equals(cod)).ToListAsync();
if (appo != null && appo.Count() > 0)
{
//sono nel caso dei codici gestiti: nella lista metto solo quelli permessi
foreach (CC_CIWiev c in appo)
{
t.tipologieMan.Add(c.picodint);
}
}
else
{
//t.tipologieMan.Add("SEMESTRALE");
//t.tipologieMan.Add("ANN ");
//t.tipologieMan.Add("BIMESTRALE");
//t.tipologieMan.Add("MENSILE ");
//t.tipologieMan.Add("QUADRIMEST");
//t.tipologieMan.Add("TR ");
//t.tipologieMan.Add("VERSEM ");
//Aggiungo tutti
var result = _ccciView.GroupBy(test => test.cicodice)
.Select(grp => grp.First())
.ToList();
foreach (CC_CIWiev c in result)
{
string codint = !string.IsNullOrEmpty(c.cicodice) ? c.cicodice : string.Empty;
t.tipologieMan.Add(codint);
}
//trovo tutti gli altri NON gestiti e li elimino dal totale
var result2 = _ccciView.Where(p=>p.picodint!=null).GroupBy(test => test.cicodice)
.Select(grp => grp.First())
.ToList();
foreach (CC_CIWiev c in result2)
{
string codint = !string.IsNullOrEmpty(c.cicodice)? c.cicodice:string.Empty;
t.tipologieMan.Remove(codint);
}
}
}
break;
default:
break;
}
return StatusCode(StatusCodes.Status200OK, l);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>Chiamate per tecnico e azienda (tenant) in stato C=Assegnate return:ActionResult</summary>
[HttpGet("chiamate")]
public async Task<ActionResult<IEnumerable<Chiamate_out>>> chiamate(string token)
{
try
{
List<Chiamate_out> ilist = new List<Chiamate_out>();
string ten = getClaimValueByToken(token, "tenant");
string ten2 = getClaimValueByToken(token, "tenant2");
string tenOut = getClaimValueByToken(token, "tenant");
string tecnico = getClaimValueByToken(token, "tccodice");
string tenConf = getClaimValueByToken(token, "tenantConfigurazioni");
if(string.IsNullOrEmpty(ten))
{
ten = tenConf;
}
switch (ten)
{
case Clienti.VT:
_chiamate = _VT_chia.Chiamate;
ten = getClaimValueByToken(token, "tenant2");
break;
default:
_chiamate = getChiamateByTenant(ten);
break;
}
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();
if (tenOut.Equals(Clienti.VT))
{
o = fillChiamateOutVT(ch, ten);
}
else
{
o = fillChiamateOut(ch, ten);
}
ilist.Add(o);
}
// cerco le chiamate che devo fare per sostituzioni SE funzione abilitata
bool cerca_sostituzioni = false;
cerca_sostituzioni = checkSostituzioneAbilitata(ten);
if (cerca_sostituzioni)
{
//step 1 : trovo tutte le MIE sostituzioni
_sostituzione = getSostituzioneByTenant(ten);
var s = _sostituzione.Where(t => t.tscodazi.Equals(ten) && t.tscodsos.Trim().Equals(tecnico));
foreach (Sostituzione ss in s)
{
string tecnico_sostituito = string.Empty;
tecnico_sostituito = ss.tscodtec != null ? ss.tscodtec : string.Empty;
//2023-03-13: cancellato il filtro sulla zona perchè il tecnico che sostituisce spesso è di un'altra zona
//string zona = string.Empty;
//zona = ss.tscodzon != null ? ss.tscodzon : "zonavuota";
//step 2 : trovo tutte le chiamate del tecnico che sto sostitutendo e le aggiungo alla mie
var calltecSost = await _chiamate.Where(
t => t.tccodice == tecnico_sostituito
&& t.chcodazi == ten
//&& t.imzonchi.Equals(zona)
).OrderByDescending(t => t.chdtapp).ToListAsync();
foreach (Chiamate ch in calltecSost)
{
Chiamate_out o = new Chiamate_out();
if(tenOut.Equals(Clienti.VT))
{
o = fillChiamateOutVT(ch, ten);
}
else
{
o = fillChiamateOut(ch, ten);
}
ilist.Add(o);
}
}
}
IEnumerable<Chiamate_out> enumerable = ilist as IEnumerable<Chiamate_out>;
//return StatusCode(StatusCodes.Status200OK, enumerable.Take(100));
return StatusCode(StatusCodes.Status200OK, enumerable);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>presaInCarico: 1) crea un nuovo seriale per RAPP_NEW 2)inserisce il primo record di una presa in carico su RAPP_NEW return:ActionResult</summary>
[HttpPost]
[Route("chiamate/prendi_in_carico")]
public async Task<ActionResult<Chiamate_out>> 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 { }
Console.WriteLine(string.Format("*********** {2} metodo prendiInCarico1: tenant:{0} tenant2: {1} token: {3} tecnico:{4} ", ten, ten2, DateTime.Now.ToString(), token, tec));
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);
switch (ten)
{
case Clienti.Marrocco:
using (var transaction = _Marro_rapp.Database.BeginTransaction())
{
await _Marro_rapp.Rapps.AddAsync(r);
await _Marro_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Ferrari:
using (var transaction = _Ferra_rapp.Database.BeginTransaction())
{
await _Ferra_rapp.Rapps.AddAsync(r);
await _Ferra_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Sicilia:
using (var transaction = _Sicilia_rapp.Database.BeginTransaction())
{
await _Sicilia_rapp.Rapps.AddAsync(r);
await _Sicilia_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Discovery:
using (var transaction = _Disco_rapp.Database.BeginTransaction())
{
await _Disco_rapp.Rapps.AddAsync(r);
await _Disco_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Sarom:
using (var transaction = _Sarom_rapp.Database.BeginTransaction())
{
await _Sarom_rapp.Rapps.AddAsync(r);
await _Sarom_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Gitoga:
using (var transactionGit = _Gitoga_rapp.Database.BeginTransaction())
{
await _Gitoga_rapp.Rapps.AddAsync(r);
await _Gitoga_rapp.SaveChangesAsync();
transactionGit.Commit();
}
break;
case Clienti.Lifta:
using (var transactionLif = _Lifta_rapp.Database.BeginTransaction())
{
await _Lifta_rapp.Rapps.AddAsync(r);
await _Lifta_rapp.SaveChangesAsync();
transactionLif.Commit();
}
break;
case Clienti.Siet:
using (var transactionSiet = _Siet_rapp.Database.BeginTransaction())
{
await _Siet_rapp.Rapps.AddAsync(r);
await _Siet_rapp.SaveChangesAsync();
transactionSiet.Commit();
}
break;
case Clienti.PMS:
using (var transactionPMS = _Pms_rapp.Database.BeginTransaction())
{
await _Pms_rapp.Rapps.AddAsync(r);
await _Pms_rapp.SaveChangesAsync();
transactionPMS.Commit();
}
break;
case Clienti.VT:
using (var transactionVT = _VT_rapptable.Database.BeginTransaction())
{
await _VT_rapptable.Rapps.AddAsync(r);
await _VT_rapptable.SaveChangesAsync();
transactionVT.Commit();
}
break;
case Clienti.LW:
using (var transactionLW = _LW_rapp.Database.BeginTransaction())
{
await _LW_rapp.Rapps.AddAsync(r);
await _LW_rapp.SaveChangesAsync();
transactionLW.Commit();
}
break;
case Clienti.Tedesco:
using (var transactionTedes = _Tedes_rapp.Database.BeginTransaction())
{
await _Tedes_rapp.Rapps.AddAsync(r);
await _Tedes_rapp.SaveChangesAsync();
transactionTedes.Commit();
}
break;
case Clienti.Syscom:
using (var transactionSys = _Sys_rapp.Database.BeginTransaction())
{
await _Sys_rapp.Rapps.AddAsync(r);
await _Sys_rapp.SaveChangesAsync();
transactionSys.Commit();
}
break;
default:
break;
}
//restituisco la chiamata
Console.WriteLine(string.Format("*********** {2} metodo prendiInCarico2: tenant:{0} tenant2: {1} token: {3} tecnico:{4} ", ten, ten2, DateTime.Now.ToString(), token, tec));
calltec = await getChiamataBySerial(model.seriale_chiamata, token);
calltec_out = fillChiamateOut(calltec, ten);
calltec_out.err_status_code = StatiRisposta.Ok;
//2024-08-01: metto la lettura della chiamata in un try/catch per evitare l'errore casuale "sequence contains no element"
//nel catch faccio uscire un oggetto riempito con i valori dell'Input di ingresso
//try
//{
// calltec = await getChiamataBySerial(model.seriale_chiamata, token);
// calltec_out = fillChiamateOut(calltec, ten);
// calltec_out.err_status_code = StatiRisposta.Ok;
//}
//catch(Exception ee)
//{
// calltec_out = inputToChiamateOut(model);
//}
}
else
{
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);
}
}
/// <summary> rifiuta: 1) crea un nuovo seriale per RAPP_NEW 2)inserisce record su RAPP_NEW con INCARICO=N e RIFIUTATA=S return:ActionResult</summary>
[HttpPost]
[Route("chiamate/rifiuta")]
public async Task<ActionResult<Chiamate_out>> 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);
switch (ten)
{
case Clienti.Marrocco:
using (var transaction = _Marro_rapp.Database.BeginTransaction())
{
await _Marro_rapp.Rapps.AddAsync(r);
await _Marro_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Ferrari:
using (var transaction = _Ferra_rapp.Database.BeginTransaction())
{
await _Ferra_rapp.Rapps.AddAsync(r);
await _Ferra_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Sicilia:
using (var transaction = _Sicilia_rapp.Database.BeginTransaction())
{
await _Sicilia_rapp.Rapps.AddAsync(r);
await _Sicilia_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Discovery:
using (var transaction = _Disco_rapp.Database.BeginTransaction())
{
await _Disco_rapp.Rapps.AddAsync(r);
await _Disco_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Sarom:
using (var transaction = _Sarom_rapp.Database.BeginTransaction())
{
await _Sarom_rapp.Rapps.AddAsync(r);
await _Sarom_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Gitoga:
using (var transactionGit = _Gitoga_rapp.Database.BeginTransaction())
{
await _Gitoga_rapp.Rapps.AddAsync(r);
await _Gitoga_rapp.SaveChangesAsync();
transactionGit.Commit();
}
break;
case Clienti.Lifta:
using (var transactionLif = _Lifta_rapp.Database.BeginTransaction())
{
await _Lifta_rapp.Rapps.AddAsync(r);
await _Lifta_rapp.SaveChangesAsync();
transactionLif.Commit();
}
break;
case Clienti.Siet:
using (var transactionSiet = _Siet_rapp.Database.BeginTransaction())
{
await _Siet_rapp.Rapps.AddAsync(r);
await _Siet_rapp.SaveChangesAsync();
transactionSiet.Commit();
}
break;
case Clienti.PMS:
using (var transactionPMS = _Pms_rapp.Database.BeginTransaction())
{
await _Pms_rapp.Rapps.AddAsync(r);
await _Pms_rapp.SaveChangesAsync();
transactionPMS.Commit();
}
break;
case Clienti.VT:
using (var transactionVT = _VT_rapptable.Database.BeginTransaction())
{
await _VT_rapptable.Rapps.AddAsync(r);
await _VT_rapptable.SaveChangesAsync();
transactionVT.Commit();
}
break;
case Clienti.LW:
using (var transactionLW = _LW_rapp.Database.BeginTransaction())
{
await _LW_rapp.Rapps.AddAsync(r);
await _LW_rapp.SaveChangesAsync();
transactionLW.Commit();
}
break;
case Clienti.Tedesco:
using (var transactionTedes = _Tedes_rapp.Database.BeginTransaction())
{
await _Tedes_rapp.Rapps.AddAsync(r);
await _Tedes_rapp.SaveChangesAsync();
transactionTedes.Commit();
}
break;
case Clienti.Syscom:
using (var transactionSys = _Sys_rapp.Database.BeginTransaction())
{
await _Sys_rapp.Rapps.AddAsync(r);
await _Sys_rapp.SaveChangesAsync();
transactionSys.Commit();
}
break;
default:
break;
}
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);
}
//return calltec_out;
}
/// <summary>chiudi: 1) crea un nuovo seriale per RAPP_NEW 2)inserisce record su RAPP_NEW con i dati dell'intervento return:ActionResult</summary>
[HttpPost]
[Route("chiamate/chiudi")]
public async Task<ActionResult<Chiamate_out>> 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;
if(ten.Equals(Clienti.VT))
{
_confLette = await readConf(ten2);
}
else
{
_confLette = await readConf(tenConf);
}
string newSerial = string.Empty;
newSerial = await getSeriale(token);
Rapp_New r = await fillRappNewChiudiByInput(model, token, newSerial, _confLette);
switch (ten)
{
case Clienti.Marrocco:
using (var transaction = _Marro_rapp.Database.BeginTransaction())
{
await _Marro_rapp.Rapps.AddAsync(r);
await _Marro_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Ferrari:
using (var transaction = _Ferra_rapp.Database.BeginTransaction())
{
await _Ferra_rapp.Rapps.AddAsync(r);
await _Ferra_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Sarom:
using (var transaction = _Sarom_rapp.Database.BeginTransaction())
{
await _Sarom_rapp.Rapps.AddAsync(r);
await _Sarom_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Gitoga:
using (var transactionGit = _Gitoga_rapp.Database.BeginTransaction())
{
await _Gitoga_rapp.Rapps.AddAsync(r);
await _Gitoga_rapp.SaveChangesAsync();
transactionGit.Commit();
}
break;
case Clienti.Lifta:
using (var transactionLif = _Lifta_rapp.Database.BeginTransaction())
{
await _Lifta_rapp.Rapps.AddAsync(r);
await _Lifta_rapp.SaveChangesAsync();
transactionLif.Commit();
}
break;
case Clienti.Sicilia:
using (var transaction = _Sicilia_rapp.Database.BeginTransaction())
{
await _Sicilia_rapp.Rapps.AddAsync(r);
await _Sicilia_rapp.SaveChangesAsync();
transaction.Commit();
}
riga = 0;
if (model.compo_add!=null && model.compo_add.Count()>0)
{
using (var transaction2 = _Sicilia_mag.Database.BeginTransaction())
{
foreach (Saldiart co in model.compo_add)
{
riga = riga + 1;
Mag_New mn = new Mag_New();
mn = saldiartToMag_New(co, riga, newSerial, tecnico);
await _Sicilia_mag.Mag.AddAsync(mn);
await _Sicilia_mag.SaveChangesAsync();
}
transaction2.Commit();
}
}
if (model.compo_del != null && model.compo_del.Count() > 0)
{
using (var transaction3 = _Sicilia_mag.Database.BeginTransaction())
{
foreach (Compo_Impia co in model.compo_del)
{
Mag_New mn = new Mag_New();
riga = riga + 1;
mn = compo_ImpiaToMag_New(co, riga, newSerial, tecnico);
await _Sicilia_mag.Mag.AddAsync(mn);
await _Sicilia_mag.SaveChangesAsync();
}
transaction3.Commit();
}
}
break;
case Clienti.Discovery:
using (var transaction = _Disco_rapp.Database.BeginTransaction())
{
await _Disco_rapp.Rapps.AddAsync(r);
await _Disco_rapp.SaveChangesAsync();
transaction.Commit();
}
riga = 0;
if (model.compo_add != null && model.compo_add.Count() > 0)
{
using (var transaction2 = _Disco_mag.Database.BeginTransaction())
{
foreach (Saldiart co in model.compo_add)
{
riga = riga + 1;
Mag_New mn = new Mag_New();
mn = saldiartToMag_New(co, riga, newSerial, tecnico);
await _Disco_mag.Mag.AddAsync(mn);
await _Disco_mag.SaveChangesAsync();
}
transaction2.Commit();
}
}
if (model.compo_del != null && model.compo_del.Count() > 0)
{
using (var transaction3 = _Disco_mag.Database.BeginTransaction())
{
foreach (Compo_Impia co in model.compo_del)
{
Mag_New mn = new Mag_New();
riga = riga + 1;
mn = compo_ImpiaToMag_New(co, riga, newSerial, tecnico);
await _Disco_mag.Mag.AddAsync(mn);
await _Disco_mag.SaveChangesAsync();
}
transaction3.Commit();
}
}
break;
case Clienti.Siet:
using (var transaction = _Siet_rapp.Database.BeginTransaction())
{
await _Siet_rapp.Rapps.AddAsync(r);
await _Siet_rapp.SaveChangesAsync();
transaction.Commit();
}
riga = 0;
if (model.compo_add != null && model.compo_add.Count() > 0)
{
using (var transaction2 = _Siet_mag.Database.BeginTransaction())
{
foreach (Saldiart co in model.compo_add)
{
riga = riga + 1;
Mag_New mn = new Mag_New();
mn = saldiartToMag_New(co, riga, newSerial, tecnico);
await _Siet_mag.Mag.AddAsync(mn);
await _Siet_mag.SaveChangesAsync();
}
transaction2.Commit();
}
}
if (model.compo_del != null && model.compo_del.Count() > 0)
{
using (var transaction3 = _Siet_mag.Database.BeginTransaction())
{
foreach (Compo_Impia co in model.compo_del)
{
Mag_New mn = new Mag_New();
riga = riga + 1;
mn = compo_ImpiaToMag_New(co, riga, newSerial, tecnico);
await _Siet_mag.Mag.AddAsync(mn);
await _Siet_mag.SaveChangesAsync();
}
transaction3.Commit();
}
}
break;
case Clienti.PMS:
using (var transaction = _Pms_rapp.Database.BeginTransaction())
{
await _Pms_rapp.Rapps.AddAsync(r);
await _Pms_rapp.SaveChangesAsync();
transaction.Commit();
}
riga = 0;
if (model.compo_add != null && model.compo_add.Count() > 0)
{
using (var transaction2 = _PMS_mag.Database.BeginTransaction())
{
foreach (Saldiart co in model.compo_add)
{
riga = riga + 1;
Mag_New mn = new Mag_New();
mn = saldiartToMag_New(co, riga, newSerial, tecnico);
await _PMS_mag.Mag.AddAsync(mn);
await _PMS_mag.SaveChangesAsync();
}
transaction2.Commit();
}
}
if (model.compo_del != null && model.compo_del.Count() > 0)
{
using (var transaction3 = _PMS_mag.Database.BeginTransaction())
{
foreach (Compo_Impia co in model.compo_del)
{
Mag_New mn = new Mag_New();
riga = riga + 1;
mn = compo_ImpiaToMag_New(co, riga, newSerial, tecnico);
await _PMS_mag.Mag.AddAsync(mn);
await _PMS_mag.SaveChangesAsync();
}
transaction3.Commit();
}
}
break;
case Clienti.VT:
using (var transactionVT = _VT_rapptable.Database.BeginTransaction())
{
await _VT_rapptable.Rapps.AddAsync(r);
await _VT_rapptable.SaveChangesAsync();
transactionVT.Commit();
}
break;
case Clienti.LW:
using (var transaction = _LW_rapp.Database.BeginTransaction())
{
await _LW_rapp.Rapps.AddAsync(r);
await _LW_rapp.SaveChangesAsync();
transaction.Commit();
}
riga = 0;
if (model.compo_add != null && model.compo_add.Count() > 0)
{
using (var transaction2 = _LW_mag.Database.BeginTransaction())
{
foreach (Saldiart co in model.compo_add)
{
riga = riga + 1;
Mag_New mn = new Mag_New();
mn = saldiartToMag_New(co, riga, newSerial, tecnico);
await _LW_mag.Mag.AddAsync(mn);
await _LW_mag.SaveChangesAsync();
}
transaction2.Commit();
}
}
if (model.compo_del != null && model.compo_del.Count() > 0)
{
using (var transaction3 = _LW_mag.Database.BeginTransaction())
{
foreach (Compo_Impia co in model.compo_del)
{
Mag_New mn = new Mag_New();
riga = riga + 1;
mn = compo_ImpiaToMag_New(co, riga, newSerial, tecnico);
await _LW_mag.Mag.AddAsync(mn);
await _LW_mag.SaveChangesAsync();
}
transaction3.Commit();
}
}
break;
case Clienti.Tedesco:
using (var transaction = _Tedes_rapp.Database.BeginTransaction())
{
await _Tedes_rapp.Rapps.AddAsync(r);
await _Tedes_rapp.SaveChangesAsync();
transaction.Commit();
}
riga = 0;
if (model.compo_add != null && model.compo_add.Count() > 0)
{
using (var transaction2 = _Tedes_mag.Database.BeginTransaction())
{
foreach (Saldiart co in model.compo_add)
{
riga = riga + 1;
Mag_New mn = new Mag_New();
mn = saldiartToMag_New(co, riga, newSerial, tecnico);
await _Tedes_mag.Mag.AddAsync(mn);
await _Tedes_mag.SaveChangesAsync();
}
transaction2.Commit();
}
}
if (model.compo_del != null && model.compo_del.Count() > 0)
{
using (var transaction3 = _Tedes_mag.Database.BeginTransaction())
{
foreach (Compo_Impia co in model.compo_del)
{
Mag_New mn = new Mag_New();
riga = riga + 1;
mn = compo_ImpiaToMag_New(co, riga, newSerial, tecnico);
await _Tedes_mag.Mag.AddAsync(mn);
await _Tedes_mag.SaveChangesAsync();
}
transaction3.Commit();
}
}
break;
case Clienti.Syscom:
using (var transaction = _Sys_rapp.Database.BeginTransaction())
{
await _Sys_rapp.Rapps.AddAsync(r);
await _Sys_rapp.SaveChangesAsync();
transaction.Commit();
}
riga = 0;
if (model.compo_add != null && model.compo_add.Count() > 0)
{
using (var transaction2 = _Sys_mag.Database.BeginTransaction())
{
foreach (Saldiart co in model.compo_add)
{
riga = riga + 1;
Mag_New mn = new Mag_New();
mn = saldiartToMag_New(co, riga, newSerial, tecnico);
await _Sys_mag.Mag.AddAsync(mn);
await _Sys_mag.SaveChangesAsync();
}
transaction2.Commit();
}
}
if (model.compo_del != null && model.compo_del.Count() > 0)
{
using (var transaction3 = _Sys_mag.Database.BeginTransaction())
{
foreach (Compo_Impia co in model.compo_del)
{
Mag_New mn = new Mag_New();
riga = riga + 1;
mn = compo_ImpiaToMag_New(co, riga, newSerial, tecnico);
await _Sys_mag.Mag.AddAsync(mn);
await _Sys_mag.SaveChangesAsync();
}
transaction3.Commit();
}
}
break;
default:
break;
}
calltec = await getChiamataBySerial(r.seriale_chiamata, token);
calltec_out = fillChiamateOut(calltec, ten);
calltec_out.err_status_code = StatiRisposta.Ok;
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);
}
//return calltec_out;
}
/// <summary>rilascia: elimina record su RAPP_NEW con i dati dell'intervento return:ActionResult</summary>
[HttpPost]
[Route("chiamate/rilascia")]
public async Task<ActionResult<Chiamate_out>> 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)
{
switch (ten)
{
case Clienti.Marrocco:
using (var transaction = _Marro_rapp.Database.BeginTransaction())
{
_Marro_rapp.Rapps.Remove(r);
await _Marro_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Ferrari:
using (var transaction = _Ferra_rapp.Database.BeginTransaction())
{
_Ferra_rapp.Rapps.Remove(r);
await _Ferra_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Sarom:
using (var transaction = _Sarom_rapp.Database.BeginTransaction())
{
_Sarom_rapp.Rapps.Remove(r);
await _Sarom_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Gitoga:
using (var transactionGit = _Gitoga_rapp.Database.BeginTransaction())
{
_Gitoga_rapp.Rapps.Remove(r);
await _Gitoga_rapp.SaveChangesAsync();
transactionGit.Commit();
}
break;
case Clienti.Lifta:
using (var transactionLif = _Lifta_rapp.Database.BeginTransaction())
{
_Lifta_rapp.Rapps.Remove(r);
await _Lifta_rapp.SaveChangesAsync();
transactionLif.Commit();
}
break;
case Clienti.Sicilia:
using (var transaction = _Sicilia_rapp.Database.BeginTransaction())
{
_Sicilia_rapp.Rapps.Remove(r);
await _Sicilia_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Discovery:
using (var transaction = _Disco_rapp.Database.BeginTransaction())
{
_Disco_rapp.Rapps.Remove(r);
await _Disco_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Siet:
using (var transaction = _Siet_rapp.Database.BeginTransaction())
{
_Siet_rapp.Rapps.Remove(r);
await _Siet_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.PMS:
using (var transaction = _Pms_rapp.Database.BeginTransaction())
{
_Pms_rapp.Rapps.Remove(r);
await _Pms_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.VT:
using (var transactionVT = _VT_rapptable.Database.BeginTransaction())
{
_VT_rapptable.Rapps.Remove(r);
await _VT_rapptable.SaveChangesAsync();
transactionVT.Commit();
}
break;
case Clienti.LW:
using (var transaction = _LW_rapp.Database.BeginTransaction())
{
_LW_rapp.Rapps.Remove(r);
await _LW_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Tedesco :
using (var transaction = _Tedes_rapp.Database.BeginTransaction())
{
_Tedes_rapp.Rapps.Remove(r);
await _Tedes_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Syscom:
using (var transaction = _Sys_rapp.Database.BeginTransaction())
{
_Sys_rapp.Rapps.Remove(r);
await _Sys_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
default:
break;
}
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<Rapp_New> 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<string> 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<string, string> dic = new Dictionary<string, string>();
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("<b>SPETT.LE :</b>");
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("<b>SPETT.LE :</b>");
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("<br>");
sb.Append("<b>Impianto</b> : " + 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("<b>N.pratica</b> : " + appo);
sb.Append("<br>");
}
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("<br>");
sb.Append("<b>Impianto</b> : " + m.ctcodimp.Trim());
}
if (!string.IsNullOrEmpty(m.imubicaz))
{
sb.Append("<br>");
sb.Append("<b>Ubicazione</b> : " + m.imubicaz.Trim());
}
if (!string.IsNullOrEmpty(m.immatric))
{
sb.Append("<br>");
sb.Append("<b>Matricola</b> : " + 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("<br>");
sb.Append("<b>Impianto</b> : " + m.ctcodimp.Trim());
}
if (!string.IsNullOrEmpty(m.imubicaz))
{
sb.Append("<br>");
sb.Append("<b>Ubicazione</b> : " + m.imubicaz.Trim());
}
if (!string.IsNullOrEmpty(m.immatric))
{
sb.Append("<br>");
sb.Append("<b>Matricola</b> : " + 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("<b>Impianto</b> : " + m.ctcodimp.Trim());
}
rif_impianto = sb.ToString();
#endregion
break;
default:
if (!string.IsNullOrEmpty(m.ctcodimp))
{
sb.Append("<b>N. Impianto</b> : " + 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<string, string> dic = new Dictionary<string, string>();
//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("<b>SPETT.LE :</b>");
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("<b>SPETT.LE :</b>");
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("<br>");
sb.Append("<b>Impianto</b> : " + 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("<br>");
sb.Append("<b>Impianto</b> : " + 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("<b>Impianto</b> : " + m.ctcodimp.Trim());
}
rif_impianto = sb.ToString();
#endregion
break;
default:
if (!string.IsNullOrEmpty(m.ctcodimp))
{
sb.Append("<b>N. Impianto</b> : " + 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<string> getDescrImpTedesco(string codimp, string ten)
{
string descImp = string.Empty;
_impianto = _Tedes_impianti.Impia;
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;
}
/// <summary>Manutenzioni per tecnico e azienda (tenant). Intervallo: 1 mese prima e 1 mese dopo rispetto a GETDATE() con GENERATO diverso da S return:ActionResult</summary>
[HttpGet("manutenzioni")]
public async Task<ActionResult<IEnumerable<Manprog_out>>> 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<Manprog_out> ilist = new List<Manprog_out>();
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<Manprog_out> enumerable = ilist as IEnumerable<Manprog_out>;
//return enumerable;
return StatusCode(StatusCodes.Status200OK, enumerable);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
}
/// <summary> prendi_in_carico: inserisce record su Prese con i dati dell'intervento return:ActionResult</summary> TEDES_MAGAZZINIDbContext
[HttpPost]
[Route("manutenzioni/prendi_in_carico")]
public async Task<ActionResult<Manprog_out>> 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);
switch (ten)
{
case Clienti.Marrocco:
using (var transaction = _Marro_prese.Database.BeginTransaction())
{
await _Marro_prese.Prese.AddAsync(r);
await _Marro_prese.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Ferrari:
using (var transaction2 = _Ferra_prese.Database.BeginTransaction())
{
await _Ferra_prese.Prese.AddAsync(r);
await _Ferra_prese.SaveChangesAsync();
transaction2.Commit();
}
break;
case Clienti.Sarom:
using (var transaction5 = _Sarom_prese.Database.BeginTransaction())
{
await _Sarom_prese.Prese.AddAsync(r);
await _Sarom_prese.SaveChangesAsync();
transaction5.Commit();
}
break;
case Clienti.Sicilia:
using (var transaction3 = _Sicilia_prese.Database.BeginTransaction())
{
await _Sicilia_prese.Prese.AddAsync(r);
await _Sicilia_prese.SaveChangesAsync();
transaction3.Commit();
}
break;
case Clienti.Discovery:
using (var transaction4 = _Disco_prese.Database.BeginTransaction())
{
await _Disco_prese.Prese.AddAsync(r);
await _Disco_prese.SaveChangesAsync();
transaction4.Commit();
}
break;
case Clienti.Gitoga:
using (var transactionGit = _Gitoga_prese.Database.BeginTransaction())
{
await _Gitoga_prese.Prese.AddAsync(r);
await _Gitoga_prese.SaveChangesAsync();
transactionGit.Commit();
}
break;
case Clienti.Lifta:
using (var transactionLif = _Lifta_prese.Database.BeginTransaction())
{
await _Lifta_prese.Prese.AddAsync(r);
await _Lifta_prese.SaveChangesAsync();
transactionLif.Commit();
}
break;
case Clienti.Siet:
using (var transactionSiet = _Siet_prese.Database.BeginTransaction())
{
await _Siet_prese.Prese.AddAsync(r);
await _Siet_prese.SaveChangesAsync();
transactionSiet.Commit();
}
break;
case Clienti.PMS:
using (var transactionPMS = _PMS_prese.Database.BeginTransaction())
{
await _PMS_prese.Prese.AddAsync(r);
await _PMS_prese.SaveChangesAsync();
transactionPMS.Commit();
}
break;
case Clienti.LW:
using (var transactionLW = _LW_prese.Database.BeginTransaction())
{
await _LW_prese.Prese.AddAsync(r);
await _LW_prese.SaveChangesAsync();
transactionLW.Commit();
}
break;
case Clienti.Tedesco:
using (var transactionTedes = _Tedes_prese.Database.BeginTransaction())
{
await _Tedes_prese.Prese.AddAsync(r);
await _Tedes_prese.SaveChangesAsync();
transactionTedes.Commit();
}
break;
case Clienti.Syscom:
using (var transactionSys = _Sys_prese.Database.BeginTransaction())
{
await _Sys_prese.Prese.AddAsync(r);
await _Sys_prese.SaveChangesAsync();
transactionSys.Commit();
}
break;
default:
break;
}
//man = await getManutenzioneByChiave(model, token);
man = await getManutenzioneByChiave2(r, token);
//output = fillManprogOut(man, ten);
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;
}
/// <summary>chiudi: 1) crea un nuovo seriale per RAPP_NEW 2)inserisce record su RAPP_NEW con i dati dell'intervento return:ActionResult</summary>
[HttpPost]
[Route("manutenzioni/chiudi")]
public async Task<ActionResult<Manprog_out>> 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);
switch (ten)
{
case Clienti.Marrocco:
using (var transaction = _Marro_rapp.Database.BeginTransaction())
{
await _Marro_rapp.Rapps.AddAsync(r);
await _Marro_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Ferrari:
using (var transaction = _Ferra_rapp.Database.BeginTransaction())
{
await _Ferra_rapp.Rapps.AddAsync(r);
await _Ferra_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Sarom:
using (var transaction = _Sarom_rapp.Database.BeginTransaction())
{
await _Sarom_rapp.Rapps.AddAsync(r);
await _Sarom_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Sicilia:
using (var transaction = _Sicilia_rapp.Database.BeginTransaction())
{
await _Sicilia_rapp.Rapps.AddAsync(r);
await _Sicilia_rapp.SaveChangesAsync();
transaction.Commit();
}
int riga = 0;
if (model.compo_add != null && model.compo_add.Count() > 0)
{
using (var transaction2 = _Sicilia_mag.Database.BeginTransaction())
{
foreach (Saldiart co in model.compo_add)
{
riga = riga + 1;
Mag_New mn = new Mag_New();
mn = saldiartToMag_New(co, riga, newSerial, tecnico);
await _Sicilia_mag.Mag.AddAsync(mn);
await _Sicilia_mag.SaveChangesAsync();
}
transaction2.Commit();
}
}
if (model.compo_del != null && model.compo_del.Count() > 0)
{
using (var transaction3 = _Sicilia_mag.Database.BeginTransaction())
{
foreach (Compo_Impia co in model.compo_del)
{
Mag_New mn = new Mag_New();
riga = riga + 1;
mn = compo_ImpiaToMag_New(co, riga, newSerial, tecnico);
await _Sicilia_mag.Mag.AddAsync(mn);
await _Sicilia_mag.SaveChangesAsync();
}
transaction3.Commit();
}
}
break;
case Clienti.Discovery:
using (var transaction4 = _Disco_rapp.Database.BeginTransaction())
{
await _Disco_rapp.Rapps.AddAsync(r);
await _Disco_rapp.SaveChangesAsync();
transaction4.Commit();
}
break;
case Clienti.Gitoga:
using (var transactionGit = _Gitoga_rapp.Database.BeginTransaction())
{
await _Gitoga_rapp.Rapps.AddAsync(r);
await _Gitoga_rapp.SaveChangesAsync();
transactionGit.Commit();
}
break;
case Clienti.Lifta:
using (var transactionLif = _Lifta_rapp.Database.BeginTransaction())
{
await _Lifta_rapp.Rapps.AddAsync(r);
await _Lifta_rapp.SaveChangesAsync();
transactionLif.Commit();
}
break;
case Clienti.Siet:
using (var transactionSiet = _Siet_rapp.Database.BeginTransaction())
{
await _Siet_rapp.Rapps.AddAsync(r);
await _Siet_rapp.SaveChangesAsync();
transactionSiet.Commit();
}
int rigaSiet = 0;
if (model.compo_add != null && model.compo_add.Count() > 0)
{
using (var transaction2 = _Siet_mag.Database.BeginTransaction())
{
foreach (Saldiart co in model.compo_add)
{
rigaSiet = rigaSiet + 1;
Mag_New mn = new Mag_New();
mn = saldiartToMag_New(co, rigaSiet, newSerial, tecnico);
await _Siet_mag.Mag.AddAsync(mn);
await _Siet_mag.SaveChangesAsync();
}
transaction2.Commit();
}
}
if (model.compo_del != null && model.compo_del.Count() > 0)
{
using (var transaction3 = _Siet_mag.Database.BeginTransaction())
{
foreach (Compo_Impia co in model.compo_del)
{
Mag_New mn = new Mag_New();
rigaSiet = rigaSiet + 1;
mn = compo_ImpiaToMag_New(co, rigaSiet, newSerial, tecnico);
await _Siet_mag.Mag.AddAsync(mn);
await _Siet_mag.SaveChangesAsync();
}
transaction3.Commit();
}
}
break;
case Clienti.PMS:
using (var transactionPms = _Pms_rapp.Database.BeginTransaction())
{
await _Pms_rapp.Rapps.AddAsync(r);
await _Pms_rapp.SaveChangesAsync();
transactionPms.Commit();
}
int rigapms = 0;
if (model.compo_add != null && model.compo_add.Count() > 0)
{
using (var transaction2 = _PMS_mag.Database.BeginTransaction())
{
foreach (Saldiart co in model.compo_add)
{
rigapms = rigapms + 1;
Mag_New mn = new Mag_New();
mn = saldiartToMag_New(co, rigapms, newSerial, tecnico);
await _PMS_mag.Mag.AddAsync(mn);
await _PMS_mag.SaveChangesAsync();
}
transaction2.Commit();
}
}
if (model.compo_del != null && model.compo_del.Count() > 0)
{
using (var transaction3 = _PMS_mag.Database.BeginTransaction())
{
foreach (Compo_Impia co in model.compo_del)
{
Mag_New mn = new Mag_New();
rigapms = rigapms + 1;
mn = compo_ImpiaToMag_New(co, rigapms, newSerial, tecnico);
await _PMS_mag.Mag.AddAsync(mn);
await _PMS_mag.SaveChangesAsync();
}
transaction3.Commit();
}
}
break;
case Clienti.LW:
using (var transactionLW = _LW_rapp.Database.BeginTransaction())
{
await _LW_rapp.Rapps.AddAsync(r);
await _LW_rapp.SaveChangesAsync();
transactionLW.Commit();
}
int rigalw = 0;
if (model.compo_add != null && model.compo_add.Count() > 0)
{
using (var transaction2 = _LW_mag.Database.BeginTransaction())
{
foreach (Saldiart co in model.compo_add)
{
rigalw = rigalw + 1;
Mag_New mn = new Mag_New();
mn = saldiartToMag_New(co, rigalw, newSerial, tecnico);
await _LW_mag.Mag.AddAsync(mn);
await _LW_mag.SaveChangesAsync();
}
transaction2.Commit();
}
}
if (model.compo_del != null && model.compo_del.Count() > 0)
{
using (var transaction3 = _LW_mag.Database.BeginTransaction())
{
foreach (Compo_Impia co in model.compo_del)
{
Mag_New mn = new Mag_New();
rigalw = rigalw + 1;
mn = compo_ImpiaToMag_New(co, rigalw, newSerial, tecnico);
await _LW_mag.Mag.AddAsync(mn);
await _LW_mag.SaveChangesAsync();
}
transaction3.Commit();
}
}
break;
case Clienti.Tedesco:
using (var transactionTedes = _Tedes_rapp.Database.BeginTransaction())
{
await _Tedes_rapp.Rapps.AddAsync(r);
await _Tedes_rapp.SaveChangesAsync();
transactionTedes.Commit();
}
int rigatedes = 0;
if (model.compo_add != null && model.compo_add.Count() > 0)
{
using (var transaction2 = _Tedes_mag.Database.BeginTransaction())
{
foreach (Saldiart co in model.compo_add)
{
rigatedes = rigatedes + 1;
Mag_New mn = new Mag_New();
mn = saldiartToMag_New(co, rigatedes, newSerial, tecnico);
await _Tedes_mag.Mag.AddAsync(mn);
await _Tedes_mag.SaveChangesAsync();
}
transaction2.Commit();
}
}
if (model.compo_del != null && model.compo_del.Count() > 0)
{
using (var transaction3 = _Tedes_mag.Database.BeginTransaction())
{
foreach (Compo_Impia co in model.compo_del)
{
Mag_New mn = new Mag_New();
rigatedes = rigatedes + 1;
mn = compo_ImpiaToMag_New(co, rigatedes, newSerial, tecnico);
await _Tedes_mag.Mag.AddAsync(mn);
await _Tedes_mag.SaveChangesAsync();
}
transaction3.Commit();
}
}
break;
case Clienti.Syscom:
using (var transactionSys = _Sys_rapp.Database.BeginTransaction())
{
await _Sys_rapp.Rapps.AddAsync(r);
await _Sys_rapp.SaveChangesAsync();
transactionSys.Commit();
}
int rigasys = 0;
if (model.compo_add != null && model.compo_add.Count() > 0)
{
using (var transaction2 = _Sys_mag.Database.BeginTransaction())
{
foreach (Saldiart co in model.compo_add)
{
rigasys = rigasys + 1;
Mag_New mn = new Mag_New();
mn = saldiartToMag_New(co, rigasys, newSerial, tecnico);
await _Sys_mag.Mag.AddAsync(mn);
await _Sys_mag.SaveChangesAsync();
}
transaction2.Commit();
}
}
if (model.compo_del != null && model.compo_del.Count() > 0)
{
using (var transaction3 = _Sys_mag.Database.BeginTransaction())
{
foreach (Compo_Impia co in model.compo_del)
{
Mag_New mn = new Mag_New();
rigasys = rigasys + 1;
mn = compo_ImpiaToMag_New(co, rigasys, newSerial, tecnico);
await _Sys_mag.Mag.AddAsync(mn);
await _Sys_mag.SaveChangesAsync();
}
transaction3.Commit();
}
}
break;
default:
break;
}
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;
}
/// <summary> rilascia: elimina record su Prese con i dati dell'intervento return:ActionResult</summary>
[HttpPost]
[Route("manutenzioni/rilascia")]
public async Task<ActionResult<Manprog_out>> 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 = getPreseByTenant(ten);
//var pre = _prese.SingleOrDefault(t => t.picodazi.Equals(ten) && t.pimpianto.Equals(model.pimpianto) && t.picodint.Equals(model.picodint) && t.pidatman == model.pidatman);
switch (ten)
{
case Clienti.Marrocco:
using (var transaction = _Marro_prese.Database.BeginTransaction())
{
_Marro_prese.Prese.Remove(pre);
await _Marro_prese.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Ferrari:
using (var transaction2 = _Ferra_prese.Database.BeginTransaction())
{
_Ferra_prese.Prese.Remove(pre);
await _Ferra_prese.SaveChangesAsync();
transaction2.Commit();
}
break;
case Clienti.Sarom:
using (var transaction5 = _Sarom_prese.Database.BeginTransaction())
{
_Sarom_prese.Prese.Remove(pre);
await _Sarom_prese.SaveChangesAsync();
transaction5.Commit();
}
break;
case Clienti.Sicilia:
using (var transaction3 = _Sicilia_prese.Database.BeginTransaction())
{
_Sicilia_prese.Prese.Remove(pre);
await _Sicilia_prese.SaveChangesAsync();
transaction3.Commit();
}
break;
case Clienti.Discovery:
using (var transaction4 = _Disco_prese.Database.BeginTransaction())
{
_Disco_prese.Prese.Remove(pre);
await _Disco_prese.SaveChangesAsync();
transaction4.Commit();
}
break;
case Clienti.Gitoga:
using (var transactionGit = _Gitoga_prese.Database.BeginTransaction())
{
_Gitoga_prese.Prese.Remove(pre);
await _Gitoga_prese.SaveChangesAsync();
transactionGit.Commit();
}
break;
case Clienti.Lifta:
using (var transactionLif = _Lifta_prese.Database.BeginTransaction())
{
_Lifta_prese.Prese.Remove(pre);
await _Lifta_prese.SaveChangesAsync();
transactionLif.Commit();
}
break;
case Clienti.Siet:
using (var transactionSiet = _Siet_prese.Database.BeginTransaction())
{
_Siet_prese.Prese.Remove(pre);
await _Siet_prese.SaveChangesAsync();
transactionSiet.Commit();
}
break;
case Clienti.PMS:
using (var transactionPms = _PMS_prese.Database.BeginTransaction())
{
_PMS_prese.Prese.Remove(pre);
await _PMS_prese.SaveChangesAsync();
transactionPms.Commit();
}
break;
case Clienti.LW:
using (var transactionLW = _LW_prese.Database.BeginTransaction())
{
_LW_prese.Prese.Remove(pre);
await _LW_prese.SaveChangesAsync();
transactionLW.Commit();
}
break;
case Clienti.Tedesco:
using (var transactionTedes = _Tedes_prese.Database.BeginTransaction())
{
_Tedes_prese.Prese.Remove(pre);
await _Tedes_prese.SaveChangesAsync();
transactionTedes.Commit();
}
break;
case Clienti.Syscom :
using (var transactionSys = _Sys_prese.Database.BeginTransaction())
{
_Sys_prese.Prese.Remove(pre);
await _Sys_prese.SaveChangesAsync();
transactionSys.Commit();
}
break;
default:
break;
}
//man = await getManutenzioneByChiave(model, token);
man = await getManutenzioneByChiave2(pre, token);
output = fillManprogOut(man, ten);
//output = fillManprogOut2(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();
}
}
/// <summary></summary>
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);
}
}
}
/// <summary>Upload return:ActionResult</summary>
[HttpPost]
[Route("file/upload")]
public async Task<IActionResult> 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;
//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));
Console.WriteLine(string.Format("*********** {2} INIZIO Chiamata al metodo upload: tenant:{0} tenant2: {3} tenantConf: {4} file: {1} tecnico:{5}", ten, nomefile, DateTime.Now.ToString(),ten2,tenConf, tecnico));
if (ten.Equals(Clienti.VT))
{
//ten2= getClaimValueByToken(token, "tenant2");
_confLette = await readConf(ten2);
}
else
{
_confLette = await readConf(tenConf);
}
try
{
long size = files.Length;
if(string.IsNullOrEmpty(nomefile))
{
fileName = Path.GetFileName(files.FileName);
}
else
{
fileName = nomefile;
}
string url = string.Empty;
string usr = string.Empty;
string pwd = string.Empty;
string ip = string.Empty;
int? port = 0;
switch (ten)
{
case Clienti.Marrocco:
url = _confLette.ftp_url + fileName;
usr = _confLette.ftp_usr != null ? _confLette.ftp_usr : string.Empty;
pwd = _confLette.ftp_pwd != null ? _confLette.ftp_pwd : string.Empty;
FtpSend(url, usr, pwd, files);
break;
case Clienti.Gitoga:
url = _confLette.ftp_url + fileName;
usr = _confLette.ftp_usr != null ? _confLette.ftp_usr : string.Empty;
pwd = _confLette.ftp_pwd != null ? _confLette.ftp_pwd : string.Empty;
FtpSend(url, usr, pwd, files);
break;
case Clienti.Lifta:
url = _confLette.ftp_url + fileName;
usr = _confLette.ftp_usr != null ? _confLette.ftp_usr : string.Empty;
pwd = _confLette.ftp_pwd != null ? _confLette.ftp_pwd : string.Empty;
FtpSend(url, usr, pwd, files);
break;
case Clienti.Ferrari:
ip = _confLette.ftp_url!=null ? _confLette.ftp_url : string.Empty;
usr = _confLette.ftp_usr != null ? _confLette.ftp_usr : string.Empty;
pwd = _confLette.ftp_pwd != null ? _confLette.ftp_pwd : string.Empty;
port = _confLette.ftp_port != null ? _confLette.ftp_port : 0;
FileUploadSFTP(files,ip,usr,pwd, port,fileName);
break;
case Clienti.Sarom:
ip = _confLette.ftp_url != null ? _confLette.ftp_url : string.Empty;
usr = _confLette.ftp_usr != null ? _confLette.ftp_usr : string.Empty;
pwd = _confLette.ftp_pwd != null ? _confLette.ftp_pwd : string.Empty;
port = _confLette.ftp_port != null ? _confLette.ftp_port : 0;
FileUploadSFTP(files, ip, usr, pwd, port, fileName);
break;
case Clienti.Sicilia:
url = _confLette.ftp_url + fileName;
usr = _confLette.ftp_usr != null ? _confLette.ftp_usr : string.Empty;
pwd = _confLette.ftp_pwd != null ? _confLette.ftp_pwd : string.Empty;
FtpSend(url, usr, pwd, files);
break;
case Clienti.Discovery:
//ip = _confLette.ftp_url != null ? _confLette.ftp_url : string.Empty;
//usr = _confLette.ftp_usr != null ? _confLette.ftp_usr : string.Empty;
//pwd = _confLette.ftp_pwd != null ? _confLette.ftp_pwd : string.Empty;
//port = _confLette.ftp_port != null ? _confLette.ftp_port : 0;
//FileUploadSFTP(files, ip, usr, pwd, port, fileName);
//url = _confLette.ftp_url + fileName;
usr = _confLette.ftp_usr != null ? _confLette.ftp_usr : string.Empty;
pwd = _confLette.ftp_pwd != null ? _confLette.ftp_pwd : string.Empty;
port = _confLette.ftp_port != null ? _confLette.ftp_port : 0;
//ftp://discoverylift.dyndns.org:21/test.jpg;
url = string.Format("{0}:{1}/{2}", _confLette.ftp_url, port, fileName);
FtpSend(url, usr, pwd, files);
break;
case Clienti.Siet:
url = _confLette.ftp_url + fileName;
usr = _confLette.ftp_usr != null ? _confLette.ftp_usr : string.Empty;
pwd = _confLette.ftp_pwd != null ? _confLette.ftp_pwd : string.Empty;
FtpSend(url, usr, pwd, files);
break;
case Clienti.PMS:
//url = _confLette.ftp_url + fileName;
//usr = _confLette.ftp_usr != null ? _confLette.ftp_usr : string.Empty;
//pwd = _confLette.ftp_pwd != null ? _confLette.ftp_pwd : string.Empty;
//port = _confLette.ftp_port != null ? _confLette.ftp_port : 0;
//ip = _confLette.ftp_url != null ? _confLette.ftp_url : string.Empty;
//FileUploadSFTP(files, ip, usr, pwd, port, fileName);
url = _confLette.ftp_url + fileName;
usr = _confLette.ftp_usr != null ? _confLette.ftp_usr : string.Empty;
pwd = _confLette.ftp_pwd != null ? _confLette.ftp_pwd : string.Empty;
FtpSend(url, usr, pwd, files);
string _esito = CheckFtp(url, usr, pwd);
if(_esito.Equals("KO"))
{
throw new Exception("Buono non depositato !!"+url);
}
break;
case Clienti.VT:
// per VT faccio solo il salvataggio in tabella
//2024-04-08: CONTRORDINE: devo salvare il file perchè il file deve essere depositato nella directory
//dove risiedono le API per poter essere esposto con un url pubblico in modo da poter essere utilizzato dall'app
//(questo per le Immagini azienda che vanno nel logo del buono)
#region inserimento tabella
Buoni model = new Buoni();
model.azienda = ten2;
if (nomefile.Length > 8)
nomefile = nomefile.Substring(0, 8);
model.ser_buono = nomefile;
model.dt_ins = DateTime.Now;
using (MemoryStream ms = new MemoryStream())
{
files.CopyTo(ms);
byte[] array = ms.GetBuffer();
model.immagine = array;
}
using (var transaction = _VT_Buoni.Database.BeginTransaction())
{
await _VT_Buoni.buoni.AddAsync(model);
await _VT_Buoni.SaveChangesAsync();
transaction.Commit();
}
#endregion
break;
case Clienti.LW:
#region inserimento tabella
BuoniLW model2 = new BuoniLW();
model2.azienda = ten;
if (nomefile.Length > 8)
nomefile = nomefile.Substring(0, 8);
model2.ser_buono = nomefile;
model2.dt_ins = DateTime.Now;
using (MemoryStream ms = new MemoryStream())
{
files.CopyTo(ms);
byte[] byteArray = ms.GetBuffer();
string base64String = Convert.ToBase64String(byteArray);
model2.immagine = base64String;
}
//var result = new StringBuilder();
//using (var reader = new StreamReader(files.OpenReadStream()))
//{
// while (reader.Peek() >= 0)
// {
// result.AppendLine(reader.ReadLine());
// }
//}
//model2.immagine = result.ToString();
using (var transaction = _LW_Buoni.Database.BeginTransaction())
{
await _LW_Buoni.buoni.AddAsync(model2);
await _LW_Buoni.SaveChangesAsync();
transaction.Commit();
}
#endregion
break;
case Clienti.Tedesco:
url = _confLette.ftp_url + fileName;
usr = _confLette.ftp_usr != null ? _confLette.ftp_usr : string.Empty;
pwd = _confLette.ftp_pwd != null ? _confLette.ftp_pwd : string.Empty;
FtpSend(url, usr, pwd, files);
break;
case Clienti.Syscom:
#region inserimento tabella
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;
}
using (var transaction = _Sys_Buoni.Database.BeginTransaction())
{
await _Sys_Buoni.buoni.AddAsync(modelsys);
await _Sys_Buoni.SaveChangesAsync();
transaction.Commit();
}
#endregion
break;
default:
break;
}
Console.WriteLine(string.Format("*********** {2} FINE Chiamata al metodo upload: tenant:{0} tenant2: {3} tenantConf: {4} file: {1} tecnico:{5}", ten, nomefile, DateTime.Now.ToString(), ten2, tenConf, tecnico));
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} file: {1} ==> {3}", ten, nomefile, DateTime.Now.ToString(),errMsg));
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<Compo_Impia_Table> 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;
}
/// <summary>Componenti impianto return:ActionResult</summary>
[HttpGet("componenti_impianto")]
public async Task<ActionResult<IEnumerable<Compo_Impia>>> componenti_impianto(string token, string codimp)
{
try
{
string ten = getClaimValueByToken(token, "tenant");
_compo = getComponentiByTenant(ten);
var co = await _compo.Where(
t => t.cocodimp == codimp
).ToListAsync();
return StatusCode(StatusCodes.Status200OK, co);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
}
/// <summary>aggiunge un componente all'impianto. Inserisce in LABSEMICOMIMP return:ActionResult</summary>
[HttpPost]
[Route("componenti_impianto/add")]
public async Task<ActionResult<Compo_Impia_out>> 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;
}
/// <summary>toglie un componente all'impianto. Cancella in LABSEMICOMIMP return:ActionResult</summary>
[HttpPost]
[Route("componenti_impianto/del")]
public async Task<ActionResult<Compo_Impia_out>> 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
/// <summary>Ricerca articoli per impianto return:ActionResult</summary>
[HttpGet("saldi_articolo")]
public async Task<ActionResult<IEnumerable<Saldiart>>> saldi_articolo(string token, string? art, string? desart, string? matric, string? maga,string? codcli, string? codimp )
{
try
{
string ten = getClaimValueByToken(token, "tenant");
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))
{
//List<Saldiart> lista = new List<Saldiart>();
//var codart = co.Where(m => m.amcodice != null && m.amcodice.ToUpper().Contains(matric.ToUpper())).ToList();
//var query = co.Where(p => codart.Any(kw => p..StartsWith(kw)));
//if (codart != null && codart.Count() > 0)
//{
// foreach(Saldiart sa in codart)
// {
// string artTrovato = sa.slcodice;
// co= co.Where(t => t.slcodice != null && t.slcodice.ToUpper().Contains(artTrovato.ToUpper())
// && t.amcodice.ToUpper().Contains(matric.ToUpper())).ToList();
// }
//}
//else
//{
// // devo svuotare l'elenco articoli
// co = co.Take(0).ToList();
//}
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<Mag_New> 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;
}
/// <summary>rapportino per pezzi magazzino. Inserisce in LABSEMAG_NEW return:ActionResult</summary>
[HttpPost]
[Route("rapportini/add")]
public async Task<ActionResult<Mag_New_out>> 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<string, string> dic = new Dictionary<string, string>();
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;
}
/// <summary>Ricerca Impianti return:ActionResult</summary>
[HttpGet("ricerca_impianti")]
public async Task<ActionResult<IEnumerable<Impianto_out>>> 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");
if(ten.Equals(Clienti.VT))
{
ten = ten2;
_impianto = _VT_impia.Impia;
}
else
{
_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<Impianto_out> lis = new List<Impianto_out>();
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);
}
}
/// <summary>Storico interventi return:ActionResult</summary>
[HttpGet("storico_interventi")]
public async Task<ActionResult<IEnumerable<Sto_Rapp_out>>> storico_interventi(string token, string? codimp, bool rapp_tec=true)
{
try
{
string ten = getClaimValueByToken(token, "tenant");
string ten2 = getClaimValueByToken(token, "tenant2");
string tecnico = getClaimValueByToken(token, "tccodice");
if(ten.Equals(Clienti.VT))
{
_sto_rapp = _VT_StoRapp.StoRapp;
ten = ten2;
}
else
{
_sto_rapp = getSto_RappByTenant(ten);
}
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<Sto_Rapp_out> lis = new List<Sto_Rapp_out>();
foreach(Sto_Rapp s in l)
{
Sto_Rapp_out o = new Sto_Rapp_out();
o = fillSto_Rapp_Out(s, ten);
lis.Add(o);
}
return StatusCode(StatusCodes.Status200OK, lis);
}
catch (Exception ex)
{
Sto_Rapp_out e = new Sto_Rapp_out();
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
/// <summary>Anagrafica return:ActionResult</summary>
[HttpGet("anagrafica")]
public async Task<ActionResult<Anag>> 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();
switch (ten)
{
case Clienti.VT:
string ten2 = getClaimValueByToken(token, "tenant2");
_clientiVT = _VT_anag.Anag;
var t = await _clientiVT.Where(
t => t.antipcon.Equals("C")
&& t.andtobso == null
&& t.ancodazi.Equals(ten2)
&& t.ancodice.Equals(codcli)
).ToListAsync();
AnagVT a = t.First();
aa.antipcon = a.antipcon;
aa.ancodice = a.ancodice;
aa.ancodfis = a.ancodfis;
aa.anpariva = a.anpariva;
aa.annumlis = a.annumlis;
aa.an_email = a.an_email;
aa.an_empec = a.an_empec;
aa.andescri = a.andescri;
aa.anindiri = a.anindiri;
aa.annumcel = a.annumcel;
aa.antelefo = a.antelefo;
aa.annumlis = a.annumlis;
break;
default:
_clienti = getClientiByTenant(ten);
var an = await _clienti.Where(t => t.ancodice == codcli).ToListAsync();
aa = an.First();
break;
}
return StatusCode(StatusCodes.Status200OK, aa);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
}
#endregion
#region tabelle di dominio
/// <summary>Tabelle di dominio: causali pagamenti, causali rapportino, tipi esito, tipi intervento return:ActionResult</summary>
[HttpGet("tabelle_dominio")]
public async Task<ActionResult<TabelleDominio>> 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<ComboItem> e = new List<ComboItem>();
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<ComboItem> si = new List<ComboItem>();
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
/// <summary></summary>
private async Task<Timbratura> 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("<b>Imp: </b> " + 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("<b>Imp: <b> " + 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;
}
/// <summary>Commesse return:ActionResult IEnumerable Commessa</summary>
[HttpGet("timbrature/commesse")]
public async Task<ActionResult<IEnumerable<CommesseAdHoc_out>>> commesse(string token)
{
try
{
string ten = getClaimValueByToken(token, "tenant");
string ten2 = getClaimValueByToken(token, "tenant2");
string tecnico = getClaimValueByToken(token, "tccodice");
List<CommesseAdHoc_out> ll = new List<CommesseAdHoc_out>();
if (ten.Equals(Clienti.VT))
{
DbSet<CommesseVT>? _VT_CommesseAppo;
_VT_CommesseAppo = _VT_Comm.Comm;
var lst = _VT_CommesseAppo.Where(t => t.lacodazi != null && t.lacodazi.Equals(ten2)).ToList();
foreach (CommesseVT a in lst)
{
CommesseAdHoc_out c = new CommesseAdHoc_out();
c = formattaCommessaVT(a);
ll.Add(c);
}
}
else if(ten.Equals(Clienti.Marrocco))
{
_comm = getCommesseByTenant(ten);
var l = await _comm.OrderByDescending(t => t.ladatchi).ToListAsync();
List<Commessa> commesse_filtrate = new List<Commessa>();
_commDesc = _Marro_commDesc.Commdesc;
var commesse_tecnico = _commDesc.Where((t => t.latecsup!=null && t.latecsup.Equals(tecnico))).ToList();
foreach(CommessaDesc c in commesse_tecnico)
{
var co = _comm.Where(t => t.laserial.Equals(c.laserial)).ToList();
if(co!=null && co.Count > 0)
{
commesse_filtrate.Add(co.First());
}
}
foreach(Commessa c in commesse_filtrate)
{
CommesseAdHoc_out co = new CommesseAdHoc_out();
co=formattaCommessa(c);
ll.Add(co);
}
}
else
{
_comm = getCommesseByTenant(ten);
var l = await _comm.OrderByDescending(t => t.ladatchi).ToListAsync();
foreach (Commessa c in l)
{
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);
}
}
/// <summary>Salva la timbratuta in tabella Timbrature return:ActionResult Timbratura_out</summary>
[HttpPost]
[Route("timbrature/salva")]
public async Task<ActionResult<Timbratura_out>> 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<string, string> dic = new Dictionary<string, string>();
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;
}
/// <summary>Storico rapportini tecnico return:ActionResult di Sto_Imp_out</summary>
[HttpGet("storico_impianto")]
public async Task<ActionResult<IEnumerable<Sto_Imp_out>>> storico_impianto(string token, string? codimp /*,bool rapp_tec = true*/)
{
try
{
string ten = getClaimValueByToken(token, "tenant");
string tecnico = getClaimValueByToken(token, "tccodice");
_sto_imp = getStoricoImpiantoByTenant(ten);
//var l = await _rapportini.Where(t => t.raaziimp != null && t.raaziimp.Equals(ten) && t.racodte1 != null && t.racodte1.Trim().Equals(tecnico.Trim())).ToListAsync();
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<Sto_Imp_out> lis = new List<Sto_Imp_out>();
foreach (Sto_Imp s in l)
{
Sto_Imp_out o = new Sto_Imp_out();
o = fillSto_Imp_Out(s, ten);
lis.Add(o);
}
return StatusCode(StatusCodes.Status200OK, lis);
}
catch (Exception ex)
{
Sto_Imp_out e = new Sto_Imp_out();
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;
/// <summary>Ricerca Commessa return:ActionResult</summary>
[HttpGet("ricerca_commessa_impianto")]
public async Task<ActionResult<IEnumerable<Output_Ricerca>>> 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<Output_Ricerca> lis = new List<Output_Ricerca>();
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");
if (ten.Equals(Clienti.VT))
{
string ten2= getClaimValueByToken(token, "tenant2");
_VT_Commesse = _VT_Comm.Comm;
var l = await _VT_Commesse.Where(t=>t.lacodazi.Equals(ten2)).ToListAsync();
if (!string.IsNullOrEmpty(codimp))
{
l = l.Where(t => t.imcodimp != null && t.imcodimp.Contains(codimp)).ToList();
}
if (!string.IsNullOrEmpty(indirizzo_imp))
{
l = l.Where(t => t.imindiri2 != null && t.imindiri2.ToUpper().Contains(indirizzo_imp.ToUpper())).ToList();
}
if (!string.IsNullOrEmpty(cli))
{
l = l.Where(t => t.andescri != null && t.andescri.ToUpper().Contains(cli.ToUpper())).ToList();
}
if (!string.IsNullOrEmpty(comm))
{
l = l.Where(t => t.lacodcom != null && t.lacodcom.ToUpper().Contains(comm.ToUpper())).ToList();
}
l = l.Take(300).ToList();
foreach (CommesseVT i in l)
{
Output_Ricerca o = new Output_Ricerca();
o = fillOutputRicercaVT(i);
lis.Add(o);
}
st = StatusCodes.Status200OK;
}
else
{
//string ten = getClaimValueByToken(token, "tenant");
_comm = getCommesseByTenant(ten);
var l = await _comm.ToListAsync();
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;
//}
//return StatusCode(StatusCodes.Status200OK, lis);
}
}
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");
if (ten.Equals(Clienti.VT))
{
string ten2 = getClaimValueByToken(token, "tenant2");
var l = await _VT_impia.Impia.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten2)).ToListAsync();
if (!string.IsNullOrEmpty(codimp))
{
l = l.Where(t => t.imcodimp != null && t.imcodimp.Contains(codimp)).ToList();
}
if (!string.IsNullOrEmpty(indirizzo_imp))
{
l = l.Where(t => t.imindiri2 != null && t.imindiri2.ToUpper().Contains(indirizzo_imp.ToUpper())).ToList();
}
l = l.Take(300).ToList();
foreach (Impianto i in l)
{
Output_Ricerca o = new Output_Ricerca();
o = fillOutputRicercaByImpianto(i);
lis.Add(o);
}
st = StatusCodes.Status200OK;
}
else
{
_impianto = getImpiantiByTenant(ten);
var l = await _impianto.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten)).ToListAsync();
if (!string.IsNullOrEmpty(codimp))
{
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);
}
/// <summary>Ricerca Commessa NUOVAreturn:ActionResult</summary>
[HttpGet("ricerca_commessa_impianto2")]
public async Task<ActionResult<IEnumerable<Output_Ricerca>>> 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");
if (string.IsNullOrEmpty(ten))
{
ten = tenConf;
}
//Console.WriteLine(string.Format("*********** {2} INIZIO Chiamata al metodo ricerca_commessa_impianto2: tipo:{0} file: {1} ", ten, tipo, DateTime.Now.ToString()));
//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<Output_Ricerca> lis = new List<Output_Ricerca>();
switch (tipo)
{
case 1:
#region ricerca commessa
try
{
if (ten.Equals(Clienti.VT))
{
_VT_Commesse = _VT_Comm.Comm;
var l = await _VT_Commesse.Where(t => t.lacodazi.Equals(ten2)).ToListAsync();
if (!string.IsNullOrEmpty(codimp))
{
l = l.Where(t => t.imcodimp != null && t.imcodimp.ToUpper().Contains(codimp.ToUpper())).ToList();
}
if (!string.IsNullOrEmpty(indirizzo_imp))
{
l = l.Where(t => t.imindiri2 != null && t.imindiri2.ToUpper().Contains(indirizzo_imp.ToUpper())).ToList();
}
if (!string.IsNullOrEmpty(cli))
{
l = l.Where(t => t.andescri != null && t.andescri.ToUpper().Contains(cli.ToUpper())).ToList();
}
if (!string.IsNullOrEmpty(comm))
{
l = l.Where(t => t.lacodcom != null && t.lacodcom.ToUpper().Contains(comm.ToUpper())).ToList();
}
l = l.Take(300).ToList();
foreach (CommesseVT i in l)
{
Output_Ricerca o = new Output_Ricerca();
o = fillOutputRicercaVT(i);
lis.Add(o);
}
st = StatusCodes.Status200OK;
}
else
{
//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;
//}
//return StatusCode(StatusCodes.Status200OK, lis);
}
}
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
{
//string ten = getClaimValueByToken(token, "tenant");
if (ten.Equals(Clienti.VT))
{
var l = await _VT_impia.Impia.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten2)).ToListAsync();
if (!string.IsNullOrEmpty(codimp))
{
l = l.Where(t => t.imcodimp != null && t.imcodimp.ToUpper().Contains(codimp.ToUpper())).ToList();
}
if (!string.IsNullOrEmpty(indirizzo_imp))
{
l = l.Where(t => t.imindiri2 != null && t.imindiri2.ToUpper().Contains(indirizzo_imp.ToUpper())).ToList();
}
l = l.Take(300).ToList();
foreach (Impianto i in l)
{
Output_Ricerca o = new Output_Ricerca();
o = fillOutputRicercaByImpianto(i);
lis.Add(o);
}
st = StatusCodes.Status200OK;
}
else
{
_impianto = getImpiantiByTenant(ten);
var l = await _impianto.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten)).ToListAsync();
if (!string.IsNullOrEmpty(codimp))
{
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
if (ten.Equals(Clienti.VT))
{
var l = await _VT_impia.Impia.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten2)).ToListAsync();
if (!string.IsNullOrEmpty(cli))
{
l = l.Where(t => t.descCliente != null && t.descCliente.ToUpper().Contains(cli.ToUpper())).ToList();
}
l = l.Take(300).ToList();
foreach (Impianto i in l)
{
Output_Ricerca o = new Output_Ricerca();
o = fillOutputRicercaByImpianto(i);
lis.Add(o);
}
st = StatusCodes.Status200OK;
}
else
{
_impianto = getImpiantiByTenant(ten);
var l = await _impianto.Where(t => t.imcodazi != null && t.imcodazi.Equals(ten)).ToListAsync();
if (!string.IsNullOrEmpty(cli))
{
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)
{
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;
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);
}
/// <summary>Salva la timbratuta in tabella Timbrature return:ActionResult Timbratura_out</summary>
[HttpPost]
[Route("chiamata/inserisci")]
public async Task<ActionResult<Chiamate_out>> 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
switch (ten)
{
case Clienti.Sicilia:
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;
break;
case Clienti.Marrocco:
case Clienti.Gitoga:
case Clienti.Lifta:
cpwarnNumChiamata = await leggiCpwarnProg(ten, "prog\\NUMCHI\\", esercizio);
progChiamata = Convert.ToString(cpwarnNumChiamata.autonum);
tablecodeProg = cpwarnNumChiamata.tablecode;
warncodeProg = cpwarnNumChiamata.warncode;
_chiamateser = getChiamateSerialeByTenant(ten);
serialeChiamata = _chiamateser.First().pinumero;
break;
case Clienti.Siet:
cpwarnNumChiamata = await leggiCpwarnProg(ten, "prog\\NUMCHI\\", esercizio);
progChiamata = Convert.ToString(cpwarnNumChiamata.autonum);
tablecodeProg = cpwarnNumChiamata.tablecode;
warncodeProg = cpwarnNumChiamata.warncode;
cpwarnSeriale = await leggiCpwarnSeriale(ten, "prog\\SERCHI\\");
serialeChiamata = Convert.ToString(cpwarnSeriale.autonum);
tablecodeSer = cpwarnSeriale.tablecode;
warncodeSer = cpwarnSeriale.warncode;
break;
case Clienti.PMS:
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;
break;
case Clienti.LW:
//passo il tablecode senza la prima parte
cpwarnNumChiamataDecimal = await leggiCpwarnProgDecimal(ten, "NUMCHI", esercizio);
//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, "SERCHI");
serialeChiamata = Convert.ToString(cpwarnSerialeDecimal.autonum);
tablecodeSer = cpwarnSerialeDecimal.tablecode;
warncodeSer = cpwarnSerialeDecimal.warncode;
serialeLetto = cpwarnSerialeDecimal.autonum;
break;
case Clienti.Tedesco:
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;
break;
case Clienti.VT:
//string ten2 = getClaimValueByToken(token, "tenant2");
_VT_prog = _VT_progtable.progr;
var t = await _VT_prog.Where(t => t.azienda.Equals(ten2)).ToListAsync();
foreach (Progressivo ch in t)
{
string tipoprog = string.Empty;
tipoprog = ch.tipo_prog;
int? val = 0;
val = ch.val_prog;
if(!string.IsNullOrEmpty(tipoprog) && tipoprog.Equals("NUM_CHIAMA"))
{
progChiamata= Convert.ToString(val);
progressivoLetto = val;
}
if (!string.IsNullOrEmpty(tipoprog) && tipoprog.Equals("SER_CHIAMA"))
{
serialeChiamata = Convert.ToString(val);
serialeLetto = val;
}
}
break;
case Clienti.Syscom:
cpwarnNumChiamataDecimal = await leggiCpwarnProgDecimal(ten, "prog\\NUMCHI\\", esercizio);
progChiamata = Convert.ToString(cpwarnNumChiamataDecimal.autonum);
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;
break;
}
//inserisco
//2024-04-23: codice_commessa posto a nullable (quando inserisco una chiamata selezionando solo l'impianto)
//gestisco la ricerca del seriale
string serial_comm = string.Empty;
switch (ten)
{
case Clienti.VT:
if (!string.IsNullOrEmpty(codice_commessa))
{
serial_comm = await leggiSerialeByCodCommessaVT(ten2, codice_commessa);
}
tOut.uscita = await inserimentoChiamata2(ten, tecnico, codimp, serialeChiamata, progChiamata, serial_comm,ten2, tenConf);
break;
default:
if(!string.IsNullOrEmpty(codice_commessa))
{
serial_comm = await leggiSerialeByCodCommessa(ten, codice_commessa);
}
//tOut.uscita = await inserimentoChiamata2(ten, tecnico, codimp, serialeChiamata, progChiamata, serial_comm,ten);
tOut.uscita = await inserimentoChiamata2(tenConf, tecnico, codimp, serialeChiamata, progChiamata, serial_comm, ten, tenConf);
break;
}
//aggiornamento seriali e progressivi
string serialeUpdate = string.Empty;
float numeroUpdate = 0;
switch (ten)
{
case Clienti.Sicilia:
//aggiornamento tabella con decimal
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);
break;
case Clienti.Marrocco:
case Clienti.Gitoga:
case Clienti.Lifta:
serialeUpdate = tOut.uscita.chserial;
tOut.chiaser_Out = await aggiornaSeriale(ten, serialeUpdate);
numeroUpdate = (float)tOut.uscita.chnumero;
tOut.prog_Out = await aggiornaprogressivo(ten, numeroUpdate, tablecodeProg, warncodeProg);
break;
case Clienti.Siet:
serialeUpdate = tOut.uscita.chserial;
decimal ss = Convert.ToDecimal(serialeUpdate);
float zz = (float)ss;
tOut.prog_Out = await aggiornaprogressivo(ten, zz, tablecodeSer, warncodeSer);
numeroUpdate = (float)tOut.uscita.chnumero;
tOut.prog_Out = await aggiornaprogressivo(ten, numeroUpdate, tablecodeProg, warncodeProg);
break;
case Clienti.PMS:
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);
break;
case Clienti.LW:
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);
break;
case Clienti.Tedesco:
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);
break;
case Clienti.VT:
serialeLetto = serialeLetto + 1;
int val = Convert.ToInt32(serialeLetto);
await aggiornaprogressivoVT(ten2, "SER_CHIAMA", val);
serialeUpdate = tOut.uscita.chserial;
progressivoLetto = progressivoLetto + 1;
val = Convert.ToInt32(progressivoLetto);
await aggiornaprogressivoVT(ten2, "NUM_CHIAMA", val);
break;
case Clienti.Syscom:
serialeUpdate = tOut.uscita.chserial;
serialeLetto = serialeLetto + 1;
tOut.prog_Out = await aggiornaprogressivoDecimal(ten, serialeLetto, tablecodeSer, warncodeSer);
progressivoLetto = progressivoLetto + 1;
tOut.prog_Out = await aggiornaprogressivoDecimal(ten, progressivoLetto, tablecodeProg, warncodeProg);
break;
}
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);
}
//return tOut;
}
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("<b>Comm: <b>" + commessa);
if (!string.IsNullOrEmpty(i.imcodimp))
{
sb.AppendLine("<b>Imp: <b>" + i.imcodimp);
}
if (!string.IsNullOrEmpty(i.andescri))
{
string appoCli = i.andescri;
appoCli = appoCli.Substring(0, 25);
sb.AppendLine("<b>Cli <b>" + appoCli);
}
r.itemList = sb.ToString();
sb.Clear();
return r;
}
private Output_Ricerca fillOutputRicercaVT(CommesseVT 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("<b>Comm: <b>" + commessa);
if (!string.IsNullOrEmpty(i.imcodimp))
{
sb.AppendLine("<b>Imp: <b>" + i.imcodimp);
}
if (!string.IsNullOrEmpty(i.andescri))
{
string appoCli = i.andescri;
appoCli = appoCli.Substring(0, 25);
sb.AppendLine("<b>Cli <b>" + 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("<b>Imp: <b>" + 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;
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);
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 async Task<ChiamateTableTaskManager> fillChiamateTableTaskManagerInput(ChiamateTableTaskManager i, string codimp, string tecnico, string tenant, string serialeLetto, string progLetto, string seriale_commessa)
{
DateTime adesso = DateTime.Now;
ChiamateTableTaskManager o = new ChiamateTableTaskManager();
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;
string _cli = string.Empty;
_cli = await getCodCliByImp(tenant, codimp);
o.cliente = _cli;
return o;
}
private async Task<string> getCodCliByImp(string tenant, string codiceImpianto)
{
string codiceCliente = string.Empty;
switch (tenant)
{
case Clienti.LW:
_impianto = _LW_impianti.Impia;
break;
case Clienti.Syscom:
_impianto = _Sys_impianti.Impia;
break;
default:
// code block
break;
}
var i = await _impianto.Where(t => t.imcodimp!=null && t.imcodimp.Equals(codiceImpianto)).ToListAsync();
if(i!=null)
{
codiceCliente = i.First().imultcli;
}
return codiceCliente;
}
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<Chiamate_out> 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<ChiamateTable>();
var ttTaskManager = new List<ChiamateTableTaskManager>();
if (string.IsNullOrEmpty(ten))
{
ten = tenConf;
}
if (!ten.Equals(ten2))
{
ten = ten2;
}
_chiatable = getChiamateTableByTenant(ten);
_chiatableTaskManager = getChiamateTableTaskManagerByTenant(ten);
switch (ten)
{
case Clienti.VT:
_confLette = await readConf(ten2);
serialeTemplate = _confLette.seriale_template_chi;
tt = await _chiatable.Where(t => t.chcodazi != null && t.chcodazi.Equals(ten2) && t.chserial != null && t.chserial.Equals(serialeTemplate)).ToListAsync();
break;
case Clienti.LW:
case Clienti.Syscom:
_confLette = await readConf(tenConf);
serialeTemplate = _confLette.seriale_template_chi;
ttTaskManager = await _chiatableTaskManager.Where(t => t.chcodazi != null && t.chcodazi.Equals(ten2) && t.chserial != null && t.chserial.Equals(serialeTemplate)).ToListAsync();
break;
default:
_confLette = await readConf(tenConf);
serialeTemplate = _confLette.seriale_template_chi;
tt = await _chiatable.Where(t => t.chcodazi != null && t.chcodazi.Equals(ten) && t.chserial != null && t.chserial.Equals(serialeTemplate)).ToListAsync();
break;
}
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);
switch (ten)
{
case Clienti.LW:
case Clienti.Syscom:
var chiamata_newTM = _chiamate.Where(x => x.chserial.Equals(tm.chserial)).FirstOrDefault();
c = fillChiamateOut(chiamata_newTM, ten);
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<Chiamate_out> 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);
switch (ten)
{
case Clienti.Marrocco:
using (var transaction = _Marro_rapp.Database.BeginTransaction())
{
await _Marro_rapp.Rapps.AddAsync(r);
await _Marro_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Ferrari:
using (var transaction = _Ferra_rapp.Database.BeginTransaction())
{
await _Ferra_rapp.Rapps.AddAsync(r);
await _Ferra_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Sicilia:
using (var transaction = _Sicilia_rapp.Database.BeginTransaction())
{
await _Sicilia_rapp.Rapps.AddAsync(r);
await _Sicilia_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Discovery:
using (var transaction = _Disco_rapp.Database.BeginTransaction())
{
await _Disco_rapp.Rapps.AddAsync(r);
await _Disco_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Sarom:
using (var transaction = _Sarom_rapp.Database.BeginTransaction())
{
await _Sarom_rapp.Rapps.AddAsync(r);
await _Sarom_rapp.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Gitoga:
using (var transactionGit = _Gitoga_rapp.Database.BeginTransaction())
{
await _Gitoga_rapp.Rapps.AddAsync(r);
await _Gitoga_rapp.SaveChangesAsync();
transactionGit.Commit();
}
break;
case Clienti.Lifta:
using (var transactionLif = _Lifta_rapp.Database.BeginTransaction())
{
await _Lifta_rapp.Rapps.AddAsync(r);
await _Lifta_rapp.SaveChangesAsync();
transactionLif.Commit();
}
break;
case Clienti.Siet:
using (var transactionSiet = _Siet_rapp.Database.BeginTransaction())
{
await _Siet_rapp.Rapps.AddAsync(r);
await _Siet_rapp.SaveChangesAsync();
transactionSiet.Commit();
}
break;
case Clienti.PMS:
using (var transactionPMS = _Pms_rapp.Database.BeginTransaction())
{
await _Pms_rapp.Rapps.AddAsync(r);
await _Pms_rapp.SaveChangesAsync();
transactionPMS.Commit();
}
break;
case Clienti.VT:
using (var transactionvt = _VT_rapptable.Database.BeginTransaction())
{
await _VT_rapptable.Rapps.AddAsync(r);
await _VT_rapptable.SaveChangesAsync();
transactionvt.Commit();
}
break;
default:
break;
}
//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<ChiamataSeriale_out> aggiornaSeriale(string tenant, string nuovoSeriale)
{
ChiamataSeriale_out cso = new ChiamataSeriale_out();
string cpcccchk = getCpccchk(10);
switch (tenant)
{
case Clienti.Marrocco:
using (var transaction = _Marro_chiaser.Database.BeginTransaction())
{
ChiamataSeriale entitasViewModel = _chiamateser.Where(p => p.piditta.Equals(tenant)).FirstOrDefault();
entitasViewModel.pinumero = nuovoSeriale;
entitasViewModel.cpccchk = cpcccchk;
_Marro_chiaser.Entry(entitasViewModel).State = EntityState.Modified;
await _Marro_chiaser.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Gitoga:
using (var transaction = _Gitoga_chiaser.Database.BeginTransaction())
{
ChiamataSeriale entitasViewModel = _chiamateser.Where(p => p.piditta.Equals(tenant)).FirstOrDefault();
entitasViewModel.pinumero = nuovoSeriale;
entitasViewModel.cpccchk = cpcccchk;
_Gitoga_chiaser.Entry(entitasViewModel).State = EntityState.Modified;
await _Gitoga_chiaser.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Lifta:
using (var transaction = _Lifta_chiaser.Database.BeginTransaction())
{
ChiamataSeriale entitasViewModel = _chiamateser.Where(p => p.piditta.Equals(tenant)).FirstOrDefault();
entitasViewModel.pinumero = nuovoSeriale;
entitasViewModel.cpccchk = cpcccchk;
_Lifta_chiaser.Entry(entitasViewModel).State = EntityState.Modified;
await _Lifta_chiaser.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Siet:
using (var transactionSiet = _Siet_chiaser.Database.BeginTransaction())
{
ChiamataSeriale entitasViewModel = _chiamateser.Where(p => p.piditta.Equals(tenant)).FirstOrDefault();
entitasViewModel.pinumero = nuovoSeriale;
entitasViewModel.cpccchk = cpcccchk;
_Siet_chiaser.Entry(entitasViewModel).State = EntityState.Modified;
await _Siet_chiaser.SaveChangesAsync();
transactionSiet.Commit();
}
break;
case Clienti.Sicilia:
using (var transactionSicilia = _Sicilia_chiaser.Database.BeginTransaction())
{
ChiamataSeriale entitasViewModel = _chiamateser.Where(p => p.piditta.Equals(tenant)).FirstOrDefault();
entitasViewModel.pinumero = nuovoSeriale;
entitasViewModel.cpccchk = cpcccchk;
_Sicilia_chiaser.Entry(entitasViewModel).State = EntityState.Modified;
await _Sicilia_chiaser.SaveChangesAsync();
transactionSicilia.Commit();
}
break;
default:
break;
}
return cso;
}
private async Task<Prog_out> aggiornaprogressivo(string tenant, float nuovoProg,string tablecode,string warncode)
{
Prog_out cso = new Prog_out();
string cpcccchk = getCpccchk(10);
switch (tenant)
{
case Clienti.Marrocco:
case Clienti.Gitoga:
case Clienti.Lifta:
using (var transaction = _Marro_chiaprog.Database.BeginTransaction())
{
Prog entitasViewModel = _chiamateprogr.Where(p => p.tablecode.Equals(tablecode)&& p.warncode.Equals(warncode)).FirstOrDefault();
entitasViewModel.autonum = nuovoProg;
entitasViewModel.cpccchk = cpcccchk;
_Marro_chiaprog.Entry(entitasViewModel).State = EntityState.Modified;
await _Marro_chiaprog.SaveChangesAsync();
transaction.Commit();
}
break;
case Clienti.Siet:
using (var transactionSiet = _Siet_chiaprog.Database.BeginTransaction())
{
Prog entitasViewModel = _chiamateprogr.Where(p => p.tablecode.Equals(tablecode) && p.warncode.Equals(warncode)).FirstOrDefault();
entitasViewModel.autonum = nuovoProg;
entitasViewModel.cpccchk = cpcccchk;
_Siet_chiaprog.Entry(entitasViewModel).State = EntityState.Modified;
await _Siet_chiaprog.SaveChangesAsync();
transactionSiet.Commit();
}
break;
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 = Convert.ToDecimal( nuovoProg);
entitasViewModel.cpccchk = cpcccchk;
_Sicilia_cpwarn.Entry(entitasViewModel).State = EntityState.Modified;
await _Sicilia_cpwarn.SaveChangesAsync();
transactionSicilia.Commit();
}
break;
default:
break;
}
return cso;
}
private async Task<Prog_out> aggiornaprogressivoDecimal(string tenant, decimal? nuovoProg, string tablecode, string warncode)
{
Prog_out cso = new Prog_out();
string cpcccchk = getCpccchk(10);
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<Progressivo_out> aggiornaprogressivoVT(string tenant, string tipoProg, int valore)
{
Progressivo_out cso = new Progressivo_out();
string cpcccchk = getCpccchk(10);
Progressivo model = new Progressivo();
//model.tipo_prog = tipoProg;
//model.azienda = tenant;
//model.val_prog = valore;
var p =await _VT_progtable.progr.Where(t => t.azienda.Equals(tenant) && t.tipo_prog.Equals(tipoProg)).ToListAsync();
model = p.FirstOrDefault();
model.val_prog = valore;
try
{
using (var transaction = _VT_progtable.Database.BeginTransaction())
{
_VT_progtable.Entry(model).State = EntityState.Modified;
await _VT_progtable.SaveChangesAsync();
transaction.Commit();
}
cso.azienda = model.azienda;
cso.tipo_prog = model.tipo_prog;
cso.val_prog = model.val_prog;
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
cso.err_detail = errmsg;
}
return cso;
}
private async Task<Prog> leggiCpwarnSeriale(string tenant, string tablecode)
{
//autorun float
_chiamateprogr = getChiamateProgressiviByTenant(tenant);
var cpwarn = await _chiamateprogr.Where(p => p.tablecode != null && p.tablecode.Contains(tablecode) && p.tablecode.Contains(tenant)).FirstAsync();
return cpwarn;
}
private async Task<Prog> leggiCpwarnProg(string tenant, string tablecode, string codiceEsercizio)
{
//autorun float
_chiamateprogr = getChiamateProgressiviByTenant(tenant);
var cpwarn = await _chiamateprogr.Where(p => p.tablecode != null && p.tablecode.Contains(tablecode) && p.tablecode.Contains(codiceEsercizio) && p.tablecode.Contains(tenant)).FirstAsync();
return cpwarn;
}
private async Task<Prog2> 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<Prog2> 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<string> 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;
}
private async Task<string> leggiSerialeByCodCommessaVT(string tenant, string codice_commessa)
{
string serial = string.Empty;
_VT_Commesse = _VT_Comm.Comm;
//var t = await _VT_Commesse.Where(t => t.lacodazi.Equals(tenant)).ToListAsync();
var ser = await _VT_Commesse.Where(p => p.lacodcom != null && p.lacodcom.Equals(codice_commessa) && p.lacodazi.Equals(tenant)).FirstAsync();
serial = ser.laserial;
return serial;
}
#endregion
#region VIRTUAL TASK
/// <summary>Login iniziale return:ActionResult</summary>
[HttpPost("loginTechnicalVT")]
public async Task<ActionResult<LoginOut>> loginTechnicalVT([FromBody] LoginModel model)
{
LoginOut o = new LoginOut();
try
{
if (string.IsNullOrEmpty(model.Username) || string.IsNullOrEmpty(model.Password))
{
o.err_detail = "Username e Password non possono essere vuoti.";
o.err_title = "Username e Password non possono essere vuoti.";
o.err_status_code = StatiRisposta.OperazioneNonAmmessa;
return StatusCode(StatusCodes.Status200OK, o);
}
else
{
_tecnici = _VT_tecnici.Tecnici;
//var tecnico = await _tecnici.Where(t => t.tcuser.Trim() == model.Username.Trim() && t.tcpwd.Trim() == model.Password.Trim() && t.tccodazi == model.Tenant).Take(1).ToListAsync();
//var tecnico = await _tecnici.Where(t => t.tcuser == model.Username && t.tcpwd == model.Password && t.tccodazi == model.Tenant).Take(1).ToListAsync();
var tecnico = await _tecnici.Where(t => t.tcuser == model.Username && t.tcpwd == model.Password && t.tccodute==1).Take(1).ToListAsync();
if (tecnico == null || (tecnico != null && tecnico.Count == 0))
{
o.err_detail = "Username o Password non trovati.";
o.err_title = "Username o Password non trovati.";
o.err_status_code = StatiRisposta.OperazioneNonAmmessa;
return StatusCode(StatusCodes.Status404NotFound, o);
}
else
{
var authClaims = new List<Claim>
{
new Claim(ClaimTypes.Name, model.Username),
new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
new Claim("tenant", model.Tenant),
new Claim("tenant2", tecnico.First().tccodazi),
new Claim("tccodice", tecnico.First().tccodice),
};
var authSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JWT:Secret"]));
var token = new JwtSecurityToken(
issuer: _configuration["JWT:ValidIssuer"],
audience: _configuration["JWT:ValidAudience"],
expires: DateTime.Now.AddMonths(3),
claims: authClaims,
signingCredentials: new SigningCredentials(authSigningKey, SecurityAlgorithms.HmacSha256)
);
string tok = new JwtSecurityTokenHandler().WriteToken(token);
_token = tok;
o.Tok = tok;
o.Tcdescri = tecnico.First().Tcdescri;
o.Tccodice = tecnico.First().tccodice;
o.Tcsuper = tecnico.First().tcsuper;
o.Tenant = tecnico.First().tccodazi;
//o.tciden = tecnico.First().tciden;
Conf cc = new Conf();
//le configurazioni devono essere lette per tenant 2 non per VIRTU
//_confLette = await readConf(model.Tenant);
_confLette = await readConf(tecnico.First().tccodazi);
cc.abilita_naviga = _confLette.abilita_naviga;
cc.abilita_telefona = _confLette.abilita_telefona;
cc.abilita_chiamate = _confLette.abilita_chiamate;
cc.abilita_barcode = _confLette.abilita_barcode;
cc.abilita_manutenzioni = _confLette.abilita_manutenzioni;
cc.chiamate_accetta = _confLette.chiamate_accetta;
cc.chiamate_accetta_barcode = _confLette.chiamate_accetta_barcode;
cc.chiamate_accetta_offline = _confLette.chiamate_accetta_offline;
cc.chiamate_rifiuta = _confLette.chiamate_rifiuta;
cc.chiamate_rifiuta_barcode = _confLette.chiamate_rifiuta_barcode;
cc.chiamate_rifiuta_offline = _confLette.chiamate_rifiuta_offline;
cc.chiamate_chiudi_barcode = _confLette.chiamate_chiudi_barcode;
cc.chiamate_firma_barcode = _confLette.chiamate_firma_barcode;
cc.chiamate_chiudi_salva_barcode = _confLette.chiamate_chiudi_salva_barcode;
cc.chiamate_chiudi_salva_offline = _confLette.chiamate_chiudi_salva_offline;
cc.manutenzioni_accetta = _confLette.manutenzioni_accetta;
cc.manutenzioni_rifiuta = _confLette.manutenzioni_rifiuta;
cc.manutenzioni_accetta_barcode = _confLette.manutenzioni_accetta_barcode;
cc.manutenzioni_accetta_offline = _confLette.manutenzioni_accetta_offline;
cc.manutenzioni_chiudi_barcode = _confLette.manutenzioni_chiudi_barcode;
cc.manutenzioni_firma_barcode = _confLette.manutenzioni_firma_barcode;
cc.manutenzioni_chiudi_salva_barcode = _confLette.manutenzioni_chiudi_salva_barcode;
cc.manutenzioni_chiudi_salva_offline = _confLette.manutenzioni_chiudi_salva_offline;
cc.dpi_checkbox = _confLette.dpi_checkbox;
cc.anagrafica = _confLette.anagrafica;
cc.stato_finale = _confLette.stato_finale;
cc.descrizione_intervento = _confLette.descrizione_intervento;
cc.composizione_impianto = _confLette.composizione_impianto;
cc.note_intervento = _confLette.note_intervento;
cc.esito_intervento = _confLette.esito_intervento;
cc.ora_inizio_fine = _confLette.ora_inizio_fine;
cc.materiali = _confLette.materiali;
cc.diritto_chiamata = _confLette.diritto_chiamata;
cc.manodopera = _confLette.manodopera;
cc.spese_viaggio = _confLette.spese_viaggio;
cc.tipo_pagamento = _confLette.tipo_pagamento;
cc.note_pagamento = _confLette.note_pagamento;
cc.causale = _confLette.causale;
cc.time_sheet = _confLette.time_sheet;
cc.time_sheet_offline = _confLette.time_sheet_offline;
cc.costo_orario = _confLette.costo_orario;
cc.ftp_port = _confLette.ftp_port;
cc.manutenzioni_rifiuta_barcode = _confLette.manutenzioni_rifiuta_barcode;
cc.storico = _confLette.storico;
cc.storico_tecnico = _confLette.storico_tecnico;
cc.storico_interventi = _confLette.storico_interventi;
cc.storico_impianto = _confLette.storico_impianto;
cc.ricerca_impianti = _confLette.ricerca_impianti;
cc.ora_inizio_fine_automatica = _confLette.ora_inizio_fine_automatica;
cc.stampa_orario = _confLette.stampa_orario;
cc.intestazione_stampa = _confLette.intestazione_stampa;
cc.seriale_template_chi = _confLette.seriale_template_chi;
cc.abilita_inserimento_chiamate = _confLette.abilita_inserimento_chiamate;
o.Config = cc;
//cerco le aziende collegate
List<AziendaRif> l = new List<AziendaRif>();
string ten = model.Tenant;
bool bCercaAzcoll = false;
switch (ten)
{
case Clienti.Discovery:
bCercaAzcoll = true;
break;
}
if (bCercaAzcoll)
{
_azi_coll = getAziendeRifByTenant(ten);
var a = await _azi_coll.Where(t => t.piazihoc != null && t.piazihoc.Equals(ten) && t.picodtec != null && t.picodtec.Trim().Equals(o.Tccodice.Trim())).ToListAsync();
if (a.Any())
{
foreach (AziendaRif appo in a)
{
string logo = !string.IsNullOrEmpty(appo.pilogurl) ? appo.pilogurl.Trim() : string.Empty;
//var uriBuilder = new UriBuilder(Request.Scheme, Request.Host.Host, Request.Host.Port ?? -1);
//logo = uriBuilder + logo;
appo.pilogurl = logo;
l.Add(appo);
}
}
}
o.aziende_coll = l;
}
return StatusCode(StatusCodes.Status200OK, o);
}
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
o.err_detail = err;
o.err_title = err;
o.err_status_code = StatiRisposta.ErroreInterno;
return StatusCode(StatusCodes.Status500InternalServerError, o);
}
}
/// <summary>VIRTUAL TASK: Tecnici per azienda</summary>
[HttpGet("tecniciList")]
public async Task<ActionResult<IEnumerable<TecniciTable>>> tecniciList(string token)
{
try
{
List<TecniciTable> ilist = new List<TecniciTable>();
string ten = getClaimValueByToken(token, "tenant2");
string tecnico = getClaimValueByToken(token, "tccodice");
_tecTable = _VT_tectable.Tectable;
var t = await _tecTable.Where(
t => t.tccodazi.Equals(ten)
&& t.tcuser != null
).ToListAsync();
foreach (TecniciTable ch in t)
{
ilist.Add(ch);
}
return StatusCode(StatusCodes.Status200OK, ilist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>VIRTUAL TASK: Tecnici per azienda</summary>
[HttpGet("tecniciListAll")]
public async Task<ActionResult<IEnumerable<TecniciTable>>> tecniciListAll(string usr,string pwd)
{
try
{
List<TecniciTable> ilist = new List<TecniciTable>();
_tecTable = _VT_tectable.Tectable;
var t = await _tecTable.Where(
t => t.tcpwd.Equals(pwd)
&& t.tcuser.Equals(usr)
).ToListAsync();
foreach (TecniciTable ch in t)
{
ilist.Add(ch);
}
return StatusCode(StatusCodes.Status200OK, ilist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>VIRTUAL TASK: crea un tecnico return:ActionResult</summary>
[HttpPost]
[Route("tecnici/add")]
public async Task<ActionResult<TecniciTable>> addtecnico([FromBody] TecniciTable model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.tccodazi = ten;
try
{
using (var transaction = _VT_tectable.Database.BeginTransaction())
{
await _VT_tectable.Tectable.AddAsync(model);
await _VT_tectable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: cancella un tecnico return:ActionResult</summary>
[HttpPost]
[Route("tecnici/del")]
public async Task<ActionResult<TecniciTable>> deltecnico(string codice, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
_tecTable = _VT_tectable.Tectable;
var t = await _tecTable.Where(t => t.tccodice == codice && t.tccodazi == ten).ToListAsync();
TecniciTable model = t.First();
model.tcdatobs = DateTime.Now;
try
{
using (var transaction = _VT_tectable.Database.BeginTransaction())
{
_VT_tectable.Entry(model).State = EntityState.Modified;
await _VT_tectable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: modifica un tecnico return:ActionResult</summary>
[HttpPost]
[Route("tecnici/mod")]
public async Task<ActionResult<TecniciTable>> modtecnico([FromBody] TecniciTable model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.tccodazi = ten;
try
{
using (var transaction = _VT_tectable.Database.BeginTransaction())
{
_VT_tectable.Entry(model).State = EntityState.Modified;
await _VT_tectable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: Codici di chiusura</summary>
[HttpGet("chiusureVtList")]
public async Task<ActionResult<IEnumerable<ChiusureTable>>> chiusureVtList(string token)
{
try
{
List<ChiusureTable> ilist = new List<ChiusureTable>();
string ten = getClaimValueByToken(token, "tenant2");
string tecnico = getClaimValueByToken(token, "tccodice");
_chiuTable = _VT_chiutable.Chiutable;
var t = await _chiuTable.Where(t => t.cccodazi.Equals(ten) && t.codtobso==null).ToListAsync();
foreach (ChiusureTable ch in t)
{
ilist.Add(ch);
}
return StatusCode(StatusCodes.Status200OK, ilist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>VIRTUAL TASK: crea un codice chiusura return:ActionResult</summary>
[HttpPost]
[Route("chiusure/add")]
public async Task<ActionResult<ChiusureTable>> addchiusura([FromBody] ChiusureTable model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.cccodazi = ten;
try
{
using (var transaction = _VT_chiutable.Database.BeginTransaction())
{
await _VT_chiutable.Chiutable.AddAsync(model);
await _VT_chiutable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: cancella un codice chiusura return:ActionResult</summary>
[HttpPost]
[Route("chiusure/del")]
public async Task<ActionResult<ChiusureTable>> delchiusura(string codice, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
_chiuTable = _VT_chiutable.Chiutable;
var cod = await _chiuTable.Where(t => t.cccodice == codice && t.cccodazi == ten ).ToListAsync();
ChiusureTable model = cod.First();
model.codtobso = DateTime.Now;
try
{
//using (var transaction = _VT_chiutable.Database.BeginTransaction())
//{
// _VT_chiutable.Entry(model).State = EntityState.Deleted;
// await _VT_chiutable.SaveChangesAsync();
// transaction.Commit();
//}
using (var transaction = _VT_chiutable.Database.BeginTransaction())
{
_VT_chiutable.Entry(model).State = EntityState.Modified;
await _VT_chiutable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: modifica un codice chiusura return:ActionResult</summary>
[HttpPost]
[Route("chiusure/mod")]
public async Task<ActionResult<ChiusureTable>> modchiusura([FromBody] ChiusureTable model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.cccodazi = ten;
try
{
using (var transaction = _VT_chiutable.Database.BeginTransaction())
{
_VT_chiutable.Entry(model).State = EntityState.Modified;
await _VT_chiutable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: anagrafiche clienti per azienda</summary>
[HttpGet("anagraficheList")]
public async Task<ActionResult<IEnumerable<Anag>>> anagraficheList(string token)
{
try
{
List<AnagVT> ilist = new List<AnagVT>();
string ten = getClaimValueByToken(token, "tenant2");
string tecnico = getClaimValueByToken(token, "tccodice");
_clientiVT = _VT_anag.Anag;
var t = await _clientiVT.Where(
t => t.antipcon.Equals("C")
&& t.andtobso == null
&& t.ancodazi.Equals(ten)
).ToListAsync();
foreach (AnagVT ch in t)
{
ilist.Add(ch);
}
return StatusCode(StatusCodes.Status200OK, ilist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>VIRTUAL TASK: crea una anagrafica return:ActionResult</summary>
[HttpPost]
[Route("anagrafiche/add")]
public async Task<ActionResult<AnagTable>> addAnagrafica([FromBody] AnagTable model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.annumlis = null;
model.andtobso = null;
model.ancodazi = ten;
try
{
using (var transaction = _VT_anagtable.Database.BeginTransaction())
{
await _VT_anagtable.Anagtable.AddAsync(model);
await _VT_anagtable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: crea una anagrafica return:ActionResult</summary>
[HttpPost]
[Route("anagrafiche/addCommImp")]
public async Task<ActionResult<AnagTable>> addAnagraficaCommessaImpianto([FromBody] AnagCommImp model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.cli.annumlis = null;
model.cli.andtobso = null;
model.cli.ancodazi = ten;
model.cli.antipcon = "C";
model.imp.imcodazi = ten;
string ten2 = getClaimValueByToken(token, "tenant2");
model.comm.latipcli = "C";
model.comm.lacodazi = ten2;
try
{
var strategy = _VT_anagtable.Database.CreateExecutionStrategy();
await strategy.ExecuteAsync(async () =>
{
using var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled);
await _VT_anagtable.Anagtable.AddAsync(model.cli);
await _VT_impiatable.Impia.AddAsync(model.imp);
await _VT_CommTable.CommTable.AddAsync(model.comm);
await _VT_anagtable.SaveChangesAsync();
await _VT_impiatable.SaveChangesAsync();
await _VT_CommTable.SaveChangesAsync();
scope.Complete();
});
//await _VT_anagtable.Anagtable.AddAsync(model.cli);
//await _VT_anagtable.SaveChangesAsync();
////step 1: INSERISCO IMPIANTO
//_VT_impiatable.Database.UseTransaction(transaction.GetDbTransaction());
//await _VT_impiatable.Impia.AddAsync(model.imp);
//await _VT_impiatable.SaveChangesAsync();
////step 2: inserimento commessa
//_VT_CommTable.Database.UseTransaction(transaction.GetDbTransaction());
//await _VT_CommTable.CommTable.AddAsync(model.comm);
//await _VT_CommTable.SaveChangesAsync();
//transaction.Commit();
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: modifica una anagrafica return:ActionResult</summary>
[HttpPost]
[Route("anagrafiche/mod")]
public async Task<ActionResult<AnagTable>> modAnagrafica([FromBody] AnagTable model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.ancodazi = ten;
try
{
using (var transaction = _VT_anagtable.Database.BeginTransaction())
{
_VT_anagtable.Entry(model).State = EntityState.Modified;
await _VT_anagtable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: cancella una anagrafica (valorizza data obsolescenza) return:ActionResult</summary>
[HttpPost]
[Route("anagrafiche/del")]
public async Task<ActionResult<AnagTable>> delAnagrafica([FromBody] AnagTable model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.ancodazi = ten;
model.andtobso = DateTime.Now;
try
{
using (var transaction = _VT_anagtable.Database.BeginTransaction())
{
_VT_anagtable.Entry(model).State = EntityState.Modified;
await _VT_anagtable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: rapp_new per azienda</summary>
[HttpGet("rappnewList")]
public async Task<ActionResult<IEnumerable<Rapp_New_View>>> rappnewList(string token)
{
try
{
List<Rapp_New_View> ilist = new List<Rapp_New_View>();
string ten = getClaimValueByToken(token, "tenant2");
string tecnico = getClaimValueByToken(token, "tccodice");
_rapp_new_view = _VT_rapp.Rapps;
var t = await _rapp_new_view.Where(t => t.azienda_chiamata.Equals(ten)).Take(100).ToListAsync();
foreach (Rapp_New_View ch in t)
{
ilist.Add(ch);
}
return StatusCode(StatusCodes.Status200OK, ilist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>VIRTUAL TASK: crea una rappnew return:ActionResult</summary>
[HttpPost]
[Route("rappnew/add")]
public async Task<ActionResult<Rapp_New>> addRappnew([FromBody] Rapp_New model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.azienda_chiamata = ten;
model.azienda_impianto = ten;
model.azienda_tecnico = ten;
try
{
using (var transaction = _VT_rapptable.Database.BeginTransaction())
{
await _VT_rapptable.Rapps.AddAsync(model);
await _VT_rapptable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: modifica una anagrafica return:ActionResult</summary>
[HttpPost]
[Route("rappnew/mod")]
public async Task<ActionResult<Rapp_New>> modRappnew([FromBody] Rapp_New model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.azienda_chiamata = ten;
model.azienda_impianto = ten;
model.azienda_tecnico = ten;
try
{
using (var transaction = _VT_rapptable.Database.BeginTransaction())
{
_VT_rapptable.Entry(model).State = EntityState.Modified;
await _VT_rapptable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: cancella una rapp_new return:ActionResult</summary>
[HttpPost]
[Route("rappnew/del")]
public async Task<ActionResult<Rapp_New>> delRappnew(string serialeRapportino, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
_rapp_new = _VT_rapptable.Rapps;
var t = await _rapp_new.Where(t => t.seriale_rapportino.Equals(serialeRapportino) && t.azienda_chiamata.Equals(ten)).ToListAsync();
Rapp_New model = t.First();
try
{
using (var transaction = _Marro_rapp.Database.BeginTransaction())
{
_Marro_rapp.Entry(model).State = EntityState.Deleted;
await _Marro_rapp.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: impianti per azienda</summary>
[HttpGet("impiantiList")]
public async Task<ActionResult<IEnumerable<ImpiantoTable>>> impiantiList(string token)
{
try
{
List<Impianto> ilist = new List<Impianto>();
string ten = getClaimValueByToken(token, "tenant2");
string tecnico = getClaimValueByToken(token, "tccodice");
_impianto = _VT_impia.Impia;
var t = await _impianto.Where(t => t.imcodazi.Equals(ten)).ToListAsync();
foreach (Impianto ch in t)
{
ilist.Add(ch);
}
return StatusCode(StatusCodes.Status200OK, ilist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>VIRTUAL TASK: impianti per azienda</summary>
[HttpGet("impiantiListMngr")]
public async Task<ActionResult<IEnumerable<ImpiantoTable>>> impiantiListMngr(string token)
{
try
{
List<Impianto> ilist = new List<Impianto>();
string ten = getClaimValueByToken(token, "tenant2");
string tecnico = getClaimValueByToken(token, "tccodice");
_impianto = _VT_impiaMngr.Impia;
var t = await _impianto.Where(t => t.imcodazi.Equals(ten)).ToListAsync();
foreach (Impianto ch in t)
{
ilist.Add(ch);
}
return StatusCode(StatusCodes.Status200OK, ilist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>VIRTUAL TASK: crea un impianto return:ActionResult</summary>
[HttpPost]
[Route("impianti/add")]
public async Task<ActionResult<ImpiantoTable>> addImpianto([FromBody] ImpiantoTable model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.imcodazi = ten;
try
{
using (var transaction = _VT_impiatable.Database.BeginTransaction())
{
await _VT_impiatable.Impia.AddAsync(model);
await _VT_impiatable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
//co_out.err_title = ex.Message;
//co_out.err_detail = errmsg;
//co_out.err_status_code = StatiRisposta.ErroreInterno;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
//return co_out;
}
/// <summary>VIRTUAL TASK: modifica un impianto return:ActionResult</summary>
[HttpPost]
[Route("impianto/mod")]
public async Task<ActionResult<ImpiantoTable>> modImpianto([FromBody] ImpiantoTable model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.imcodazi = ten;
try
{
using (var transaction = _VT_impiatable.Database.BeginTransaction())
{
_VT_impiatable.Entry(model).State = EntityState.Modified;
await _VT_impiatable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: cancella un impianto return:ActionResult</summary>
[HttpPost]
[Route("impianto/del")]
public async Task<ActionResult<ImpiantoTable>> delImpianto(string imcodimp, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
_impiaTable = _VT_impiatable.Impia;
var t = await _impiaTable.Where(t => t.imcodimp.Equals(imcodimp) && t.imcodazi.Equals(ten)).ToListAsync();
ImpiantoTable model = t.First();
model.imfinatt = DateTime.Now;
try
{
using (var transaction = _VT_impiatable.Database.BeginTransaction())
{
_VT_impiatable.Entry(model).State = EntityState.Modified;
await _VT_impiatable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: chiamate per azienda</summary>
[HttpGet("chiamateList")]
public async Task<ActionResult<IEnumerable<ChiamateTable>>> chiamateList(string token)
{
try
{
List<Chiamate> ilist = new List<Chiamate>();
string ten = getClaimValueByToken(token, "tenant2");
string tecnico = getClaimValueByToken(token, "tccodice");
_chiamate = _VT_chia.Chiamate;
var t = await _chiamate.Where(t => t.chcodazi.Equals(ten)).ToListAsync();
foreach (Chiamate ch in t)
{
ilist.Add(ch);
}
return StatusCode(StatusCodes.Status200OK, ilist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>VIRTUAL TASK: chiamate per azienda</summary>
[HttpGet("chiamateListMngr")]
public async Task<ActionResult<IEnumerable<Chiamate>>> chiamateListMngr(string token)
{
try
{
List<Chiamate> ilist = new List<Chiamate>();
string ten = getClaimValueByToken(token, "tenant2");
string tecnico = getClaimValueByToken(token, "tccodice");
_chiamate = _VT_chiaMngr.Chiamate;
var t = await _chiamate.Where(t => t.chcodazi.Equals(ten)).ToListAsync();
foreach (Chiamate ch in t)
{
ilist.Add(ch);
}
return StatusCode(StatusCodes.Status200OK, ilist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>VIRTUAL TASK: crea una chiamata return:ActionResult</summary>
[HttpPost]
[Route("chiamata/add")]
public async Task<ActionResult<ChiamateTable>> addChiamata([FromBody] ChiamateTable model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.chcodazi = ten;
try
{
using (var transaction = _VT_chiatable.Database.BeginTransaction())
{
await _VT_chiatable.Chi.AddAsync(model);
await _VT_chiatable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: modifica una chiamata return:ActionResult</summary>
[HttpPost]
[Route("chiamata/mod")]
public async Task<ActionResult<ChiamateTable>> modChiamata([FromBody] ChiamateTable model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.chcodazi = ten;
try
{
using (var transaction = _VT_chiatable.Database.BeginTransaction())
{
_VT_chiatable.Entry(model).State = EntityState.Modified;
await _VT_chiatable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
//co_out.err_title = ex.Message;
//co_out.err_detail = errmsg;
//co_out.err_status_code = StatiRisposta.ErroreInterno;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
//return co_out;
}
/// <summary>VIRTUAL TASK: cancella una chiamata return:ActionResult</summary>
[HttpPost]
[Route("chiamata/del")]
public async Task<ActionResult<ChiamateTable>> delChiamata(string chserial, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
_chiatable = _VT_chiatable.Chi;
var t = await _chiatable.Where(t => t.chserial.Equals(chserial) && t.chcodazi.Equals(ten)).ToListAsync();
ChiamateTable model = t.First();
try
{
using (var transaction = _VT_chiatable.Database.BeginTransaction())
{
_VT_chiatable.Entry(model).State = EntityState.Deleted;
await _VT_chiatable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: progressivi per azienda</summary>
[HttpGet("progressiviList")]
public async Task<ActionResult<IEnumerable<Progressivo>>> progressiviList(string token)
{
try
{
List<Progressivo> ilist = new List<Progressivo>();
string ten = getClaimValueByToken(token, "tenant2");
string tecnico = getClaimValueByToken(token, "tccodice");
_VT_prog = _VT_progtable.progr;
var t = await _VT_prog.Where(t => t.azienda.Equals(ten)).ToListAsync();
foreach (Progressivo ch in t)
{
ilist.Add(ch);
}
return StatusCode(StatusCodes.Status200OK, ilist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>VIRTUAL TASK: modifica un progressivo return:ActionResult</summary>
[HttpPost]
[Route("progressivo/mod")]
public async Task<ActionResult<ChiamateTable>> modProgressivo([FromBody] Progressivo model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.azienda = ten;
try
{
using (var transaction = _VT_progtable.Database.BeginTransaction())
{
_VT_progtable.Entry(model).State = EntityState.Modified;
await _VT_progtable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: dati azienda</summary>
[HttpGet("aziendeList")]
public async Task<ActionResult<IEnumerable<AziendaRif>>> aziendeList(string token)
{
try
{
List<AziendaRif> ilist = new List<AziendaRif>();
string ten = getClaimValueByToken(token, "tenant2");
string tecnico = getClaimValueByToken(token, "tccodice");
_azi_coll = _VT_azi.Azi;
var t = await _azi_coll.Where(t => t.pirifazi.Equals(ten)).ToListAsync();
foreach (AziendaRif ch in t)
{
ilist.Add(ch);
}
return StatusCode(StatusCodes.Status200OK, ilist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>VIRTUAL TASK: crea una azienda return:ActionResult</summary>
[HttpPost]
[Route("azienda/add")]
public async Task<ActionResult<AziendaRif>> addAzienda([FromBody] AziendaRif model, string token)
{
string ten = getClaimValueByToken(token, "tenant");
string ten2 = getClaimValueByToken(token, "tenant2");
model.piazihoc = ten;
model.pirifazi = ten2;
_confLette = await readConf(ten2);
try
{
using (var transaction = _VT_azi.Database.BeginTransaction())
{
await _VT_azi.Azi.AddAsync(model);
await _VT_azi.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: modifica un progressivo return:ActionResult</summary>
[HttpPost]
[Route("azienda/mod")]
public async Task<ActionResult<AziendaRif>> modAzienda([FromBody] AziendaRif model, string token)
{
string ten = getClaimValueByToken(token, "tenant");
string ten2 = getClaimValueByToken(token, "tenant2");
model.piazihoc = ten;
model.pirifazi = ten2;
try
{
using (var transaction = _VT_azi.Database.BeginTransaction())
{
_VT_azi.Entry(model).State = EntityState.Modified;
await _VT_azi.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: cancella una azienda return:ActionResult</summary>
[HttpPost]
[Route("azienda/del")]
public async Task<ActionResult<AziendaRif>> delAzienda(string picodtec, string token)
{
string ten = getClaimValueByToken(token, "tenant");
string ten2 = getClaimValueByToken(token, "tenant2");
_azi_coll = _VT_azi.Azi;
var t = await _azi_coll.Where(t => t.piazihoc.Equals(ten) && t.pirifazi.Equals(ten2) && t.picodtec.Equals(picodtec)).ToListAsync();
AziendaRif model = t.First();
try
{
using (var transaction = _VT_azi.Database.BeginTransaction())
{
_VT_azi.Entry(model).State = EntityState.Deleted;
await _VT_azi.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: registrazioni</summary>
[HttpGet("registrazioniList")]
public async Task<ActionResult<IEnumerable<Registrazione>>> registrazioniList()
{
try
{
List<Registrazione> ilist = new List<Registrazione>();
//string ten = getClaimValueByToken(token, "tenant2");
//string tecnico = getClaimValueByToken(token, "tccodice");
_VT_regi = _VT_reg.Reg;
//var t = await _azi_coll.Where(t => t.pirifazi.Equals(ten)).ToListAsync();
foreach (Registrazione ch in _VT_regi)
{
ilist.Add(ch);
}
return StatusCode(StatusCodes.Status200OK, ilist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>VIRTUAL TASK: crea una registrazione return:ActionResult</summary>
[HttpPost]
[Route("registrazioni/add")]
public async Task<ActionResult<Registrazione>> addRegistrazione([FromBody] Registrazione model)
{
try
{
using (var transaction = _VT_reg.Database.BeginTransaction())
{
await _VT_reg.Reg.AddAsync(model);
await _VT_reg.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: modifica una registrazione return:ActionResult</summary>
[HttpPost]
[Route("registrazioni/mod")]
public async Task<ActionResult<Registrazione>> modregistrazione([FromBody] Registrazione model)
{
//string ten = getClaimValueByToken(token, "tenant");
//string ten2 = getClaimValueByToken(token, "tenant2");
//model.piazihoc = ten;
//model.pirifazi = ten2;
try
{
using (var transaction = _VT_reg.Database.BeginTransaction())
{
_VT_reg.Entry(model).State = EntityState.Modified;
await _VT_reg.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: cancella una registrazione return:ActionResult</summary>
[HttpPost]
[Route("registrazioni/del")]
public async Task<ActionResult<Registrazione>> delRegistrazione(int Id)
{
//string ten = getClaimValueByToken(token, "tenant");
//string ten2 = getClaimValueByToken(token, "tenant2");
_VT_regi = _VT_reg.Reg;
var t = await _VT_regi.Where(t => t.Id==Id ).ToListAsync();
Registrazione model = t.First();
try
{
using (var transaction = _VT_reg.Database.BeginTransaction())
{
_VT_reg.Entry(model).State = EntityState.Deleted;
await _VT_reg.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: registrazioni</summary>
[HttpGet("AziendePresentiList")]
public async Task<ActionResult<IEnumerable<AziendaPres>>> AziendePresentiList()
{
try
{
List<AziendaPres> ilist = new List<AziendaPres>();
//string ten = getClaimValueByToken(token, "tenant2");
//string tecnico = getClaimValueByToken(token, "tccodice");
_VT_AziPresenti = _VT_AziPres.Aziende;
//var t = await _azi_coll.Where(t => t.pirifazi.Equals(ten)).ToListAsync();
foreach (AziendaPres ch in _VT_AziPresenti)
{
ilist.Add(ch);
}
return StatusCode(StatusCodes.Status200OK, ilist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>VIRTUAL TASK: commesse</summary>
[HttpGet("commesseList")]
public async Task<ActionResult<IEnumerable<CommesseVT>>> commesseList(string token)
{
try
{
List<CommesseVT> ilist = new List<CommesseVT>();
string ten = getClaimValueByToken(token, "tenant2");
//string tecnico = getClaimValueByToken(token, "tccodice");
_VT_Commesse = _VT_Comm.Comm;
var t = await _VT_Commesse.Where(t => t.lacodazi.Equals(ten)).ToListAsync();
foreach (CommesseVT ch in t)
{
ilist.Add(ch);
}
return StatusCode(StatusCodes.Status200OK, ilist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>VIRTUAL TASK: crea una commessa return:ActionResult</summary>
[HttpPost]
[Route("commesseVT/add")]
public async Task<ActionResult<CommesseVT_Table>> addCommessaVT([FromBody] CommesseVT_Table model, string token)
{
string ten = getClaimValueByToken(token, "tenant");
string ten2 = getClaimValueByToken(token, "tenant2");
model.latipcli = "C";
model.lacodazi = ten2;
try
{
using (var transaction = _VT_CommTable.Database.BeginTransaction())
{
await _VT_CommTable.CommTable.AddAsync(model);
await _VT_CommTable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: modifica una commessa return:ActionResult</summary>
[HttpPost]
[Route("commesseVT/mod")]
public async Task<ActionResult<CommesseVT_Table>> modCommessaVT([FromBody] CommesseVT_Table model, string token)
{
string ten = getClaimValueByToken(token, "tenant");
string ten2 = getClaimValueByToken(token, "tenant2");
try
{
using (var transaction = _VT_CommTable.Database.BeginTransaction())
{
_VT_CommTable.Entry(model).State = EntityState.Modified;
await _VT_CommTable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: cancella una commessa (valorizza data obsolescenza) return:ActionResult</summary>
[HttpPost]
[Route("commesseVT/del")]
public async Task<ActionResult<CommesseVT_Table>> delCommessaVT([FromBody] CommesseVT_Table model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.ladatchi = DateTime.Now;
try
{
using (var transaction = _VT_CommTable.Database.BeginTransaction())
{
_VT_CommTable.Entry(model).State = EntityState.Modified;
await _VT_CommTable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: dati Azienda</summary>
[HttpGet("datiaziendaList")]
public async Task<ActionResult<IEnumerable<DatiAzienda>>> datiaziendaList(string token)
{
try
{
List<DatiAzienda> ilist = new List<DatiAzienda>();
string ten = getClaimValueByToken(token, "tenant2");
//string tecnico = getClaimValueByToken(token, "tccodice");
_VT_DatiAzi =_VT_DatiAzienda.Dati;
var t = await _VT_DatiAzi.Where(t => t.azienda.Equals(ten)).ToListAsync();
foreach (DatiAzienda ch in t)
{
ilist.Add(ch);
}
return StatusCode(StatusCodes.Status200OK, ilist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>VIRTUAL TASK: crea dati azienda return:ActionResult</summary>
[HttpPost]
[Route("datiazienda/add")]
public async Task<ActionResult<DatiAzienda>> addDatiAzienda([FromBody] DatiAzienda model, string token)
{
string ten = getClaimValueByToken(token, "tenant");
string ten2 = getClaimValueByToken(token, "tenant2");
_confLette = await readConf(ten2);
//model.latipcli = "C";
//model.lacodazi = ten2;
try
{
using (var transaction = _VT_DatiAzienda.Database.BeginTransaction())
{
await _VT_DatiAzienda.Dati.AddAsync(model);
await _VT_DatiAzienda.SaveChangesAsync();
transaction.Commit();
}
//devo fare la copia del logo e metterlo nella cartella del server a partire dal logo scritto in tabella
model = await readImgAndSave(model.azienda, model.tecnico, _confLette.path_buoni);
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: modifica una commessa return:ActionResult</summary>
[HttpPost]
[Route("datiazienda/mod")]
public async Task<ActionResult<DatiAzienda>> modDatiAzienda([FromBody] DatiAzienda model, string token)
{
string ten = getClaimValueByToken(token, "tenant");
string ten2 = getClaimValueByToken(token, "tenant2");
try
{
using (var transaction = _VT_DatiAzienda.Database.BeginTransaction())
{
_VT_DatiAzienda.Entry(model).State = EntityState.Modified;
await _VT_DatiAzienda.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: cancella una dati azienda return:ActionResult</summary>
[HttpPost]
[Route("datiazienda/del")]
public async Task<ActionResult<DatiAzienda>> delDatiAzienda(string azienda, string tecnico)
{
//string ten = getClaimValueByToken(token, "tenant");
//string ten2 = getClaimValueByToken(token, "tenant2");
_VT_DatiAzi = _VT_DatiAzienda.Dati;
var t = await _VT_DatiAzi.Where(t => t.azienda.Equals(azienda) && t.tecnico.Equals(tecnico)).ToListAsync();
DatiAzienda model = t.First();
try
{
using (var transaction = _VT_DatiAzienda.Database.BeginTransaction())
{
_VT_DatiAzienda.Entry(model).State = EntityState.Deleted;
await _VT_DatiAzienda.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: cancella una dati azienda return:ActionResult</summary>
[HttpPost]
[Route("datiazienda/saveFile")]
public async Task<ActionResult<DatiAzienda>> saveFileDatiAzienda(string azienda, string tecnico, string pathSrv)
{
DatiAzienda model=new DatiAzienda();
try
{
model = await readImgAndSave(azienda,tecnico,pathSrv);
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: legge e salva su server return:ActionResult</summary>
private async Task<DatiAzienda> readImgAndSave(string azienda, string tecnico, string pathSrv)
{
_VT_DatiAzi = _VT_DatiAzienda.Dati;
var t = await _VT_DatiAzi.Where(t => t.azienda.Equals(azienda) && t.tecnico.Equals(tecnico)).ToListAsync();
DatiAzienda model = t.First();
string path = string.Empty;
string nomeFile = string.Empty;
nomeFile = getNomeFile(model.url_logo);
path = pathSrv;
path = path +@"\"+azienda+ @"\" + nomeFile;
SaveByteArrayToFileWithBinaryWriter(model.logo, path);
return model;
}
/// <summary>VIRTUAL TASK: salvataggio su disco</summary>
public static void SaveByteArrayToFileWithBinaryWriter(byte[] data, string filePath)
{
using var writer = new BinaryWriter(System.IO.File.OpenWrite(filePath));
writer.Write(data);
//System.IO.File.WriteAllBytes("Foo.txt", data);
}
/// <summary>VIRTUAL TASK: ricava il nome del file a partire dal path web </summary>
public static string getNomeFile(string path)
{
string nome = string.Empty;
string[] words = path.Split('/');
int l = words.Length;
nome = words[l - 1];
return nome;
}
/// <summary>VIRTUAL TASK: dati Azienda</summary>
[HttpGet("rapportiniList")]
public async Task<ActionResult<IEnumerable<Rapportino>>> rapportiniList(string token)
{
try
{
List<Rapportino> ilist = new List<Rapportino>();
string ten = getClaimValueByToken(token, "tenant2");
//string tecnico = getClaimValueByToken(token, "tccodice");
_VT_rapport = _VT_Rapportini.Rapportini;
var t = await _VT_rapport.Where(t => t.azienda_impianto.Equals(ten)).ToListAsync();
foreach (Rapportino ch in t)
{
ilist.Add(ch);
}
return StatusCode(StatusCodes.Status200OK, ilist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>VIRTUAL TASK: inserisce buono</summary>
[HttpGet("buoni/add")]
public async Task<ActionResult<Buoni>> addBuoni([FromBody] Buoni model, string token)
{
string ten = getClaimValueByToken(token, "tenant");
string ten2 = getClaimValueByToken(token, "tenant2");
model.dt_ins = DateTime.Now;
//model.lacodazi = ten2;
try
{
using (var transaction = _VT_Buoni.Database.BeginTransaction())
{
await _VT_Buoni.buoni.AddAsync(model);
await _VT_Buoni.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: Timbrature da App</summary>
[HttpGet("timbratureList")]
public async Task<ActionResult<IEnumerable<Timbratura>>> timbratureList(string token)
{
try
{
List<Timbratura> ilist = new List<Timbratura>();
string ten = getClaimValueByToken(token, "tenant2");
string tecnico = getClaimValueByToken(token, "tccodice");
_timbr = _VT_timbr.Timbr;
var t = await _timbr.Where(
t => t.azienda.Equals(ten)
).ToListAsync();
foreach (Timbratura ch in t)
{
ilist.Add(ch);
}
return StatusCode(StatusCodes.Status200OK, ilist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err);
}
}
/// <summary>VIRTUAL TASK: lista articoli per azienda</summary>
[HttpGet("articoliList")]
public async Task<ActionResult<IEnumerable<Articoli>>> ArticoliList(string token)
{
try
{
List<Articoli> alist = new List<Articoli>();
string ten = getClaimValueByToken(token, "tenant2");
string tecnico = getClaimValueByToken(token, "tccodice");
_articoliTable = _VT_articoliTable.Articoli;
var art = await _articoliTable.Where(x => x.Azienda.Equals(ten)).ToListAsync();
foreach (Articoli a in art)
{
alist.Add(a);
}
return StatusCode(StatusCodes.Status200OK, alist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err); ;
}
}
///<summary> VIRTUAL TASK : crea nuovo articolo return: ActionResult</summary>
[HttpPost]
[Route("articolo/add")]
public async Task<ActionResult<Articoli>> addArticolo([FromBody] Articoli model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.Azienda = ten;
try
{
using (var transaction = _VT_articoliTable.Database.BeginTransaction())
{
await _VT_articoliTable.Articoli.AddAsync(model);
await _VT_articoliTable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg); ;
}
}
///<summary> VIRTUAL TASK : modifica articolo return: ActionResult</summary>
[HttpPost]
[Route("articolo/mod")]
public async Task<ActionResult<Articoli>> modArticolo([FromBody] Articoli model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.Azienda = ten;
try
{
using (var transaction = _VT_articoliTable.Database.BeginTransaction())
{
_VT_articoliTable.Entry(model).State = EntityState.Modified;
await _VT_articoliTable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
/// <summary>VIRTUAL TASK: cancella un articolo return:ActionResult</summary>
[HttpPost]
[Route("articolo/del")]
public async Task<ActionResult<Articoli>> delArticolo(string artcodice, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
_articoliTable = _VT_articoliTable.Articoli;
var art = await _articoliTable.Where(a => a.SlCodice.Equals(artcodice) && a.Azienda.Equals(ten)).ToListAsync();
Articoli model = art.First();
model.DataObso = DateTime.Now;
try
{
using (var transaction = _VT_articoliTable.Database.BeginTransaction())
{
_VT_articoliTable.Entry(model).State = EntityState.Modified;
await _VT_articoliTable.SaveChangesAsync();
transaction.Commit();
}
return StatusCode(StatusCodes.Status200OK, model);
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, errmsg);
}
}
#endregion
#region Logging
/// <summary>Upload return:ActionResult</summary>
[HttpPost]
[Route("log/scrivi")]
public async Task<IActionResult> 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
}
}