public ActionResult MessaggioAnnullaMF(decimal idAttMagFam)
        {
            ModelloMsgMail msg = new ModelloMsgMail();

            try
            {
                using (dtDipendenti dtd = new dtDipendenti())
                {
                    using (dtTrasferimento dtt = new dtTrasferimento())
                    {
                        using (dtUffici dtu = new dtUffici())
                        {
                            var t = dtt.GetTrasferimentoByIdAttMagFam(idAttMagFam);

                            if (t?.idTrasferimento > 0)
                            {
                                var dip = dtd.GetDipendenteByID(t.idDipendente);
                                var uff = dtu.GetUffici(t.idUfficio);

                                msg.corpoMsg            = string.Format(Resources.msgEmail.MessaggioAnnullaRichiestaMaggiorazioniFamiliari, uff.descUfficio + " (" + uff.codiceUfficio + ")", t.dataPartenza.ToShortDateString());
                                ViewBag.idTrasferimento = t.idTrasferimento;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                return(PartialView("ErrorPartial", new MsgErr()
                {
                    msg = ex.Message
                }));
            }
            return(PartialView(msg));
        }
Пример #2
0
        public ActionResult MessaggioAnnullaProvvidenzeScolastiche(decimal idTrasfProvScolastiche)
        {
            ModelloMsgMail msg = new ModelloMsgMail();

            try
            {
                using (dtDipendenti dtd = new dtDipendenti())
                {
                    using (dtTrasferimento dtt = new dtTrasferimento())
                    {
                        using (dtUffici dtu = new dtUffici())
                        {
                            var t = dtt.GetTrasferimentoByIDProvvScolastiche(idTrasfProvScolastiche);

                            if (t?.idTrasferimento > 0)
                            {
                                var dip = dtd.GetDipendenteByID(t.idDipendente);
                                var uff = dtu.GetUffici(t.idUfficio);

                                msg.corpoMsg = string.Format(Resources.msgEmail.MessaggioAnnullaRichiestaProvvidenzeScolastiche, uff.descUfficio + " (" + uff.codiceUfficio + ")", t.dataPartenza);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                return(PartialView("ErrorPartial", new MsgErr()
                {
                    msg = ex.Message
                }));
            }
            return(PartialView(msg));
        }
Пример #3
0
        public bool sendMail(ModelloMsgMail msgMail)
        {
            MailMessage messaggio = new MailMessage();

            //string NomeMittente = string.Empty;

            if (msgMail.mittente == null || string.IsNullOrWhiteSpace(msgMail.mittente.EmailMittente))
            {
                string mittenteIse = System.Configuration.ConfigurationManager.AppSettings["EmailISE"];
                messaggio.From = new MailAddress(mittenteIse, "ISE");
            }
            else
            {
                messaggio.From = new MailAddress(msgMail.mittente.EmailMittente, msgMail.mittente.Nominativo);
            }

            List <Destinatario> Destinatari = msgMail.destinatario.ToList();

            foreach (var d in Destinatari)
            {
                messaggio.To.Add(new MailAddress(d.EmailDestinatario, d.Nominativo));
            }

            if (msgMail.cc?.Any() ?? false)
            {
                List <Destinatario> lcc = msgMail.cc.ToList();

                foreach (var cc in lcc)
                {
                    messaggio.CC.Add(new MailAddress(cc.EmailDestinatario, cc.Nominativo));
                }
            }

            messaggio.Subject         = msgMail.oggetto;
            messaggio.SubjectEncoding = System.Text.Encoding.UTF8;


            messaggio.Priority = msgMail.priorita;

            // Gestire campo vuoto del Body
            //messaggio.Body = @"Il mio messaggio di testo <b>in formato html</b>";
            messaggio.Body         = msgMail.corpoMsg;
            messaggio.BodyEncoding = System.Text.Encoding.UTF8;
            messaggio.IsBodyHtml   = true;

            SmtpClient server = new SmtpClient();

            string host = System.Configuration.ConfigurationManager.AppSettings["HostMail"];

            server.Host = host;
            //server.Port = 587; //465
            server.EnableSsl      = false;
            server.Credentials    = CredentialCache.DefaultNetworkCredentials;
            server.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
            //smtpClient.EnableSsl = true;
            server.Send(messaggio);

            return(true);
        }
Пример #4
0
        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;
            }
        }
Пример #5
0
        public ActionResult MessaggioAnnullaTV(decimal idTitoliViaggio)
        {
            ModelloMsgMail msg = new ModelloMsgMail();

            try
            {
                using (ModelDBISE db = new ModelDBISE())
                {
                    using (dtTitoliViaggi dttv = new dtTitoliViaggi())
                    {
                        using (dtDipendenti dtd = new dtDipendenti())
                        {
                            using (dtTrasferimento dtt = new dtTrasferimento())
                            {
                                using (dtUffici dtu = new dtUffici())
                                {
                                    var t = dtt.GetTrasferimentoByIdTitoloViaggio(idTitoliViaggio);

                                    if (t?.idTrasferimento > 0)
                                    {
                                        var dip = dtd.GetDipendenteByID(t.idDipendente);
                                        var uff = dtu.GetUffici(t.idUfficio);

                                        var    conta_attivazioni = dttv.GetNumAttivazioniTV(idTitoliViaggio, db);
                                        string messaggioAnnulla  = "";

                                        if (conta_attivazioni == 1)
                                        {
                                            messaggioAnnulla = Resources.msgEmail.MessaggioAnnullaRichiestaInizialeTitoloViaggio;
                                        }
                                        else
                                        {
                                            messaggioAnnulla = Resources.msgEmail.MessaggioAnnullaRichiestaSuccessivaTitoloViaggio;
                                        }
                                        msg.corpoMsg            = string.Format(messaggioAnnulla, uff.descUfficio + " (" + uff.codiceUfficio + ")", t.dataPartenza.ToShortDateString());
                                        ViewBag.idTrasferimento = t.idTrasferimento;
                                        ViewBag.idTitoliViaggio = idTitoliViaggio;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                return(PartialView("ErrorPartial", new MsgErr()
                {
                    msg = ex.Message
                }));
            }
            return(PartialView(msg));
        }
Пример #6
0
        public static void EmailAttiva(decimal idTrasferimento, string oggettoMessaggio, string testoMessaggio, ModelDBISE db)
        {
            AccountModel am       = new AccountModel();
            Mittente     mittente = new Mittente();
            Destinatario to       = new Destinatario();
            Destinatario cc       = new Destinatario();

            try
            {
                am = Utility.UtenteAutorizzato();
                if (am.RuoloAccesso.idRuoloAccesso != (decimal)EnumRuoloAccesso.SuperAmministratore)
                {
                    mittente.Nominativo    = am.nominativo;
                    mittente.EmailMittente = am.eMail;
                }

                var t = db.TRASFERIMENTO.Find(idTrasferimento);

                if (t?.IDTRASFERIMENTO > 0)
                {
                    DIPENDENTI dip = t.DIPENDENTI;
                    //UFFICI uff = t.UFFICI;

                    using (GestioneEmail gmail = new GestioneEmail())
                    {
                        using (ModelloMsgMail msgMail = new ModelloMsgMail())
                        {
                            to = new Destinatario()
                            {
                                Nominativo        = dip.NOME + " " + dip.COGNOME,
                                EmailDestinatario = dip.EMAIL,
                            };

                            var lua = db.UTENTIAUTORIZZATI.Where(a => a.IDRUOLOUTENTE == (decimal)EnumRuoloAccesso.Amministratore).ToList();
                            foreach (var ua in lua)
                            {
                                var dipAdmin = ua.DIPENDENTI;

                                if (dipAdmin != null)
                                {
                                    cc = new Destinatario()
                                    {
                                        Nominativo        = dipAdmin.NOME + " " + dipAdmin.COGNOME,
                                        EmailDestinatario = dipAdmin.EMAIL,
                                    };

                                    msgMail.cc.Add(cc);
                                }
                            }

                            msgMail.mittente = mittente;
                            msgMail.destinatario.Add(to);

                            msgMail.oggetto  = oggettoMessaggio;
                            msgMail.corpoMsg = testoMessaggio;

                            gmail.sendMail(msgMail);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #7
0
        public static void EmailNotifica(EnumChiamante chiamante, decimal idTrasferimento, string oggettoMessaggio, string testoMessaggio, ModelDBISE db)
        {
            AccountModel am       = new AccountModel();
            Mittente     mittente = new Mittente();
            Destinatario to       = new Destinatario();
            Destinatario cc       = new Destinatario();

            try
            {
                am = Utility.UtenteAutorizzato();
                if (am.RuoloAccesso.idRuoloAccesso != (decimal)EnumRuoloAccesso.SuperAmministratore)
                {
                    mittente.Nominativo    = am.nominativo;
                    mittente.EmailMittente = am.eMail;
                }

                //var tr = db.TRASFERIMENTO.Find(idTrasferimento);
                //DIPENDENTI d = tr.DIPENDENTI;

                //UFFICI u = tr.UFFICI;

                using (GestioneEmail gmail = new GestioneEmail())
                {
                    using (ModelloMsgMail msgMail = new ModelloMsgMail())
                    {
                        cc = new Destinatario()
                        {
                            Nominativo        = am.nominativo,
                            EmailDestinatario = am.eMail
                        };

                        msgMail.cc.Add(cc);

                        if (chiamante == EnumChiamante.Titoli_Viaggio)
                        {
                            string emailAE = System.Configuration.ConfigurationManager.AppSettings["EmailUfficioGestioneGiuridicaEsviluppo"];

                            to = new Destinatario()
                            {
                                Nominativo        = "Ufficio Gestione Giuridica e Sviluppo",
                                EmailDestinatario = emailAE,
                            };
                            msgMail.destinatario.Add(to);
                        }

                        if (chiamante == EnumChiamante.Passaporti)
                        {
                            string emailOG = System.Configuration.ConfigurationManager.AppSettings["EmailUfficioGestioneEconomica"];

                            to = new Destinatario()
                            {
                                Nominativo        = "Ufficio Personale",
                                EmailDestinatario = emailOG,
                            };
                            msgMail.destinatario.Add(to);
                        }

                        var lua = db.UTENTIAUTORIZZATI.Where(a => a.IDRUOLOUTENTE == (decimal)EnumRuoloAccesso.Amministratore).ToList();
                        foreach (var ua in lua)
                        {
                            var dipAdmin = ua.DIPENDENTI;

                            if (dipAdmin != null)
                            {
                                to = new Destinatario()
                                {
                                    Nominativo        = dipAdmin.NOME + " " + dipAdmin.COGNOME,
                                    EmailDestinatario = dipAdmin.EMAIL,
                                };

                                msgMail.destinatario.Add(to);
                            }
                        }

                        msgMail.mittente = mittente;
                        msgMail.oggetto  = oggettoMessaggio;
                        msgMail.corpoMsg = testoMessaggio;

                        gmail.sendMail(msgMail);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #8
0
        public static void EmailInviiDirettiPrimaSistemazione(decimal idTrasferimento, ModelDBISE db)
        {
            //AccountModel am = new AccountModel();
            Mittente     mittente = new Mittente();
            Destinatario to       = new Destinatario();
            Destinatario cc       = new Destinatario();

            string EmailMittenteIse        = System.Configuration.ConfigurationManager.AppSettings["EmailISE"];
            string destinatarioContabilita = System.Configuration.ConfigurationManager.AppSettings["LineaContabilita"];

            string oggettoMessaggio = string.Empty;
            string testoMessaggio   = string.Empty;

            try
            {
                //am = Utility.UtenteAutorizzato();
                //if (am.RuoloAccesso.idRuoloAccesso != (decimal)EnumRuoloAccesso.SuperAmministratore)
                //{
                //    mittente.Nominativo = am.nominativo;
                //    mittente.EmailMittente = am.eMail;
                //}

                mittente.Nominativo    = "ISE";
                mittente.EmailMittente = EmailMittenteIse;

                var t = db.TRASFERIMENTO.Find(idTrasferimento);

                DIPENDENTI dip        = t.DIPENDENTI;
                string     nominativo = dip.COGNOME + " " + dip.NOME;

                oggettoMessaggio = "ISE - Trasmissione di Indennità di Prima Sistemazione di " + nominativo;

                testoMessaggio += "<p><p align='justify'>Con la presente si comunica che in data <b>" + DateTime.Now.ToShortDateString() + "</b> il Sistema <b>ISE - Indennità Sede Estera</b> - ha ";
                testoMessaggio += "caricato in <b>Oracle Applications</b> un movimento di <i>Indennità di Prima";
                testoMessaggio += "Sistemazione</i> relativo a <b>" + nominativo + "</b> ";
                testoMessaggio += "(<i>matricola</i>: <b>" + dip.MATRICOLA + "</b>).</p></p>";
                testoMessaggio += "<p>Distinti saluti</p> ";
                testoMessaggio += "<b><big>ICE</big> - <big>A</big>genzia per il <big>C</big>ommercio <big>E</big>stero e <big>l'</big>internazionalizzazione</b><br /> ";
                testoMessaggio += "<b>Amministrazione Economica Del Personale</b> ";
                testoMessaggio += "<hr>";


                using (GestioneEmail gmail = new GestioneEmail())
                {
                    using (ModelloMsgMail msgMail = new ModelloMsgMail())
                    {
                        to = new Destinatario()
                        {
                            Nominativo        = "Linea contabilità",
                            EmailDestinatario = destinatarioContabilita,
                        };

                        var lua = db.UTENTIAUTORIZZATI.Where(a => a.IDRUOLOUTENTE == (decimal)EnumRuoloAccesso.Amministratore).ToList();

                        foreach (var ua in lua)
                        {
                            var dipAdmin = ua.DIPENDENTI;

                            if (dipAdmin != null)
                            {
                                cc = new Destinatario()
                                {
                                    Nominativo        = dipAdmin.NOME + " " + dipAdmin.COGNOME,
                                    EmailDestinatario = dipAdmin.EMAIL,
                                };

                                msgMail.cc.Add(cc);
                            }
                        }

                        msgMail.mittente = mittente;
                        msgMail.destinatario.Add(to);

                        msgMail.oggetto  = oggettoMessaggio;
                        msgMail.corpoMsg = testoMessaggio;

                        gmail.sendMail(msgMail);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #9
0
        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;
            }
        }
Пример #10
0
        //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
                        }));
                    }
                }
            }
        }
Пример #11
0
        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);
                }
            }
        }
Пример #12
0
        public ActionResult InviamiPassword(InviamiPswModel ipm)
        {
            ModelloMsgMail      msg      = new ModelloMsgMail();
            DipendenteRest      dr       = new DipendenteRest();
            Destinatario        d        = new Destinatario();
            sAdmin              sad      = new sAdmin();
            string              password = string.Empty;
            List <Destinatario> ld       = new List <Destinatario>();

            try
            {
                if (ModelState.IsValid)
                {
                    using (Config cfg = new Config())
                    {
                        sad = cfg.SuperAmministratore();
                        if (sad.s_admin.Count > 0)
                        {
                            var lutsa = sad.s_admin.Where(a => a.username == ipm.matricola);
                            if (lutsa.Count() > 0)
                            {
                                var utsa = lutsa.First();
                                if (utsa != null)
                                {
                                    d.Nominativo        = utsa.cognome + " " + utsa.nome;
                                    d.EmailDestinatario = utsa.email;
                                    password            = utsa.password;
                                }
                            }
                            else
                            {
                                using (dtDipendentiRest dtdr = new dtDipendentiRest())
                                {
                                    dr = dtdr.GetDipendenteRest(ipm.matricola);
                                }

                                if (string.IsNullOrWhiteSpace(dr.nominativo))
                                {
                                    ModelState.AddModelError("", "Non risulta nessun nominativo per la matricola passata.");
                                    ViewBag.ModelStateCount = 1;
                                    return(View(ipm));
                                }
                                else if (string.IsNullOrWhiteSpace(dr.email))
                                {
                                    ModelState.AddModelError("", "Non è presente nessuna E-mail per la matricola passata.");
                                    ViewBag.ModelStateCount = 1;
                                    return(View(ipm));
                                }

                                d.Nominativo        = dr.nominativo;
                                d.EmailDestinatario = dr.email;
                                password            = dr.password;
                            }
                        }
                    }

                    ld.Add(d);

                    string corpoMsg = @"<h1><strong>ISE (Indennita Sede Estera)</strong></h1>
                                    <h3>Sono state richieste le credenziali&nbsp;per l'utente <strong>{0} ({1}).</strong></h3>
                                    <ul style='list-style-type: square;'>
                                    <li>Username:<strong>{2};</strong></li>
                                    <li>Password: <strong>{3}</strong></li>
                                    </ul>
                                    <hr />
                                    <div style='text-align: right;'>
                                    <p><span style='text-decoration: underline;'>{4} - {5}</span></p>
                                    </div>
                                    <p>&nbsp;</p>";

                    corpoMsg = string.Format(corpoMsg, d.Nominativo, ipm.matricola, ipm.matricola, password,
                                             DateTime.Now.ToLongDateString(), DateTime.Now.ToShortTimeString());

                    using (EmailCredenziali ec = new EmailCredenziali())
                    {
                        msg.oggetto      = "ISE - Password personale";
                        msg.corpoMsg     = corpoMsg;
                        msg.priorita     = System.Net.Mail.MailPriority.High;
                        msg.destinatario = ld;

                        if (!ec.sendMail(msg))
                        {
                            ModelState.AddModelError("", "Errore nell'invio dell'E-mail.");
                            ViewBag.ModelStateCount = 1;
                            return(View());
                        }
                        else
                        {
                            return(RedirectToAction("Index", "Home"));
                        }
                    }
                }
                else
                {
                    ViewBag.ModelStateCount = 0;
                    return(View(ipm));
                }
            }
            catch (Exception ex)
            {
                HandleErrorInfo her = new HandleErrorInfo(ex, "Account", "InviamiPassword");
                return(View("Error", her));
            }
        }
Пример #13
0
        public bool sendMail(ModelloMsgMail msgMail)
        {
            try
            {
                EnumTipoAmbiente RealeSimulazione = (EnumTipoAmbiente)Convert.ToDecimal(System.Configuration.ConfigurationManager.AppSettings["RealeSimulazione"]);

                if (RealeSimulazione == EnumTipoAmbiente.Reale)
                {
                    //bool test = Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["Ambiente"]);

                    AccountModel am = new AccountModel();
                    am = Utility.UtenteAutorizzato();

                    List <AccountModel> lacm = new List <AccountModel>();

                    using (ModelDBISE db = new ModelDBISE())
                    {
                        var ldip =
                            db.DIPENDENTI.Where(
                                a =>
                                a.ABILITATO == true &&
                                (
                                    a.UTENTIAUTORIZZATI.IDRUOLOUTENTE == (decimal)EnumRuoloAccesso.SuperAmministratore ||
                                    a.UTENTIAUTORIZZATI.IDRUOLOUTENTE == (decimal)EnumRuoloAccesso.Amministratore)
                                )
                            .OrderBy(a => a.COGNOME)
                            .ThenBy(a => a.NOME)
                            .ToList();
                        if (ldip?.Any() ?? false)
                        {
                            foreach (var dip in ldip)
                            {
                                AccountModel acm = new AccountModel()
                                {
                                    idDipendente  = dip.IDDIPENDENTE,
                                    idRuoloUtente = dip.UTENTIAUTORIZZATI.IDRUOLOUTENTE,
                                    cognome       = dip.COGNOME,
                                    nome          = dip.NOME,
                                    eMail         = dip.EMAIL,
                                    password      = dip.UTENTIAUTORIZZATI.PSW,
                                    utente        = dip.UTENTIAUTORIZZATI.UTENTE
                                };

                                lacm.Add(acm);
                            }
                        }
                        else
                        {
                            return(false);
                        }
                    }

                    //if (test)
                    //{
                    //    msgMail.destinatario.Clear();

                    //    foreach (var acm in lacm)
                    //    {
                    //        msgMail.destinatario.Add(new Destinatario()
                    //        {
                    //            Nominativo = acm.cognome + " " + acm.nome,
                    //            EmailDestinatario = acm.eMail
                    //        });
                    //    }

                    //    msgMail.cc.Clear();
                    //}
                    //else if (am.idRuoloUtente ==(decimal)EnumRuoloAccesso.SuperAmministratore)
                    //{
                    //    msgMail.destinatario.Clear();
                    //    msgMail.destinatario.Add(new Destinatario()
                    //    {
                    //        Nominativo = am.nominativo,
                    //        EmailDestinatario = am.eMail
                    //    });

                    //    msgMail.cc.Clear();
                    //}


                    MailMessage messaggio = new MailMessage();
                    //string NomeMittente = string.Empty;

                    if (msgMail.mittente == null || string.IsNullOrWhiteSpace(msgMail.mittente.EmailMittente))
                    {
                        string mittenteIse = System.Configuration.ConfigurationManager.AppSettings["EmailISE"];
                        messaggio.From = new MailAddress(mittenteIse, "ISE");
                    }
                    else
                    {
                        messaggio.From = new MailAddress(msgMail.mittente.EmailMittente, msgMail.mittente.Nominativo);
                    }

                    List <Destinatario> Destinatari = msgMail.destinatario.ToList();
                    foreach (var d in Destinatari)
                    {
                        messaggio.To.Add(new MailAddress(d.EmailDestinatario, d.Nominativo));
                    }

                    if (lacm.Count > 0)
                    {
                        foreach (var dipAdmin in lacm)
                        {
                            if (dipAdmin.idRuoloUtente == (decimal)EnumRuoloAccesso.SuperAmministratore)
                            {
                                messaggio.Bcc.Add(new MailAddress(dipAdmin.eMail, dipAdmin.nominativo));
                            }
                            else
                            {
                                messaggio.CC.Add(new MailAddress(dipAdmin.eMail, dipAdmin.nominativo));
                            }
                        }
                    }

                    if (msgMail.cc?.Any() ?? false)
                    {
                        List <Destinatario> lcc = msgMail.cc.ToList();

                        foreach (var cc in lcc)
                        {
                            messaggio.CC.Add(new MailAddress(cc.EmailDestinatario, cc.Nominativo));
                        }
                    }

                    //using (Config.Config cfg = new Config.Config())
                    //{
                    //    sAdmin sad = new sAdmin();
                    //    sad = cfg.SuperAmministratore();
                    //    if (sad.s_admin.Count > 0)
                    //    {
                    //        foreach (var sa in sad.s_admin)
                    //        {
                    //            messaggio.Bcc.Add(new MailAddress(sa.email, sa.nominativo));
                    //        }
                    //    }
                    //}

                    //messaggio.Bcc.Add("*****@*****.**");

                    messaggio.Subject         = msgMail.oggetto;
                    messaggio.SubjectEncoding = System.Text.Encoding.UTF8;

                    if (msgMail.allegato != null && msgMail.allegato.Count > 0)
                    {
                        foreach (var item in msgMail.allegato)
                        {
                            Stream     fs       = item.allegato;
                            Attachment allegato = new Attachment(fs, item.nomeFile);
                            messaggio.Attachments.Add(allegato);
                        }
                    }
                    //FileStream fs = new FileStream(@"C:\Users\UTENTE\Downloads\CPME79-00-AF-01-01(Analisi Funzionale).pdf", FileMode.Open, FileAccess.Read);
                    //Attachment a = new Attachment(fs, "CPME79-00-AF-01-01(Analisi Funzionale).pdf", MediaTypeNames.Application.Octet);


                    //// Code to send Multiple attachments
                    //messaggio.Attachments.Add(new Attachment(@"C:\..\..\Fante.txt"));
                    //messaggio.Attachments.Add(new Attachment(@"D:\abc-xyz\UseFull-Links\How to send an Email using C# – complete features.txt"));

                    messaggio.Priority = msgMail.priorita;

                    // Gestire campo vuoto del Body
                    //messaggio.Body = @"Il mio messaggio di testo <b>in formato html</b>";
                    messaggio.Body         = msgMail.corpoMsg;
                    messaggio.BodyEncoding = System.Text.Encoding.UTF8;
                    messaggio.IsBodyHtml   = true;

                    SmtpClient server = new SmtpClient();

                    string host = System.Configuration.ConfigurationManager.AppSettings["HostMail"];

                    server.Host = host;
                    //server.Port = 587; //465
                    server.EnableSsl      = false;
                    server.Credentials    = CredentialCache.DefaultNetworkCredentials;
                    server.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
                    //smtpClient.EnableSsl = true;
                    server.Send(messaggio);
                }
                return(true);
            }
            catch (SmtpException)
            {
                //Console.WriteLine("Errore: wwwww", e.StatusCode);
                // pLog.descAttivitaSvolta;

                return(false);
            }
        }