示例#1
0
        private void btnImporta_Click(object sender, EventArgs e)
        {
            SplashScreen.Show();
            Workbook.ScreenUpdating          = false;
            Workbook.Application.Calculation = Excel.XlCalculation.xlCalculationManual;
            Sheet.Protected = false;

            foreach (var c in _commonInfo)
            {
                if (tvEntitaInformazioni.Nodes[c.SiglaEntita].Checked)
                {
                    SplashScreen.UpdateStatus("Importo dati per " + c.DesEntita);
                    string          foglio       = DefinedNames.GetSheetName(c.SiglaEntita);
                    Excel.Worksheet ws           = Workbook.Sheets[foglio];
                    DefinedNames    definedNames = new DefinedNames(foglio);

                    foreach (var kv in c.Info)
                    {
                        if (tvEntitaInformazioni.Nodes[c.SiglaEntita].Nodes[kv.Key.ToString()].Checked)
                        {
                            var values =
                                from r in _tabellaImportXML.AsEnumerable()
                                where r["SiglaEntita"].Equals(c.SiglaEntita) && r["SiglaInformazione"].Equals(kv.Key) &&
                                (r["Data"].ToString().Substring(0, 8).CompareTo(Workbook.DataAttiva.ToString("yyyyMMdd")) >= 0)
                                select new { Data = r["Data"], Valore = r["Valore"] };

                            foreach (var val in values)
                            {
                                string suffissoData = Date.GetSuffissoData(val.Data.ToString());
                                string suffissoOra  = Date.GetSuffissoOra(val.Data);

                                Range rng = new Range();
                                if (definedNames.TryGet(out rng, c.SiglaEntita, kv.Key, suffissoData, suffissoOra))
                                {
                                    object tmpVal = null;
                                    double conv;
                                    if (Double.TryParse(val.Valore.ToString(), out conv))
                                    {
                                        tmpVal = conv;
                                    }
                                    else
                                    {
                                        tmpVal = val.Valore;
                                    }

                                    ws.Range[rng.ToString()].Value = tmpVal;
                                }
                            }
                        }
                    }
                }
            }

            Sheet.Protected = true;
            Workbook.Application.Calculation = Excel.XlCalculation.xlCalculationAutomatic;
            SplashScreen.Close();
            Workbook.ScreenUpdating = true;
        }
示例#2
0
文件: Esporta.cs 项目: fberga/Iren
        protected bool CreaOfferteSuggeriteXML(object siglaEntita, object siglaAzione, string exportPath, DateTime dataRif, string[] mercati)
        {
            try
            {
                string          nomeFoglio   = DefinedNames.GetSheetName(siglaEntita);
                DefinedNames    definedNames = new DefinedNames(nomeFoglio);
                Excel.Worksheet ws           = Workbook.Sheets[nomeFoglio];

                string suffissoData = Date.GetSuffissoData(dataRif);
                int    oreGiorno    = Date.GetOreGiorno(dataRif);

                DataView categoriaEntita = Workbook.Repository[DataBase.TAB.CATEGORIA_ENTITA].DefaultView;
                categoriaEntita.RowFilter = "SiglaEntita = '" + siglaEntita + "' AND IdApplicazione = " + Workbook.IdApplicazione;
                object codiceRUP = categoriaEntita[0]["CodiceRUP"];
                //bool isTermo = categoriaEntita[0]["SiglaCategoria"].Equals("IREN_60T");

                DataView entitaParametro = Workbook.Repository[DataBase.TAB.ENTITA_PARAMETRO].DefaultView;
                entitaParametro.RowFilter = "SiglaEntita = '" + siglaEntita + "' AND idParametro = 903 AND CONVERT(DataIV, System.Int32) <= " + dataRif.ToString("yyyyMMdd") + " AND CONVERT(DataFV, System.Int32) >= " + dataRif.ToString("yyyyMMdd") + " AND IdApplicazione = " + Workbook.IdApplicazione;

                //decimal calcoloPPA = (decimal)entitaParametro[0]["Valore"];

                XNamespace ns             = XNamespace.Get("urn:XML-BIDMGM");
                XNamespace xsi            = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
                XNamespace schemaLocation = XNamespace.Get("urn:XML-BIDMGM BM_SuggestedOfferMSD.xsd");

                string referenceNumber = codiceRUP.ToString().Replace("_", "") + "_" + DateTime.Now.ToString("yyyyMMddHHmmss");


                foreach (string mercato in mercati)
                {
                    XElement suggested = new XElement(ns + "Suggested");

                    // verifico il mercato MB e le ore di quel mercato
                    SpecMercato m = Simboli.MercatiMB["MB" + mercato];
                    //controllo se ci sono dei vincoli di orario
                    int oraInizio = m.Inizio - 1;
                    int oraFine   = Math.Min(oreGiorno, m.Fine);


                    XElement coordinate = new XElement(ns + "Coordinate",
                                                       new XAttribute("Mercato", "MB" + mercato),
                                                       new XAttribute("IDUnit", codiceRUP),
                                                       new XAttribute("FlowDate", dataRif.ToString("yyyyMMdd"))
                                                       );

                    //cambioassetto
                    Range  rng     = new Range();
                    Range  rng1    = new Range();
                    string prezzo  = "";
                    string energia = "";
                    if (definedNames.TryGet(out rng, siglaEntita, "CAMBIO_ASSETTO_MB"))
                    {
                        //rng.StartColumn -= 1;
                        prezzo  = (ws.Range[rng.ToString()].Value ?? "0").ToString().Replace(".", ",");
                        energia = "0";
                        XElement gradino = new XElement(ns + "CambioAssetto");
                        for (int j = oraInizio; j < oraFine; j++)
                        {
                            gradino.Add(new XElement(ns + "SG1", (j + 1),
                                                     new XAttribute("PRE", prezzo),
                                                     new XAttribute("QUA", energia),
                                                     new XAttribute("AZIONE", "VEN")
                                                     )
                                        );
                        }

                        coordinate.Add(gradino);
                    }

                    //spegnimento
                    rng     = definedNames.Get(siglaEntita, "OFFERTA_MB_G0AE", suffissoData).Extend(colOffset: oreGiorno);
                    rng1    = definedNames.Get(siglaEntita, "OFFERTA_MB_G0AP", suffissoData).Extend(colOffset: oreGiorno);
                    energia = "0";
                    prezzo  = "0";
                    if (!ws.Range[rng.ToString()].EntireRow.Hidden)
                    {
                        XElement gradino = new XElement(ns + "Spegnimento");
                        for (int j = oraInizio; j < oraFine; j++)
                        {
                            energia = (ws.Range[rng.Columns[j].ToString()].Value ?? "0").ToString().Replace(".", ",");
                            prezzo  = (ws.Range[rng1.Columns[j].ToString()].Value ?? "0").ToString().Replace(".", ",");

                            gradino.Add(new XElement(ns + "SG1", (j + 1),
                                                     new XAttribute("PRE", prezzo),
                                                     new XAttribute("QUA", energia),
                                                     new XAttribute("AZIONE", "ACQ")
                                                     )
                                        );
                        }
                        coordinate.Add(gradino);
                    }

                    //minimo
                    rng     = definedNames.Get(siglaEntita, "OFFERTA_MB_G0VE", suffissoData).Extend(colOffset: oreGiorno);
                    rng1    = definedNames.Get(siglaEntita, "OFFERTA_MB_G0VP", suffissoData).Extend(colOffset: oreGiorno);
                    energia = "0";
                    prezzo  = "0";
                    if (!ws.Range[rng.ToString()].EntireRow.Hidden)
                    {
                        XElement gradino = new XElement(ns + "Minimo");
                        for (int j = oraInizio; j < oraFine; j++)
                        {
                            energia = (ws.Range[rng.Columns[j].ToString()].Value ?? "0").ToString().Replace(".", ",");
                            prezzo  = (ws.Range[rng1.Columns[j].ToString()].Value ?? "0").ToString().Replace(".", ",");

                            gradino.Add(new XElement(ns + "SG1", (j + 1),
                                                     new XAttribute("PRE", prezzo),
                                                     new XAttribute("QUA", energia),
                                                     new XAttribute("AZIONE", "VEN")
                                                     )
                                        );
                        }
                        coordinate.Add(gradino);
                    }

                    //riserva secondaria
                    rng     = definedNames.Get(siglaEntita, "OFFERTA_MB_G4VE", suffissoData).Extend(colOffset: oreGiorno);
                    rng1    = definedNames.Get(siglaEntita, "OFFERTA_MB_G4VP", suffissoData).Extend(colOffset: oreGiorno);
                    energia = "0";
                    prezzo  = "0";
                    if (!ws.Range[rng.ToString()].EntireRow.Hidden)
                    {
                        XElement gradino = new XElement(ns + "RisSecondaria");
                        for (int j = oraInizio; j < oraFine; j++)
                        {
                            energia = (ws.Range[rng.Columns[j].ToString()].Value ?? "0").ToString().Replace(".", ",");
                            prezzo  = (ws.Range[rng1.Columns[j].ToString()].Value ?? "0").ToString().Replace(".", ",");

                            gradino.Add(new XElement(ns + "SG1", (j + 1),
                                                     new XAttribute("PRE", prezzo),
                                                     new XAttribute("QUA", energia),
                                                     new XAttribute("AZIONE", "VEN")
                                                     )
                                        );
                        }

                        rng     = definedNames.Get(siglaEntita, "OFFERTA_MB_G4AE", suffissoData).Extend(colOffset: oreGiorno);
                        rng1    = definedNames.Get(siglaEntita, "OFFERTA_MB_G4AP", suffissoData).Extend(colOffset: oreGiorno);
                        energia = "0";
                        prezzo  = "0";

                        for (int j = oraInizio; j < oraFine; j++)
                        {
                            energia = (ws.Range[rng.Columns[j].ToString()].Value ?? "0").ToString().Replace(".", ",");
                            prezzo  = (ws.Range[rng1.Columns[j].ToString()].Value ?? "0").ToString().Replace(".", ",");

                            gradino.Add(new XElement(ns + "SG2", (j + 1),
                                                     new XAttribute("PRE", prezzo),
                                                     new XAttribute("QUA", energia),
                                                     new XAttribute("AZIONE", "ACQ")
                                                     )
                                        );
                        }

                        coordinate.Add(gradino);
                    }

                    //altri servizi
                    XElement altriServizi = new XElement(ns + "AltriServizi");

                    bool aggiungi = false;
                    int  sgId     = 0;
                    for (int k = 1; k < 4; k++)
                    {
                        rng     = definedNames.Get(siglaEntita, "OFFERTA_MB_G" + k + "VE", suffissoData).Extend(colOffset: oreGiorno);
                        rng1    = definedNames.Get(siglaEntita, "OFFERTA_MB_G" + k + "VP", suffissoData).Extend(colOffset: oreGiorno);
                        energia = "0";
                        prezzo  = "0";
                        if (!ws.Range[rng.ToString()].EntireRow.Hidden)
                        {
                            aggiungi = true;
                            sgId++;
                            for (int j = oraInizio; j < oraFine; j++)
                            {
                                energia = (ws.Range[rng.Columns[j].ToString()].Value ?? "0").ToString().Replace(".", ",");
                                prezzo  = (ws.Range[rng1.Columns[j].ToString()].Value ?? "0").ToString().Replace(".", ",");

                                XElement sg = new XElement(ns + ("SG" + sgId), (j + 1),
                                                           new XAttribute("PRE", prezzo),
                                                           new XAttribute("QUA", energia),
                                                           new XAttribute("AZIONE", "VEN")
                                                           );

                                /*if (calcoloPPA == 1 && k == 1 && j == 0)
                                 *  sg.Add(new XAttribute("RifStand", "MI1"));*/

                                altriServizi.Add(sg);
                            }

                            rng     = definedNames.Get(siglaEntita, "OFFERTA_MB_G" + k + "AE", suffissoData).Extend(colOffset: oreGiorno);
                            rng1    = definedNames.Get(siglaEntita, "OFFERTA_MB_G" + k + "AP", suffissoData).Extend(colOffset: oreGiorno);
                            energia = "0";
                            prezzo  = "0";
                            sgId++;
                            for (int j = oraInizio; j < oraFine; j++)
                            {
                                energia = (ws.Range[rng.Columns[j].ToString()].Value ?? "0").ToString().Replace(".", ",");
                                prezzo  = (ws.Range[rng1.Columns[j].ToString()].Value ?? "0").ToString().Replace(".", ",");

                                altriServizi.Add(new XElement(ns + ("SG" + sgId), (j + 1),
                                                              new XAttribute("PRE", prezzo),
                                                              new XAttribute("QUA", energia),
                                                              new XAttribute("AZIONE", "ACQ")
                                                              )
                                                 );
                            }
                        }
                    }
                    if (aggiungi)
                    {
                        coordinate.Add(altriServizi);
                    }

                    //accensione
                    rng     = new Range();
                    energia = "0";
                    prezzo  = "0";
                    if (definedNames.TryGet(out rng, siglaEntita, "ACCENSIONE_MB"))
                    {
                        //AGGIUNTO FIL
                        rng = rng.Extend(colOffset: oreGiorno);
                        //prezzo = (ws.Range[rng.ToString()].Value ?? "0").ToString().Replace(".", ",");

                        XElement gradino = new XElement(ns + "Accensione");
                        for (int j = oraInizio; j < oraFine; j++)
                        {
                            //FIL
                            //energia = (ws.Range[rng.Columns[j].ToString()].Value ?? "0").ToString().Replace(".", ",");

                            object[,] prz = ws.Range[rng.Columns[j].ToString()].MergeArea.Value;

                            //TODO controllare se non esiste mergearea...va in errore!!

                            prezzo = (prz[1, 1] ?? "0").ToString().Replace(".", ",");

                            gradino.Add(new XElement(ns + "SG1", (j + 1),
                                                     new XAttribute("PRE", prezzo),
                                                     new XAttribute("QUA", energia),
                                                     new XAttribute("AZIONE", "VEN")
                                                     )
                                        );
                        }

                        coordinate.Add(gradino);
                    }

                    suggested.Add(coordinate);



                    XDocument offerteSuggerite = new XDocument(new XDeclaration("1.0", "ISO-8859-1", "yes"),
                                                               new XElement(ns + "BMTransaction-SUGMSD",
                                                                            new XAttribute("ReferenceNumber", referenceNumber.Length > 30 ? referenceNumber.Substring(0, 30) : referenceNumber),
                                                                            new XAttribute(XNamespace.Xmlns + "xsi", xsi),
                                                                            new XAttribute(xsi + "schemaLocation", schemaLocation),
                                                                            suggested
                                                                            )
                                                               );
                    string filename = "Suggerite_MB_" + codiceRUP.ToString() + "_" + DateTime.Now.ToString("yyyyMMddhhmmss") + "_MB" + mercato + ".xml";
                    offerteSuggerite.Save(Path.Combine(exportPath, filename));
                }
                return(true);
            }
            catch
            {
                return(false);
            }
        }
示例#3
0
        protected bool CreaOfferteSuggeriteXML_GME(object siglaEntita, object siglaAzione, string exportPath, DateTime dataRif, string mercato)
        {
            try
            {
                string          nomeFoglio   = DefinedNames.GetSheetName(siglaEntita);
                DefinedNames    definedNames = new DefinedNames(nomeFoglio);
                Excel.Worksheet ws           = Workbook.Sheets[nomeFoglio];

                string suffissoData = Date.GetSuffissoData(dataRif);
                int    oreGiorno    = Date.GetOreGiorno(dataRif);

                DataView categoriaEntita = Workbook.Repository[DataBase.TAB.CATEGORIA_ENTITA].DefaultView;
                categoriaEntita.RowFilter = "SiglaEntita = '" + siglaEntita + "' AND IdApplicazione = " + Workbook.IdApplicazione;
                object codiceRUP = categoriaEntita[0]["CodiceRUP"];
                //bool isTermo = categoriaEntita[0]["SiglaCategoria"].Equals("IREN_60T");

                DataView entitaParametro = Workbook.Repository[DataBase.TAB.ENTITA_PARAMETRO].DefaultView;
                entitaParametro.RowFilter = "SiglaEntita = '" + siglaEntita + "' AND idParametro = 903 AND DataIV <= '" + dataRif.ToString("yyyyMMdd") + "01' AND DataFV >= '" + dataRif.ToString("yyyyMMdd") + "25' AND IdApplicazione = " + Workbook.IdApplicazione;

                decimal calcoloPPA = (decimal)entitaParametro[0]["Valore"];

                XNamespace ns  = XNamespace.Get("urn:XML-PIPE");
                XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
                XNamespace xsd = XNamespace.Get("http://www.w3.org/2001/XMLSchema");

                string referenceNumber = codiceRUP.ToString().Replace("_", "") + "_" + DateTime.Now.ToString("yyyyMMddHHmmss");

                DataView entitaProprieta = Workbook.Repository[DataBase.TAB.ENTITA_PROPRIETA].DefaultView;
                entitaProprieta.RowFilter = "SiglaEntita = '" + siglaEntita + "' AND SiglaProprieta = 'COMPANY_NAME' AND IdApplicazione = " + Workbook.IdApplicazione;
                object companyName = entitaProprieta[0]["Valore"];

                entitaProprieta.RowFilter = "SiglaEntita = '" + siglaEntita + "' AND SiglaProprieta = 'COMPANY_IDENTIFIER' AND IdApplicazione = " + Workbook.IdApplicazione;
                object companyID = entitaProprieta[0]["Valore"];

                XElement PIPEDocument = new XElement(ns + "PIPEDocument",
                                                     new XAttribute("ReferenceNumber", referenceNumber.Length > 30 ? referenceNumber.Substring(0, 30) : referenceNumber),
                                                     new XAttribute("CreationDate", DateTime.Now.ToString("yyyyMMddHHmmss")),
                                                     new XAttribute("Version", "1.0"),
                                                     new XAttribute(XNamespace.Xmlns + "xsi", xsi),
                                                     new XAttribute(XNamespace.Xmlns + "xsd", xsd),
                                                     new XElement(ns + "TradingPartnerDirectory",
                                                                  new XElement(ns + "Sender",
                                                                               new XElement(ns + "TradingPartner",
                                                                                            new XAttribute("PartnerType", "Market Participant"),
                                                                                            new XElement(ns + "CompanyName", companyName),
                                                                                            new XElement(ns + "CompanyIdentifier", companyID)
                                                                                            )
                                                                               ),
                                                                  new XElement(ns + "Recipient",
                                                                               new XElement(ns + "TradingPartner",
                                                                                            new XAttribute("PartnerType", "Operator"),
                                                                                            new XElement(ns + "CompanyName", companyName),
                                                                                            new XElement(ns + "CompanyIdentifier", companyID)
                                                                                            )
                                                                               )
                                                                  )
                                                     );

                string[] informazioni = { "OFFERTA_MSD_G0", "OFFERTA_MSD_G1", "OFFERTA_MSD_G2", "OFFERTA_MSD_G3", "OFFERTA_MSD_G4" };
                string[] gradini      = { "AS", "GR1", "GR2", "GR3", "RS" };

                for (int i = 0; i < oreGiorno; i++)
                {
                    XElement bidSubmittal = new XElement(ns + "BidSubmittal",
                                                         new XAttribute("PredefinedOffer", "No"),
                                                         new XElement(ns + "Market", mercato),
                                                         new XElement(ns + "Date", dataRif.ToString("yyyyMMdd")),
                                                         new XElement(ns + "Hour", i + 1),
                                                         new XElement(ns + "UnitReferenceNumber", codiceRUP));

                    Range  rng;
                    string presentedOffer;
                    string energia;
                    string prezzo;

                    for (int j = 0; j < informazioni.Length; j++)
                    {
                        //Vendita
                        rng            = definedNames.Get(siglaEntita, informazioni[j] + "VE", suffissoData, Date.GetSuffissoOra(i + 1));
                        presentedOffer = "No";
                        energia        = "0";
                        prezzo         = "0";
                        if (!ws.Range[rng.ToString()].EntireRow.Hidden)
                        {
                            presentedOffer = "Yes";
                            energia        = (ws.Range[rng.ToString()].Value ?? "0").ToString().Replace(".", ",");

                            rng = definedNames.Get(siglaEntita, informazioni[j] + "VP", suffissoData, Date.GetSuffissoOra(i + 1));
                            if (ws.Range[rng.ToString()].Value != null)
                            {
                                prezzo = ws.Range[rng.ToString()].Value.ToString().Replace(".", ",");
                            }
                        }

                        bidSubmittal.Add(new XElement(ns + "Offer",
                                                      new XAttribute("PresentedOffer", presentedOffer),
                                                      new XAttribute("Purpose", "Sell"),
                                                      new XAttribute("Scope", gradini[j]),
                                                      new XElement(ns + "BidQuantity", energia,
                                                                   new XAttribute("UnitOfMeasure", "MWh")),
                                                      new XElement(ns + "EnergyPrice", prezzo),
                                                      new XElement(ns + "SourceOffer", "SPOT"))
                                         );

                        //Acquisto
                        rng            = definedNames.Get(siglaEntita, informazioni[j] + "AE", suffissoData, Date.GetSuffissoOra(i + 1));
                        presentedOffer = "No";
                        energia        = "0";
                        prezzo         = "0";
                        if (!ws.Range[rng.ToString()].EntireRow.Hidden)
                        {
                            presentedOffer = "Yes";
                            energia        = (ws.Range[rng.ToString()].Value ?? "0").ToString().Replace(".", ",");

                            rng = definedNames.Get(siglaEntita, informazioni[j] + "AP", suffissoData, Date.GetSuffissoOra(i + 1));

                            if (ws.Range[rng.ToString()].Value != null)
                            {
                                prezzo = ws.Range[rng.ToString()].Value.ToString().Replace(".", ",");
                            }
                        }

                        bidSubmittal.Add(new XElement(ns + "Offer",
                                                      new XAttribute("PresentedOffer", presentedOffer),
                                                      new XAttribute("Purpose", "Buy"),
                                                      new XAttribute("Scope", gradini[j]),
                                                      new XElement(ns + "BidQuantity", energia,
                                                                   new XAttribute("UnitOfMeasure", "MWh")),
                                                      new XElement(ns + "EnergyPrice", prezzo),
                                                      new XElement(ns + "SourceOffer", "SPOT"))
                                         );
                    }

                    //Accensione - Vendita
                    presentedOffer = "Yes";
                    prezzo         = "0";
                    energia        = "0";
                    if (definedNames.TryGet(out rng, siglaEntita, "ACCENSIONE_MSD"))
                    {
                        //aggiusto la colonna che mi ritorna DATA1.H1
                        //rng.StartColumn -= 1;
                        if (ws.Range[rng.ToString()].Value != null)
                        {
                            prezzo = ws.Range[rng.ToString()].Value.ToString().Replace(".", ",");
                        }
                    }

                    bidSubmittal.Add(new XElement(ns + "Offer",
                                                  new XAttribute("PresentedOffer", presentedOffer),
                                                  new XAttribute("Purpose", "Sell"),
                                                  new XAttribute("Scope", "AC"),
                                                  new XElement(ns + "BidQuantity", energia,
                                                               new XAttribute("UnitOfMeasure", "MWh")),
                                                  new XElement(ns + "EnergyPrice", prezzo),
                                                  new XElement(ns + "SourceOffer", "SPOT"))
                                     );

                    //Cambio Assetto - Vendita
                    presentedOffer = "Yes";
                    prezzo         = "0";
                    if (definedNames.TryGet(out rng, siglaEntita, "CAMBIO_ASSETTO_MSD"))
                    {
                        //aggiusto la colonna che mi ritorna DATA1.H1
                        //rng.StartColumn -= 1;
                        if (ws.Range[rng.ToString()].Value != null)
                        {
                            prezzo = ws.Range[rng.ToString()].Value.ToString().Replace(".", ",");
                        }
                    }

                    bidSubmittal.Add(new XElement(ns + "Offer",
                                                  new XAttribute("PresentedOffer", presentedOffer),
                                                  new XAttribute("Purpose", "Sell"),
                                                  new XAttribute("Scope", "CA"),
                                                  new XElement(ns + "BidQuantity", energia,
                                                               new XAttribute("UnitOfMeasure", "MWh")),
                                                  new XElement(ns + "EnergyPrice", prezzo),
                                                  new XElement(ns + "SourceOffer", "SPOT"))
                                     );

                    if (calcoloPPA == 1)
                    {
                        bidSubmittal.Add(new XAttribute("RifStand", "MI1"));
                    }

                    PIPEDocument.Add(new XElement(ns + "PIPTransaction", bidSubmittal));
                }

                XDocument offerteSuggerite = new XDocument(new XDeclaration("1.0", "ISO-8859-1", "yes"),
                                                           PIPEDocument
                                                           );

                string filename = "Suggerite_MSD_" + codiceRUP.ToString() + "_GME.xml";
                offerteSuggerite.Save(Path.Combine(exportPath, filename));

                return(true);
            }
            catch
            {
                return(false);
            }
        }