예제 #1
0
파일: Handler.cs 프로젝트: fberga/Iren
        public static void ScriviStagione(int idStagione)
        {
            var sheetPrevisione = Workbook.Sheets.Cast <Excel.Worksheet>()
                                  .Where(s => s.Name == "Previsione")
                                  .FirstOrDefault();

            bool wasProtected = sheetPrevisione.ProtectContents;

            if (wasProtected)
            {
                sheetPrevisione.Unprotect(Workbook.Password);
            }

            if (sheetPrevisione != null)
            {
                DefinedNames definedNames = new DefinedNames("Previsione");
                DateTime     dataFine     = Workbook.DataAttiva.AddDays(Struct.intervalloGiorni);
                Range        rng          = definedNames.Get("CT_TORINO", "STAGIONE", Date.SuffissoDATA1, Date.GetSuffissoOra(1)).Extend(colOffset: Date.GetOreIntervallo(dataFine));
                sheetPrevisione.Range[rng.ToString()].Value = idStagione;
                if (!Simboli.ModificaDati && DataBase.OpenConnection())
                {
                    Handler.StoreEdit(sheetPrevisione, sheetPrevisione.Range[rng.ToString()]);
                    DataBase.SalvaModificheDB();

                    DataBase.CloseConnection();
                }
            }
            if (wasProtected)
            {
                sheetPrevisione.Protect(Workbook.Password);
            }
        }
예제 #2
0
        /// <summary>
        /// Launcher per l'azione di esportazione, contiene il metodo standard di handling per eventuali errori.
        /// </summary>
        /// <param name="siglaEntita">Sigla dell'entità dell'export.</param>
        /// <param name="siglaAzione">Sigla dell'azione dell'export</param>
        /// <param name="desEntita">Descrizione dell'entità.</param>
        /// <param name="desAzione">Descrizione dell'azione.</param>
        /// <param name="dataRif">La data di riferimento per cui esportare i dati.</param>
        /// <returns>True se l'azione di esportazione è andata a buon fine, false altrimenti.</returns>
        public virtual bool RunExport(object siglaEntita, object siglaAzione, object desEntita, object desAzione, DateTime dataRif, string[] mercati)
        {
            try
            {
                if (EsportaAzioneInformazione(siglaEntita, siglaAzione, desEntita, desAzione, dataRif, mercati))
                {
                    if (DataBase.OpenConnection())
                    {
                        DataBase.InsertApplicazioneRiepilogo(siglaEntita, siglaAzione, dataRif);
                    }

                    DataBase.CloseConnection();

                    return(true);
                }

                return(false);
            }
            catch (Exception e)
            {
                if (DataBase.OpenConnection())
                {
                    Workbook.InsertLog(PSO.Core.DataBase.TipologiaLOG.LogErrore, "RunExport [" + siglaEntita + ", " + siglaAzione + "]: " + e.Message);
                }

                DataBase.CloseConnection();

                System.Windows.Forms.MessageBox.Show(e.Message, Simboli.NomeApplicazione + " - ERRORE!!", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                return(false);
            }
        }
예제 #3
0
        /// <summary>
        /// Prepara il path sostituendo le parti dinamiche con valori appropriati.
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static string PreparePath(UserConfigElement path)
        {
            //Controllo stato connessione
            string p;

            if (Workbook.Ambiente == Simboli.PROD)
            {
                p = DataBase.OpenConnection() ? path.Value : path.Emergenza;
            }
            else
            {
                p = DataBase.OpenConnection() ? path.Test : path.Emergenza;
            }
            DataBase.CloseConnection();

            return(p);
        }
예제 #4
0
파일: Workbook.cs 프로젝트: fberga/Iren
        /// <summary>
        /// Aggiorna i label indicanti lo stato dei Database in seguito ad un cambio di stato.
        /// </summary>
        public static void AggiornaLabelStatoDB()
        {
            //disabilito l'aggiornamento in caso di modifica dati... lo ripeto alla chiusura in caso
            if (!Simboli.ModificaDati)
            {
                bool isProtected = true;
                try
                {
                    Workbook.WB.Application.ScreenUpdating = false;
                    isProtected = Main.ProtectContents;

                    if (isProtected)
                    {
                        Main.Unprotect(Workbook.Password);
                    }

                    //refresh nel caso stia passando da emergenza a normale e viceversa
                    Riepilogo main = new Riepilogo(Workbook.Main);

                    if (DataBase.OpenConnection())
                    {
                        Dictionary <PSO.Core.DataBase.NomiDB, ConnectionState> stato = DataBase.StatoDB;
                        Simboli.SQLServerOnline = stato[PSO.Core.DataBase.NomiDB.SQLSERVER] == ConnectionState.Open;
                        Simboli.ImpiantiOnline  = stato[PSO.Core.DataBase.NomiDB.IMP] == ConnectionState.Open;
                        Simboli.ElsagOnline     = stato[PSO.Core.DataBase.NomiDB.ELSAG] == ConnectionState.Open;

                        if (_wasInEmergency)
                        {
                            main.UpdateData();
                        }

                        _wasInEmergency = false;

                        DataBase.CloseConnection();
                    }
                    else
                    {
                        Simboli.SQLServerOnline = false;
                        Simboli.ImpiantiOnline  = false;
                        Simboli.ElsagOnline     = false;

                        if (!_wasInEmergency)
                        {
                            main.RiepilogoInEmergenza();
                        }

                        _wasInEmergency = true;
                    }

                    if (isProtected)
                    {
                        Main.Protect(Workbook.Password);
                    }
                }
                catch { }

                //lo faccio a parte perché se andasse in errore prima deve almeno provare a riattivare lo screen updating!!!
                try { Workbook.WB.Application.ScreenUpdating = true; }
                catch { }
            }
        }