public UtentiAutorizzatiModel RestituisciAutorizzato(decimal idDipendente) { UtentiAutorizzatiModel tmp = new UtentiAutorizzatiModel(); using (ModelDBISE db = new ModelDBISE()) { if (idDipendente == 0) { tmp = (from e in db.UTENTIAUTORIZZATI where e.IDDIPENDENTE != null && e.IDDIPENDENTE != 0 && e.DIPENDENTI.ABILITATO == true select new UtentiAutorizzatiModel() { idDipendente = (decimal)e.IDDIPENDENTE, idRouloUtente = e.IDRUOLOUTENTE, Utente = e.UTENTE, psw = e.PSW }).ToList().FirstOrDefault(); } else { tmp = (from e in db.UTENTIAUTORIZZATI where e.IDDIPENDENTE == idDipendente && e.DIPENDENTI.ABILITATO == true select new UtentiAutorizzatiModel() { idDipendente = (decimal)e.IDDIPENDENTE, idRouloUtente = e.IDRUOLOUTENTE, Utente = e.UTENTE, psw = e.PSW }).ToList().FirstOrDefault(); } } return(tmp); }
List <SelectListItem> TuttiDestinatari() { var r = new List <SelectListItem>(); UtentiAutorizzatiModel uta = null; List <DipendentiModel> dm = new List <DipendentiModel>(); decimal idMittenteLogato = Utility.UtenteAutorizzato().idDipendente; using (dtNotifiche dtn = new dtNotifiche()) { uta = dtn.RestituisciAutorizzato(idMittenteLogato); if (uta.idRouloUtente == (decimal)EnumRuoloAccesso.Utente) { dm.AddRange(dtn.GetListaDipendentiAutorizzati((decimal)EnumRuoloAccesso.Amministratore)); } if (uta.idRouloUtente == (decimal)EnumRuoloAccesso.Amministratore) { dm.AddRange(dtn.GetListaDipendentiAutorizzati((decimal)EnumRuoloAccesso.Utente)); } if (dm.Count > 0) { r = (from t in dm where !string.IsNullOrEmpty(t.email) && t.email.Trim() != "" orderby t.nome select new SelectListItem() { Text = t.nome + " " + t.cognome, //Value = t.email Value = t.idDipendente.ToString() }).ToList(); } } return(r); }
void AggiornaLista() { var r = new List <SelectListItem>(); var r0 = new List <SelectListItem>(); var r2 = new List <SelectListItem>(); UtentiAutorizzatiModel uta = null; List <DipendentiModel> dm = new List <DipendentiModel>(); decimal idMittenteLogato = Utility.UtenteAutorizzato().idDipendente; using (dtNotifiche dtn = new dtNotifiche()) { uta = dtn.RestituisciAutorizzato(idMittenteLogato); if (uta.idRouloUtente == (decimal)EnumRuoloAccesso.Amministratore) { dm.AddRange(dtn.GetListaDipendentiAutorizzati((decimal)EnumRuoloAccesso.Utente)); } if (uta.idRouloUtente == (decimal)EnumRuoloAccesso.Utente) { dm.AddRange(dtn.GetListaDipendentiAutorizzati((decimal)EnumRuoloAccesso.Amministratore)); } //dm.AddRange(dtn.GetListaDipendentiAutorizzati()); if (dm.Count > 0) { var agg = new SelectListItem(); agg.Text = "TUTTI (Trasferimenti attivi)"; agg.Value = "TUTTI"; r.Add(agg); r0 = (from t in dm where !string.IsNullOrEmpty(t.email) && t.email.Trim() != "" orderby t.nome select new SelectListItem() { Text = t.nome + " " + t.cognome, //Value = t.email Value = t.idDipendente.ToString() }).ToList(); r.AddRange(r0); r2 = (from t in dm where !string.IsNullOrEmpty(t.email) && t.email.Trim() != "" orderby t.nome select new SelectListItem() { Text = t.nome + " " + t.cognome, //Value = t.email Value = t.idDipendente.ToString() }).ToList(); } } ViewBag.idMittenteLogato = idMittenteLogato; ViewBag.ListaDestinatari = r; ViewBag.ListaCc = r2; }
public ActionResult NuovaNotifica() { var r = new List <SelectListItem>(); var r0 = new List <SelectListItem>(); var r2 = new List <SelectListItem>(); UtentiAutorizzatiModel uta = null; List <DipendentiModel> dm = new List <DipendentiModel>(); decimal idMittenteLogato = Utility.UtenteAutorizzato().idDipendente; try { using (dtNotifiche dtn = new dtNotifiche()) { uta = dtn.RestituisciAutorizzato(idMittenteLogato); if (uta.idRouloUtente == (decimal)EnumRuoloAccesso.Amministratore) { dm.AddRange(dtn.GetListaDipendentiAutorizzati((decimal)EnumRuoloAccesso.Utente)); } if (uta.idRouloUtente == (decimal)EnumRuoloAccesso.Utente) { dm.AddRange(dtn.GetListaDipendentiAutorizzati((decimal)EnumRuoloAccesso.Amministratore)); } //dm.AddRange(dtn.GetListaDipendentiAutorizzati()); if (dm.Count > 0) { var agg = new SelectListItem(); agg.Text = "TUTTI (Trasferimenti attivi)"; agg.Value = "TUTTI"; r.Add(agg); r0 = (from t in dm where !string.IsNullOrEmpty(t.email) && t.email.Trim() != "" orderby t.cognome select new SelectListItem() { Text = t.cognome + " " + t.nome + " (" + t.matricola + ")", // Value = t.email Value = t.idDipendente.ToString() }).ToList(); r.AddRange(r0); r2 = (from t in dm where !string.IsNullOrEmpty(t.email) && t.email.Trim() != "" orderby t.cognome select new SelectListItem() { Text = t.cognome + " " + t.nome + " (" + t.matricola + ")", // Value = t.email Value = t.idDipendente.ToString() }).ToList(); } } ViewBag.idMittenteLogato = idMittenteLogato; ViewBag.ListaDestinatari = r; ViewBag.ListaCc = r2; return(PartialView()); } catch (Exception ex) { return(PartialView("ErrorPartial", new MsgErr() { msg = ex.Message })); } }
//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 bool InsertNotifiche(NotificheModel NM, ModelDBISE db, out bool tutti) { tutti = false; List <DESTINATARI> listDest = new List <DESTINATARI>(); decimal idMittenteLogato = Utility.UtenteAutorizzato().idDipendente; using (dtNotifiche dtn = new dtNotifiche()) { // dtn.RestituisciAutorizzato(idMittenteLogato); string[] ld = NM.lDestinatari; //DestinatarioModel dm = new DestinatarioModel(); //List<DestinatarioModel> destMod = new List<DestinatarioModel>(); if (ld.Length == 1 && ld[0].ToUpper() == "TUTTI") { tutti = true; UtentiAutorizzatiModel uta = dtn.RestituisciAutorizzato(idMittenteLogato); var tmp = new List <SelectListItem>(); if (uta.idRouloUtente == (decimal)EnumRuoloAccesso.Amministratore) { tmp = GetListaTUTTI((decimal)EnumRuoloAccesso.Utente); } if (uta.idRouloUtente == (decimal)EnumRuoloAccesso.Utente) { tmp = GetListaTUTTI((decimal)EnumRuoloAccesso.Amministratore); } //tmp = GetListaTUTTI(uta.idRouloUtente);// TuttiDestinatari(); foreach (var x in tmp) { DESTINATARI d = new DESTINATARI(); d.IDNOTIFICA = NM.idNotifica; d.IDDIPENDENTE = Convert.ToDecimal(x.Value);// RestituisciIDdestinatarioDaEmail(x.Value); listDest.Add(d); } } else { foreach (string email in ld) { DESTINATARI d = new DESTINATARI(); d.IDNOTIFICA = NM.idNotifica; d.IDDIPENDENTE = Convert.ToDecimal(email);// RestituisciIDdestinatarioDaEmail(email); listDest.Add(d); } } //if (NM.toCc != null) //{ List <DESTINATARI> listToCc = new List <DESTINATARI>(); string[] lToCc = NM.toCc; foreach (string email in lToCc) { if (email != "null") { DESTINATARI dcc = new DESTINATARI(); dcc.IDNOTIFICA = NM.idNotifica; dcc.IDDIPENDENTE = Convert.ToDecimal(email);// RestituisciIDdestinatarioDaEmail(email); dcc.TOCC = true; listDest.Add(dcc); } } } if (listDest.Count != 0) { //try //{ NOTIFICHE nuovo = new NOTIFICHE(); nuovo.IDMITTENTE = NM.idMittente; nuovo.CORPOMESSAGGIO = NM.corpoMessaggio; nuovo.DATANOTIFICA = DateTime.Now; nuovo.OGGETTO = NM.Oggetto; nuovo.DESTINATARI = listDest; nuovo.ALLEGATO = NM.Allegato; nuovo.NOMEDOCUMENTO = NM.NomeFile; nuovo.ESTENSIONEDOC = NM.Estensione; //db.Database.BeginTransaction(); db.NOTIFICHE.Add(nuovo); if (db.SaveChanges() <= 0) { throw new Exception("Errore in fase di inserimento notifica"); } //db.Database.CurrentTransaction.Commit(); NM.idNotifica = nuovo.IDNOTIFICA; //} //catch (Exception ex) //{ // //db.Database.CurrentTransaction.Rollback(); // throw ex; // //return false; //} } if (listDest.Count != 0) { return(true); } else { return(false); } }