public IList <DipendentiModel> GetUtenzeAutorizzate(List <UtentiAutorizzatiModel> autList)
        {
            List <DipendentiModel> ldm = new List <DipendentiModel>();
            DipendentiModel        tmp = new DipendentiModel();

            using (ModelDBISE db = new ModelDBISE())
            {
                foreach (var x in autList)
                {
                    var ld = db.DIPENDENTI.Find(x.idDipendente);
                    tmp = new DipendentiModel()
                    {
                        idDipendente        = ld.IDDIPENDENTE,
                        matricola           = ld.MATRICOLA,
                        nome                = ld.NOME,
                        cognome             = ld.COGNOME,
                        dataAssunzione      = ld.DATAASSUNZIONE,
                        dataCessazione      = ld.DATACESSAZIONE,
                        indirizzo           = ld.INDIRIZZO,
                        cap                 = ld.CAP,
                        citta               = ld.CITTA,
                        provincia           = ld.PROVINCIA,
                        email               = ld.EMAIL,
                        telefono            = ld.TELEFONO,
                        fax                 = ld.FAX,
                        abilitato           = ld.ABILITATO,
                        dataInizioRicalcoli = ld.DATAINIZIORICALCOLI
                    };
                    ldm.Add(tmp);
                }
            }
            return(ldm);
        }
        public DipendentiModel GetDatiUtenzaAutorizzata(decimal idd)
        {
            DipendentiModel ldm = new DipendentiModel();

            using (ModelDBISE db = new ModelDBISE())
            {
                var ld = db.DIPENDENTI.Where(b => b.IDDIPENDENTE == idd).ToList();

                ldm = (from e in ld
                       select new DipendentiModel()
                {
                    idDipendente = e.IDDIPENDENTE,
                    matricola = e.MATRICOLA,
                    nome = e.NOME,
                    cognome = e.COGNOME,
                    dataAssunzione = e.DATAASSUNZIONE,
                    dataCessazione = e.DATACESSAZIONE,
                    indirizzo = e.INDIRIZZO,
                    cap = e.CAP,
                    citta = e.CITTA,
                    provincia = e.PROVINCIA,
                    email = e.EMAIL,
                    telefono = e.TELEFONO,
                    fax = e.FAX,
                    abilitato = e.ABILITATO,
                    dataInizioRicalcoli = e.DATAINIZIORICALCOLI
                }).ToList().First();
            }
            return(ldm);
        }
Exemple #3
0
        public ActionResult ElencoEmailSecondarioDip(decimal idd)
        {
            List <EmailSecondarieDipModel> tmp = new List <EmailSecondarieDipModel>();
            DipendentiModel tmp2 = new DipendentiModel();

            try
            {
                using (dtUtenzeDipendenti dtcal = new dtUtenzeDipendenti())
                {
                    tmp  = dtcal.GetListaEmailSecondarioDip(idd);
                    tmp2 = dtcal.GetDatiUtenzaAutorizzata(idd);
                }
            }
            catch (Exception ex)
            {
                return(PartialView("ErrorPartial", new MsgErr()
                {
                    msg = ex.Message
                }));
            }
            ViewBag.emailPrincipale = ""; ViewBag.idDipendente = "0";
            if (tmp2 != null)
            {
                ViewBag.emailPrincipale = tmp2.email;
                ViewBag.idDipendente    = tmp2.idDipendente;
                AggiornaViewBag(tmp2.idDipendente);
            }
            return(PartialView(tmp));
        }
Exemple #4
0
        public List <DipendentiModel> GetListaDipendentiAutorizzati(decimal idRuoloUtente)
        {
            List <DipendentiModel>        ldes    = new List <DipendentiModel>();
            List <DipendentiModel>        ldesdef = new List <DipendentiModel>();
            List <UtentiAutorizzatiModel> uaut    = new List <UtentiAutorizzatiModel>();

            using (ModelDBISE db = new ModelDBISE())
            {
                uaut = (from d in db.UTENTIAUTORIZZATI
                        where d.IDRUOLOUTENTE == idRuoloUtente && d.IDDIPENDENTE > 0
                        select new UtentiAutorizzatiModel()
                {
                    idDipendente = (decimal)d.IDDIPENDENTE,
                    idRouloUtente = idRuoloUtente,
                    Utente = d.UTENTE,
                    psw = d.PSW
                }).ToList();

                foreach (var ut in uaut)
                {
                    DipendentiModel dm = new DipendentiModel();
                    if (idRuoloUtente == (Decimal)EnumRuoloAccesso.Utente)
                    {
                        ldes = (from t in db.TRASFERIMENTO
                                where t.IDDIPENDENTE == ut.idDipendente &&
                                (t.IDSTATOTRASFERIMENTO == (decimal)EnumStatoTraferimento.Attivo || t.IDSTATOTRASFERIMENTO == (decimal)EnumStatoTraferimento.Terminato)
                                select new DipendentiModel()
                        {
                            matricola = t.DIPENDENTI.MATRICOLA,
                            nome = t.DIPENDENTI.NOME == null ? "" : t.DIPENDENTI.NOME,
                            cognome = t.DIPENDENTI.COGNOME == null ? "" : t.DIPENDENTI.COGNOME,
                            email = t.DIPENDENTI.EMAIL == null ? "" : t.DIPENDENTI.EMAIL,
                            idDipendente = t.IDDIPENDENTE,
                        }).ToList();
                    }
                    else if (idRuoloUtente == (Decimal)EnumRuoloAccesso.Amministratore)
                    {
                        ldes = (from t in db.DIPENDENTI
                                where t.IDDIPENDENTE == ut.idDipendente
                                select new DipendentiModel()
                        {
                            matricola = t.MATRICOLA,
                            nome = t.NOME == null ? "" : t.NOME,
                            cognome = t.COGNOME == null ? "" : t.COGNOME,
                            email = t.EMAIL == null ? "" : t.EMAIL,
                            idDipendente = t.IDDIPENDENTE
                        }).ToList();
                    }


                    if (ldes.Count != 0)
                    {
                        dm = ldes.First();
                        ldesdef.Add(dm);
                    }
                }
            }
            return(ldesdef);
        }
Exemple #5
0
        public DipendentiModel RestituisciDipendenteByID(decimal idDipendente, ModelDBISE db)
        {
            DipendentiModel dm = new DipendentiModel();
            DIPENDENTI      d  = db.DIPENDENTI.Find(idDipendente);

            dm.idDipendente = d.IDDIPENDENTE;
            dm.nome         = d.NOME; dm.cognome = d.COGNOME;
            dm.email        = d.EMAIL; d.INDIRIZZO = d.INDIRIZZO;
            return(dm);
        }
Exemple #6
0
 void AggiornaViewBag(decimal idd)
 {
     using (dtUtenzeDipendenti dtcal = new dtUtenzeDipendenti())
     {
         DipendentiModel tmp2 = new DipendentiModel();
         tmp2 = dtcal.GetDatiUtenzaAutorizzata(idd);
         ViewBag.abilitato       = tmp2.abilitato;
         ViewBag.emailPrincipale = tmp2.email;
         ViewBag.idDipendente    = idd;
     }
 }
Exemple #7
0
        public ActionResult VisualizzaEmail(decimal idd)
        {
            ViewBag.idDipendente = idd;
            DipendentiModel tmp2 = new DipendentiModel();

            using (dtUtenzeDipendenti dtcal = new dtUtenzeDipendenti())
            {
                tmp2 = dtcal.GetDatiUtenzaAutorizzata(idd);
                ViewBag.abilitato = tmp2.abilitato;
            }
            return(PartialView(tmp2));
        }
Exemple #8
0
        public DipendentiModel GetDipendenteByMatricola(string matricola)
        {
            DipendentiModel dm   = new DipendentiModel();
            int             matr = 0;

            using (ModelDBISE db = new ModelDBISE())
            {
                try
                {
                    matr = Convert.ToInt32(matricola);

                    DIPENDENTI d = db.DIPENDENTI.Where(a => a.MATRICOLA == matr).First();

                    dm = new DipendentiModel()
                    {
                        idDipendente        = d.IDDIPENDENTE,
                        matricola           = d.MATRICOLA,
                        nome                = d.NOME,
                        cognome             = d.COGNOME,
                        dataAssunzione      = d.DATAASSUNZIONE,
                        dataCessazione      = d.DATACESSAZIONE,
                        indirizzo           = d.INDIRIZZO,
                        cap                 = d.CAP,
                        citta               = d.CITTA,
                        provincia           = d.PROVINCIA,
                        email               = d.EMAIL,
                        telefono            = d.TELEFONO,
                        fax                 = d.FAX,
                        abilitato           = d.ABILITATO,
                        dataInizioRicalcoli = d.DATAINIZIORICALCOLI,
                        cdcGepe             = new CDCGepeModel()
                        {
                            iddipendente       = d.CDCGEPE.IDDIPENDENTE,
                            codiceCDC          = d.CDCGEPE.CODICECDC,
                            descCDC            = d.CDCGEPE.DESCCDC,
                            dataInizioValidita = d.CDCGEPE.DATAINIZIOVALIDITA
                        }
                    };
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            return(dm);
        }
Exemple #9
0
        /// <summary>
        /// preleva il dipendente in base all'id trasferimento passato.
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public DipendentiModel GetDipendenteByIDTrasf(decimal idTrasf)
        {
            DipendentiModel dm = new DipendentiModel();

            using (ModelDBISE db = new ModelDBISE())
            {
                TRASFERIMENTO t = db.TRASFERIMENTO.Find(idTrasf);

                var d = t.DIPENDENTI;

                dm = new DipendentiModel()
                {
                    idDipendente        = d.IDDIPENDENTE,
                    matricola           = d.MATRICOLA,
                    nome                = d.NOME,
                    cognome             = d.COGNOME,
                    dataAssunzione      = d.DATAASSUNZIONE,
                    dataCessazione      = d.DATACESSAZIONE,
                    indirizzo           = d.INDIRIZZO,
                    cap                 = d.CAP,
                    citta               = d.CITTA,
                    provincia           = d.PROVINCIA,
                    email               = d.EMAIL,
                    telefono            = d.TELEFONO,
                    fax                 = d.FAX,
                    abilitato           = d.ABILITATO,
                    dataInizioRicalcoli = d.DATAINIZIORICALCOLI,
                    cdcGepe             = new CDCGepeModel()
                    {
                        iddipendente       = d.CDCGEPE.IDDIPENDENTE,
                        codiceCDC          = d.CDCGEPE.CODICECDC,
                        descCDC            = d.CDCGEPE.DESCCDC,
                        dataInizioValidita = d.CDCGEPE.DATAINIZIOVALIDITA
                    }
                };
            }



            return(dm);
        }
Exemple #10
0
        public DipendentiModel GetDipendenteByEmail(string email, ModelDBISE db)
        {
            DipendentiModel dm = new DipendentiModel();

            var ld = db.DIPENDENTI.Where(a => a.EMAIL == email).ToList();

            if (ld?.Any() ?? false)
            {
                var d = ld.First();

                dm = new DipendentiModel()
                {
                    idDipendente        = d.IDDIPENDENTE,
                    matricola           = d.MATRICOLA,
                    nome                = d.NOME,
                    cognome             = d.COGNOME,
                    dataAssunzione      = d.DATAASSUNZIONE,
                    dataCessazione      = d.DATACESSAZIONE,
                    indirizzo           = d.INDIRIZZO,
                    cap                 = d.CAP,
                    citta               = d.CITTA,
                    provincia           = d.PROVINCIA,
                    email               = d.EMAIL,
                    telefono            = d.TELEFONO,
                    fax                 = d.FAX,
                    abilitato           = d.ABILITATO,
                    dataInizioRicalcoli = d.DATAINIZIORICALCOLI,
                    cdcGepe             = new CDCGepeModel()
                    {
                        iddipendente       = d.CDCGEPE.IDDIPENDENTE,
                        codiceCDC          = d.CDCGEPE.CODICECDC,
                        descCDC            = d.CDCGEPE.DESCCDC,
                        dataInizioValidita = d.CDCGEPE.DATAINIZIOVALIDITA
                    }
                };
            }

            return(dm);
        }
Exemple #11
0
 public ActionResult NuovaEmail(decimal idd)
 {
     ViewBag.idDipendente = idd;
     try
     {
         DipendentiModel tmp2 = new DipendentiModel();
         using (dtUtenzeDipendenti dtcal = new dtUtenzeDipendenti())
         {
             tmp2 = dtcal.GetDatiUtenzaAutorizzata(idd);
         }
         ViewBag.abilitato       = tmp2.abilitato;
         ViewBag.emailPrincipale = tmp2.email;
         return(PartialView());
     }
     catch (Exception ex)
     {
         return(PartialView("ErrorPartial", new MsgErr()
         {
             msg = ex.Message
         }));
     }
 }
Exemple #12
0
        public ActionResult DipendentiGepe(string matricola = "")
        {
            var  rMatricola            = new List <SelectListItem>();
            var  rNominativo           = new List <SelectListItem>();
            bool admin                 = false;
            List <DipendentiModel> ldm = new List <DipendentiModel>();
            DipendentiModel        dm  = new DipendentiModel();
            AccountModel           ac  = new AccountModel();

            try
            {
                admin = Utility.Amministratore(out ac);

                using (dtDipendenti dtd = new dtDipendenti())
                {
                    if (!admin)
                    {
                        ldm.Add(dtd.GetDipendenteByMatricola(Convert.ToInt16(ac.utente)));
                    }
                    else if (matricola != string.Empty && admin == false)
                    {
                        ldm.Add(dtd.GetDipendenteByMatricola(Convert.ToInt16(matricola)));
                    }
                    else
                    {
                        ldm = dtd.GetDipendenti().ToList();
                    }

                    if (ldm.Count > 0)
                    {
                        foreach (var item in ldm)
                        {
                            rMatricola.Add(new SelectListItem()
                            {
                                Text  = item.matricola.ToString(),
                                Value = item.matricola.ToString()
                            });

                            rNominativo.Add(new SelectListItem()
                            {
                                Text  = item.Nominativo + " (" + item.matricola.ToString() + ")",
                                Value = item.matricola.ToString()
                            });
                        }

                        rMatricola.Insert(0, new SelectListItem()
                        {
                            Text = "", Value = ""
                        });

                        rNominativo.Insert(0, new SelectListItem()
                        {
                            Text = "", Value = ""
                        });

                        if (matricola == string.Empty)
                        {
                            rMatricola.First().Selected  = true;
                            rNominativo.First().Selected = true;
                        }
                        else
                        {
                            foreach (var item in rMatricola)
                            {
                                if (matricola == item.Value)
                                {
                                    item.Selected = true;
                                }
                            }

                            foreach (var item in rNominativo)
                            {
                                if (matricola == item.Value)
                                {
                                    item.Selected = true;
                                }
                            }
                        }
                    }
                }


                if (matricola != string.Empty)
                {
                    dm = ldm.Where(a => a.matricola == Convert.ToInt16(matricola)).First();

                    using (dtCDCGepe dtcdcg = new dtCDCGepe())
                    {
                        dm.cdcGepe = dtcdcg.GetCDCGepe(dm.idDipendente);
                    }

                    using (dtLivelliDipendente dtpl = new dtLivelliDipendente())
                    {
                        dm.livelloDipendenteValido = dtpl.GetLivelloDipendente(dm.idDipendente, DateTime.Now.Date);
                    }
                }


                //ViewBag.ListDipendentiGepeMatricola = rMatricola.OrderBy(a=>a.Text);
                ViewBag.ListDipendentiGepeNominativo = rNominativo.OrderBy(a => a.Text);
                ViewBag.Amministratore = admin;
                ViewBag.Matricola      = dm.matricola;
                ViewBag.Nominativo     = dm.Nominativo;
            }
            catch (Exception ex)
            {
                return(PartialView("ErrorPartial", new MsgErr()
                {
                    msg = ex.Message
                }));
            }

            return(PartialView(dm));
        }
Exemple #13
0
        public static AccountModel UtenteAutorizzato()
        {
            ClaimsPrincipal currentClaimsPrincipal = ClaimsPrincipal.Current;
            //AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.NameIdentifier;

            AccountModel ac = new AccountModel();

            if (currentClaimsPrincipal.Identity.IsAuthenticated)
            {
                foreach (Claim claim in currentClaimsPrincipal.Claims)
                {
                    if (claim.Type == ClaimTypes.NameIdentifier)
                    {
                        ac.idDipendente = Convert.ToDecimal(claim.Value);
                    }
                    else if (claim.Type == ClaimTypes.Name)
                    {
                        ac.nome = claim.Value;
                    }
                    else if (claim.Type == ClaimTypes.Surname)
                    {
                        ac.cognome = claim.Value;
                    }
                    else if (claim.Type == ClaimTypes.GivenName)
                    {
                        ac.utente = claim.Value;
                    }
                    else if (claim.Type == ClaimTypes.Email)
                    {
                        ac.eMail = claim.Value;
                    }
                    else if (claim.Type == ClaimTypes.Role)
                    {
                        ac.idRuoloUtente = Convert.ToDecimal(claim.Value);
                    }
                }



                if (ac.idRuoloUtente > 0)
                {
                    using (ModelDBISE db = new ModelDBISE())
                    {
                        RUOLOACCESSO ruolo = db.RUOLOACCESSO.Find(ac.idRuoloUtente);
                        if (ruolo != null)
                        {
                            ac.RuoloAccesso = new RuoloAccesoModel()
                            {
                                idRuoloAccesso   = ruolo.IDRUOLOACCESSO,
                                descRuoloAccesso = ruolo.DESCRUOLO
                            };
                        }

                        UTENTIAUTORIZZATI ua = db.UTENTIAUTORIZZATI.Find(ac.idDipendente);
                        DIPENDENTI        d  = ua.DIPENDENTI;

                        if (d?.IDDIPENDENTE > 0)
                        {
                            ac.idDipendente = d.IDDIPENDENTE;

                            DipendentiModel dm = new DipendentiModel()
                            {
                                idDipendente        = d.IDDIPENDENTE,
                                matricola           = d.MATRICOLA,
                                nome                = d.NOME,
                                cognome             = d.COGNOME,
                                dataAssunzione      = d.DATAASSUNZIONE,
                                dataCessazione      = d.DATACESSAZIONE,
                                indirizzo           = d.INDIRIZZO,
                                cap                 = d.CAP,
                                citta               = d.CITTA,
                                provincia           = d.PROVINCIA,
                                email               = d.EMAIL,
                                telefono            = d.TELEFONO,
                                fax                 = d.FAX,
                                abilitato           = d.ABILITATO,
                                dataInizioRicalcoli = d.DATAINIZIORICALCOLI
                            };

                            ac.Dipendenti = dm;
                        }
                    }
                }
            }

            return(ac);
        }
Exemple #14
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
                        }));
                    }
                }
            }
        }
        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);
                }
            }
        }