public void EmailAnnullaRichiestaAnticipi(decimal idAttivitaAnticipi, ModelDBISE db) { AccountModel am = new AccountModel(); Mittente mittente = new Mittente(); Destinatario to = new Destinatario(); Destinatario cc = new Destinatario(); try { am = Utility.UtenteAutorizzato(); mittente.Nominativo = am.nominativo; mittente.EmailMittente = am.eMail; var aa = db.ATTIVITAANTICIPI.Find(idAttivitaAnticipi); if (aa?.IDATTIVITAANTICIPI > 0) { TRASFERIMENTO tr = aa.PRIMASITEMAZIONE.TRASFERIMENTO; DIPENDENTI dip = tr.DIPENDENTI; UFFICI uff = tr.UFFICI; using (GestioneEmail gmail = new GestioneEmail()) { using (ModelloMsgMail msgMail = new ModelloMsgMail()) { cc = new Destinatario() { Nominativo = am.nominativo, EmailDestinatario = am.eMail }; to = new Destinatario() { Nominativo = dip.NOME + " " + dip.COGNOME, EmailDestinatario = dip.EMAIL, }; msgMail.mittente = mittente; msgMail.cc.Add(cc); msgMail.destinatario.Add(to); msgMail.oggetto = Resources.msgEmail.OggettoAnnullaRichiestaAnticipi; msgMail.corpoMsg = string.Format(Resources.msgEmail.MessaggioAnnullaRichiestaAnticipi, uff.DESCRIZIONEUFFICIO + " (" + uff.CODICEUFFICIO + ")", tr.DATAPARTENZA.ToLongDateString()); gmail.sendMail(msgMail); } } } } catch (Exception ex) { throw ex; } }
private void EmailNotificaRichiestaAnticipi(decimal idAttivitaAnticipi, ModelDBISE db) { PRIMASITEMAZIONE ps = new PRIMASITEMAZIONE(); AccountModel am = new AccountModel(); Mittente mittente = new Mittente(); Destinatario to = new Destinatario(); Destinatario cc = new Destinatario(); List <UtenteAutorizzatoModel> luam = new List <UtenteAutorizzatoModel>(); try { am = Utility.UtenteAutorizzato(); mittente.Nominativo = am.nominativo; mittente.EmailMittente = am.eMail; var aa = db.ATTIVITAANTICIPI.Find(idAttivitaAnticipi); ps = aa.PRIMASITEMAZIONE; if (ps?.IDPRIMASISTEMAZIONE > 0) { TRASFERIMENTO tr = ps.TRASFERIMENTO; DIPENDENTI d = tr.DIPENDENTI; UFFICI u = tr.UFFICI; using (dtUtentiAutorizzati dtua = new dtUtentiAutorizzati()) { using (GestioneEmail gmail = new GestioneEmail()) { using (ModelloMsgMail msgMail = new ModelloMsgMail()) { cc = new Destinatario() { Nominativo = am.nominativo, EmailDestinatario = am.eMail }; msgMail.mittente = mittente; msgMail.cc.Add(cc); luam.AddRange(dtua.GetUtentiByRuolo(EnumRuoloAccesso.Amministratore).ToList()); foreach (var uam in luam) { var amministratore = db.DIPENDENTI.Find(uam.idDipendente); if (amministratore != null && amministratore.IDDIPENDENTE > 0) { to = new Destinatario() { Nominativo = amministratore.COGNOME + " " + amministratore.NOME, EmailDestinatario = amministratore.EMAIL }; msgMail.destinatario.Add(to); } } msgMail.oggetto = Resources.msgEmail.OggettoNotificaRichiestaAnticipi; msgMail.corpoMsg = string.Format( Resources.msgEmail.MessaggioNotificaRichiestaAnticipi, d.COGNOME + " " + d.NOME + " (" + d.MATRICOLA + ")", tr.DATAPARTENZA.ToLongDateString(), u.DESCRIZIONEUFFICIO + " (" + u.CODICEUFFICIO + ")"); gmail.sendMail(msgMail); } } } } } catch (Exception ex) { throw ex; } }
//public ActionResult InserisciNuovaNotifica(NotificheModel nmod) //public ActionResult InserisciNuovaNotifica(HttpPostedFileBase PDFUpload, NotificheModel nmod) public ActionResult InserisciNuovaNotifica(string listaMailPrincipale, string listaMailToCc, string Oggetto, string CorpoMessaggio, HttpPostedFileBase file) { bool InserimentoEffettuatoinDB = false; string nomefile = ""; string[] VettNomeFile = null; string nomefileFin = ""; string estensione = ""; if (file != null) { nomefile = file.FileName; VettNomeFile = nomefile.Split('\\'); nomefile = VettNomeFile[VettNomeFile.Length - 1]; nomefileFin = nomefile.Split('.')[0]; estensione = nomefile.Split('.')[1]; } AggiornaLista(); decimal idMittenteLogato = Utility.UtenteAutorizzato().idDipendente; ViewBag.idMittenteLogato = idMittenteLogato; UtentiAutorizzatiModel uta = null; NotificheModel nmod = new NotificheModel(); //if (nmod.PDFUpload == null || nmod.PDFUpload.ContentLength == 0) //{ // ModelState.AddModelError("PDFUpload", "Questo campo è richiesto"); //} List <NotificheModel> lnm = new List <NotificheModel>(); using (ModelDBISE db = new ModelDBISE()) { using (dtNotifiche dtn = new dtNotifiche()) { try { db.Database.BeginTransaction(); try { // db.Database.BeginTransaction(); // HttpPostedFileBase file = Request.Files[item] as HttpPostedFileBase; bool esisteFile = false; bool gestisceEstensioni = false; bool dimensioneConsentita = false; string dimensioneMaxConsentita = string.Empty; PreSetDocumentoNotifiche(file, out nmod, out esisteFile, out gestisceEstensioni, out dimensioneConsentita, out dimensioneMaxConsentita); nmod.dataNotifica = DateTime.Now; nmod.idMittente = idMittenteLogato; nmod.lDestinatari = listaMailPrincipale.Split(','); nmod.toCc = listaMailToCc.Split(','); nmod.corpoMessaggio = CorpoMessaggio; nmod.Oggetto = Oggetto; nmod.NomeFile = nomefileFin; nmod.Estensione = estensione; if (esisteFile) { if (gestisceEstensioni == false) { throw new Exception( "Il documento selezionato non è nel formato consentito. Il formato supportato è: pdf."); } if (!dimensioneConsentita) { throw new Exception( "Il documento selezionato supera la dimensione massima consentita (" + dimensioneMaxConsentita + " Mb)."); } } bool tutti = false; uta = dtn.RestituisciAutorizzato(idMittenteLogato); InserimentoEffettuatoinDB = dtn.InsertNotifiche(nmod, db, out tutti); //db.Database.CurrentTransaction.Commit(); idMittenteLogato = nmod.idMittente;// Utility.UtenteAutorizzato().idDipendente; #region invia email se tutto ok if (InserimentoEffettuatoinDB) { using (GestioneEmail gmail = new GestioneEmail()) { ModelloAllegatoMail allegato = new ModelloAllegatoMail(); Destinatario dest = new Destinatario(); Destinatario destToCc = new Destinatario(); ModelloMsgMail modMSGmail = new ModelloMsgMail(); if (nmod.Allegato != null) { var docByte = dtn.GetDocumentoByteById(nmod.idNotifica, db); Stream streamDoc = new MemoryStream(docByte); allegato.nomeFile = nomefileFin + "." + estensione;//DateTime.Now.Ticks.ToString() + ".pdf"; allegato.allegato = streamDoc; modMSGmail.allegato.Add(allegato); } modMSGmail.oggetto = nmod.Oggetto; modMSGmail.corpoMsg = nmod.corpoMessaggio; Mittente mitt = new Mittente(); mitt.EmailMittente = dtn.GetEmailByIdDipendente(idMittenteLogato); decimal id_dip = dtn.RestituisciIDdestinatarioDaEmail(mitt.EmailMittente); DipendentiModel dmod = dtn.RestituisciDipendenteByID(id_dip); mitt.Nominativo = dmod.nome + " " + dmod.cognome; var ddss = dtn.GetListDestinatari(nmod.idNotifica, db); #region controllo tutti=false if (tutti == false) { foreach (var x in ddss) { string nome_ = dtn.RestituisciDipendenteByID(x.idDipendente).nome; string cognome_ = dtn.RestituisciDipendenteByID(x.idDipendente).cognome; string nominativo_ = nome_ + " " + cognome_; using (dtUtenzeDipendenti dtud = new dtUtenzeDipendenti()) { var les = dtud.GetListaEmailSecondarioDip(x.idDipendente); if (!x.ToCc) { dest = new Destinatario(); dest.EmailDestinatario = dtn.GetEmailByIdDipendente(x.idDipendente); dest.Nominativo = nominativo_; modMSGmail.destinatario.Add(dest); #region inserisce eventuali email secondarie if (les?.Any() ?? false) { foreach (var es in les) { dest = new Destinatario(); dest.EmailDestinatario = es.Email; dest.Nominativo = nominativo_; modMSGmail.destinatario.Add(dest); } } #endregion } else { destToCc = new Destinatario(); destToCc.EmailDestinatario = dtn.GetEmailByIdDipendente(x.idDipendente); destToCc.Nominativo = nominativo_; modMSGmail.cc.Add(destToCc); #region inserisce eventuali email secondarie if (les?.Any() ?? false) { foreach (var es in les) { destToCc = new Destinatario(); destToCc.EmailDestinatario = es.Email; destToCc.Nominativo = nominativo_; modMSGmail.cc.Add(destToCc); } } #endregion } } } } #endregion #region controllo tutti=true if (tutti == true) { List <DipendentiModel> listatutti = null; if (uta.idRouloUtente == (decimal)EnumRuoloAccesso.Amministratore) { listatutti = dtn.TuttiListaDestinatari((decimal)EnumRuoloAccesso.Utente); } if (uta.idRouloUtente == (decimal)EnumRuoloAccesso.Utente) { listatutti = dtn.TuttiListaDestinatari((decimal)EnumRuoloAccesso.Amministratore); } foreach (var elem in listatutti) { dest = new Destinatario(); dest.EmailDestinatario = elem.email; dest.Nominativo = elem.cognome + " " + elem.nome + " (" + elem.matricola + ")"; modMSGmail.destinatario.Add(dest); using (dtUtenzeDipendenti dtud = new dtUtenzeDipendenti()) { var les = dtud.GetListaEmailSecondarioDip(elem.idDipendente); #region inserisce eventuali email secondarie if (les?.Any() ?? false) { foreach (var es in les) { dest = new Destinatario(); dest.EmailDestinatario = es.Email; dest.Nominativo = elem.cognome + " " + elem.nome + " (" + elem.matricola + ")"; modMSGmail.destinatario.Add(destToCc); } } #endregion } } } #endregion #region Qui mi assicuro che tutti gli amministratori siano inclusi in ToCc if (tutti == false || (tutti == true && uta.idRouloUtente == (decimal)EnumRuoloAccesso.Utente)) { var lls = dtn.GetListaDipendentiAutorizzati((decimal)EnumRuoloAccesso.Amministratore); foreach (var x in lls) { bool found = false; if (modMSGmail.cc.Count != 0) { var tmp = modMSGmail.cc.Where(a => a.EmailDestinatario.ToUpper().Trim() == x.email.ToUpper().Trim()).ToList(); if (tmp.Count() != 0) { found = true; } } if (found == false) { destToCc = new Destinatario(); string nome_cc = x.nome; string cognome_cc = x.cognome; destToCc.EmailDestinatario = x.email; string nominativo_cc = nome_cc + " " + cognome_cc; destToCc.Nominativo = nominativo_cc; modMSGmail.cc.Add(destToCc); using (dtUtenzeDipendenti dtud = new dtUtenzeDipendenti()) { var les = dtud.GetListaEmailSecondarioDip(x.idDipendente); #region inserisce eventuali email secondarie if (les?.Any() ?? false) { foreach (var es in les) { destToCc = new Destinatario(); destToCc.EmailDestinatario = es.Email; destToCc.Nominativo = x.cognome + " " + x.nome; modMSGmail.cc.Add(destToCc); } } #endregion } } } } #endregion db.Database.CurrentTransaction.Commit(); lnm = dtn.GetNotifiche(idMittenteLogato).ToList(); modMSGmail.mittente = mitt; gmail.sendMail(modMSGmail); } } #endregion } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); return(PartialView("ErrorPartial", new MsgErr() { msg = ex.Message })); } return(PartialView("ListaNotifiche", lnm)); } catch (Exception ex) { return(PartialView("ErrorPartial", new MsgErr() { msg = ex.Message })); } } } }
public void InviaMailRichiamo(decimal idTrasferimento, ModelDBISE db, string corpoMessaggio = "", string oggetto = "") { // UtentiAutorizzatiModel uta = null; //decimal idMittenteLogato = Utility.UtenteAutorizzato().idDipendente; var uam = Utility.UtenteAutorizzato(); //ViewBag.idMittenteLogato = idMittenteLogato; // NotificheModel nmod = new NotificheModel(); using (dtRichiamo dtn = new dtRichiamo()) { using (GestioneEmail gmail = new GestioneEmail()) { // ModelloAllegatoMail allegato = new ModelloAllegatoMail(); Destinatario dest = new Destinatario(); Destinatario destToCc = new Destinatario(); ModelloMsgMail modMSGmail = new ModelloMsgMail(); //if (idDocumento != 0) //{ // var docByte = dtn.GetAllegatoVC(idAttivazioneVC, idDocumento); // Stream streamDoc = new MemoryStream(docByte); // DocumentiModel dm = dtn.GetDatiDocumentoById(idDocumento); // allegato.nomeFile = dm.nomeDocumento + "." + dm.estensione; // allegato.allegato = streamDoc; // modMSGmail.allegato.Add(allegato); //} modMSGmail.oggetto = oggetto; modMSGmail.corpoMsg = corpoMessaggio; Mittente mitt = new Mittente(); //mitt.EmailMittente = dtn.GetEmailByIdDipendente(idMittenteLogato); //decimal id_dip = dtn.RestituisciIDdestinatarioDaEmail(mitt.EmailMittente); if (uam?.idDipendente > 0) { DipendentiModel dmod = dtn.RestituisciDipendenteByID(uam.idDipendente, db); mitt.Nominativo = dmod.nome + " " + dmod.cognome; mitt.EmailMittente = dmod.email; } else { mitt.Nominativo = uam.nominativo; mitt.EmailMittente = uam.eMail; } decimal idDestinatario = dtn.Restituisci_ID_Destinatario(idTrasferimento); string nome_ = dtn.RestituisciDipendenteByID(idDestinatario, db).nome; string cognome_ = dtn.RestituisciDipendenteByID(idDestinatario, db).cognome; string nominativo_ = nome_ + " " + cognome_; dest = new Destinatario(); dest.EmailDestinatario = dtn.GetEmailByIdDipendente(idDestinatario); dest.Nominativo = nominativo_; modMSGmail.destinatario.Add(dest); //il mittente deve anche ricevere in coppia la mail destToCc = new Destinatario(); destToCc.EmailDestinatario = mitt.EmailMittente; string nominativo_c = mitt.Nominativo; destToCc.Nominativo = nominativo_c; modMSGmail.cc.Add(destToCc); //Qui mi assicuro che tutti gli amminsitratori siano inclusi in ToCc //var lls = dtn.GetListaDipendentiAutorizzati((decimal)EnumRuoloAccesso.Amministratore); //foreach (var x in lls) //{ // bool found = false; // if (modMSGmail.cc.Count != 0) // { // var tmp = modMSGmail.cc.Where(a => a.EmailDestinatario.ToUpper().Trim() == x.email.ToUpper().Trim()).ToList(); // if (tmp.Count() != 0) found = true; // } // if (found == false) // { // destToCc = new Destinatario(); // string nome_cc = x.nome; // string cognome_cc = x.cognome; // destToCc.EmailDestinatario = x.email; // string nominativo_cc = nome_cc + " " + cognome_cc; // destToCc.Nominativo = nominativo_cc; // modMSGmail.cc.Add(destToCc); // } //} /////////////////////////////////////////////////////// modMSGmail.mittente = mitt; gmail.sendMail(modMSGmail); } } }