/// <summary> /// Aggiorna la colorazione della barra superiore del riepilogo in base allo schema colori basato sui giorni. /// </summary> protected void UpdateDayColor() { DataView azioni = new DataView(Workbook.Repository[DataBase.TAB.AZIONE]); azioni.RowFilter = "Visibile = 1 AND Operativa = 1 AND IdApplicazione = " + Workbook.IdApplicazione; Range rngTitleBar = new Range(_definedNames.GetFirstRow(), _definedNames.GetFirstCol() + 1, 3, azioni.Count); CicloGiorni((oreGiorno, suffissoData, giorno) => { ASheet.AssegnaColori(_ws.Range[rngTitleBar.ToString()], giorno); rngTitleBar.StartColumn += azioni.Count; }); }
protected bool InviaMail(DefinedNames definedNames, object siglaEntita) { string fileNameFull = ""; string fileName = ""; try { fileName = @"PrevisioneGAS_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls"; fileNameFull = Environment.ExpandEnvironmentVariables(@"%TEMP%\" + fileName); Excel.Workbook wb = Globals.ThisWorkbook.Application.Workbooks.Add(); Workbook.Main.Range[Range.GetRange(definedNames.GetFirstRow(), definedNames.GetFirstCol(), definedNames.GetRowOffset(), definedNames.GetColOffsetRiepilogo()).ToString()].Copy(); wb.Sheets[1].Range["B2"].PasteSpecial(); wb.Sheets[1].UsedRange.ColumnWidth = 17; wb.Sheets[1].Range["A1"].Select(); wb.SaveAs(fileNameFull, Excel.XlFileFormat.xlExcel8); wb.Close(); Marshal.ReleaseComObject(wb); var config = Workbook.GetUsrConfigElement("destMailTest"); string mailTo = config.Test; string mailCC = ""; DataView entitaProprieta = new DataView(Workbook.Repository[DataBase.TAB.ENTITA_PROPRIETA]); if (Workbook.Ambiente == Simboli.PROD) { entitaProprieta.RowFilter = "SiglaEntita = '" + siglaEntita + "' AND SiglaProprieta = 'PREV_CONSUMO_GAS_MAIL_TO' AND IdApplicazione = " + Workbook.IdApplicazione; if (entitaProprieta.Count > 0) { mailTo = entitaProprieta[0]["Valore"].ToString(); } entitaProprieta.RowFilter = "SiglaEntita = '" + siglaEntita + "' AND SiglaProprieta = 'PREV_CONSUMO_GAS_MAIL_CC' AND IdApplicazione = " + Workbook.IdApplicazione; if (entitaProprieta.Count > 0) { mailCC = entitaProprieta[0]["Valore"].ToString(); } } if (DataBase.OpenConnection()) { Outlook.Application outlook = GetOutlookInstance(); Outlook._MailItem mail = outlook.CreateItem(Outlook.OlItemType.olMailItem); config = Workbook.GetUsrConfigElement("oggettoMail"); string oggetto = config.Value.Replace("%DATA%", DateTime.Now.ToString("dd-MM-yyyy")).Replace("%ORA%", DateTime.Now.ToString("HH:mm")); config = Workbook.GetUsrConfigElement("messaggioMail"); string messaggio = config.Value.Replace("%NOMEUTENTE%", Workbook.NomeUtente); messaggio = Regex.Replace(messaggio, @"^[^\S\r\n]+", "", RegexOptions.Multiline); ////TODO check se manda sempre con lo stesso account... Outlook.Account senderAccount = outlook.Session.Accounts[1]; foreach (Outlook.Account account in outlook.Session.Accounts) { if (account.DisplayName == "Bidding") { senderAccount = account; } } mail.SendUsingAccount = senderAccount; mail.Subject = oggetto; mail.Body = messaggio; foreach (string dest in mailTo.Split(';')) { if (dest.Trim() != "") { mail.Recipients.Add(dest.Trim()); } } mail.CC = mailCC; mail.Attachments.Add(fileNameFull); mail.Send(); File.Delete(fileNameFull); } else { string emailFolder = @"C:\Emergenza\Email\" + Simboli.NomeApplicazione; if (!Directory.Exists(emailFolder)) { Directory.CreateDirectory(emailFolder); } File.Move(fileNameFull, Path.Combine(emailFolder, fileName)); } } catch (Exception e) { Workbook.InsertLog(Core.DataBase.TipologiaLOG.LogErrore, "PrevisioneGAS.Esporta.InvioMail: " + e.Message); System.Windows.Forms.MessageBox.Show(e.Message, Simboli.NomeApplicazione + " - ERRORE!!", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); if (File.Exists(fileName)) { File.Delete(fileName); } return(false); } return(true); }