コード例 #1
0
        public ActionResult LeggiNotifichePDF(decimal id)
        {
            byte[]         Blob;
            NotificheModel documento = new NotificheModel();

            try
            {
                using (ModelDBISE db = new ModelDBISE())
                {
                    using (dtNotifiche dtd = new dtNotifiche())
                    {
                        documento = dtd.GetDatiDocumentoById(id);
                        Blob      = dtd.GetDocumentoByteById(id, db);

                        Response.AddHeader("Content-Disposition", "inline; filename=" + documento.idNotifica + ";");
                        return(File(Blob, "application/pdf"));
                    }
                }
            }
            catch (Exception ex)
            {
                return(PartialView("ErrorPartial", new MsgErr()
                {
                    msg = ex.Message
                }));
            }
        }
コード例 #2
0
        public IList <NotificheModel> GetRicevuteNotifiche(decimal idDipendenteLogato)
        {
            List <NotificheModel> lnot = new List <NotificheModel>();

            using (ModelDBISE db = new ModelDBISE())
            {
                var lDest = db.DESTINATARI.Where(a => a.IDDIPENDENTE == idDipendenteLogato).ToList();

                foreach (var d in lDest)
                {
                    var not = d.NOTIFICHE;

                    var nm = new NotificheModel()
                    {
                        idNotifica     = not.IDNOTIFICA,
                        idMittente     = not.IDMITTENTE,
                        Oggetto        = not.OGGETTO,
                        corpoMessaggio = not.CORPOMESSAGGIO,
                        dataNotifica   = not.DATANOTIFICA,
                        Allegato       = not.ALLEGATO,
                        NomeFile       = not.NOMEDOCUMENTO,
                        Estensione     = not.ESTENSIONEDOC,
                        tocc           = d.TOCC
                    };
                    lnot.Add(nm);
                }
            }
            return(lnot);
        }
コード例 #3
0
        public static void PreSetDocumentoNotifiche(HttpPostedFileBase file, out NotificheModel notmod, out bool esisteFile, out bool gestisceEstensioni, out bool dimensioneConsentita, out string dimensioneMaxDocumento)
        {
            notmod                 = new NotificheModel();
            gestisceEstensioni     = false;
            dimensioneConsentita   = false;
            esisteFile             = false;
            dimensioneMaxDocumento = string.Empty;

            try
            {
                if (file != null && file.ContentLength > 0)
                {
                    esisteFile = true;

                    var estensioniGestite    = new[] { ".pdf" };
                    var estensione           = Path.GetExtension(file.FileName);
                    var nomeFileNoEstensione = Path.GetFileNameWithoutExtension(file.FileName);
                    if (!estensioniGestite.Contains(estensione.ToLower()))
                    {
                        gestisceEstensioni = false;
                    }
                    else
                    {
                        gestisceEstensioni = true;
                    }
                    var keyDimensioneDocumento = System.Configuration.ConfigurationManager.AppSettings["DimensioneDocumento"];

                    dimensioneMaxDocumento = keyDimensioneDocumento;

                    if (file.ContentLength / 1024 <= Convert.ToInt32(keyDimensioneDocumento))
                    {
                        notmod.PDFUpload = file;
                        MemoryStream ms = new MemoryStream();
                        notmod.PDFUpload.InputStream.CopyTo(ms);
                        notmod.Allegato      = ms.ToArray();
                        dimensioneConsentita = true;
                    }
                    else
                    {
                        dimensioneConsentita = false;
                    }
                }
                else
                {
                    esisteFile = false;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #4
0
        public NotificheModel GetDatiDocumentoById(decimal idNotifica)
        {
            NotificheModel dm = new NotificheModel();

            using (ModelDBISE db = new ModelDBISE())
            {
                var d = db.NOTIFICHE.Find(idNotifica);

                if (d != null && d.IDNOTIFICA > 0)
                {
                    dm = new NotificheModel()
                    {
                        idNotifica = d.IDNOTIFICA,
                        Allegato   = d.ALLEGATO,
                        //estensione = d.ESTENSIONE,
                        //tipoDocumento = (EnumTipoDoc)d.IDTIPODOCUMENTO,
                        dataNotifica = d.DATANOTIFICA,
                        //file = f
                    };
                }
            }
            return(dm);
        }
コード例 #5
0
        public ActionResult VisualizzaCorpoMessaggio(decimal idNotifica, string idUtenteLoggato)
        {
            if (string.IsNullOrEmpty(idUtenteLoggato))
            {
                idUtenteLoggato = "0";
            }
            decimal idMittenteLogato   = Utility.UtenteAutorizzato().idDipendente;
            List <NotificheModel> nm   = new List <NotificheModel>();
            NotificheModel        elem = new NotificheModel();

            try
            {
                using (dtNotifiche dn = new dtNotifiche())
                {
                    if (idUtenteLoggato != "1")
                    {
                        nm = dn.GetNotifiche(idMittenteLogato).Where(a => a.idNotifica == idNotifica).ToList();
                    }
                    else
                    {
                        nm = dn.GetNotifiche(idMittenteLogato, idNotifica).ToList();
                    }
                    if (nm.Count() > 0)
                    {
                        elem = nm.First();
                    }
                }
                return(PartialView(elem));
            }
            catch (Exception ex)
            {
                return(PartialView("ErrorPartial", new MsgErr()
                {
                    msg = ex.Message
                }));
            }
        }
コード例 #6
0
        public ActionResult SalvaPDF(string percorso)
        {
            ViewBag.percorso = percorso;
            NotificheModel nm = new NotificheModel();

            using (ModelDBISE db = new ModelDBISE())
            {
                try
                {
                    //  db.Database.BeginTransaction();

                    foreach (string item in Request.Files)
                    {
                        HttpPostedFileBase file        = Request.Files[item] as HttpPostedFileBase;
                        bool   esisteFile              = false;
                        bool   gestisceEstensioni      = false;
                        bool   dimensioneConsentita    = false;
                        string dimensioneMaxConsentita = string.Empty;

                        PreSetDocumentoNotifiche(file, out nm, out esisteFile, out gestisceEstensioni,
                                                 out dimensioneConsentita, out dimensioneMaxConsentita);

                        if (esisteFile)
                        {
                            if (gestisceEstensioni == false)
                            {
                                throw new Exception(
                                          "Il documento selezionato non è nel formato consentito. Il formato supportato è: pdf.");
                            }

                            if (dimensioneConsentita)
                            {
                                //dttv.SetDocumentoTV(ref dm, idTitoliViaggio, db, idTipoDocumento);
                                decimal idMittenteLogato = Utility.UtenteAutorizzato().idDipendente;
                                ViewBag.idMittenteLogato = idMittenteLogato;
                                AggiornaLista();
                                ViewBag.Allegato = nm.Allegato;
                                return(PartialView("NuovaNotifica", nm));
                            }
                            else
                            {
                                throw new Exception(
                                          "Il documento selezionato supera la dimensione massima consentita (" +
                                          dimensioneMaxConsentita + " Mb).");
                            }
                        }
                        else
                        {
                            throw new Exception("Il documento è obbligatorio.");
                        }
                    }
                    // db.Database.CurrentTransaction.Commit();
                    return(Json(new { }));
                }
                catch (Exception ex)
                {
                    // db.Database.CurrentTransaction.Rollback();
                    return(Json(new { error = ex.Message }));
                };
            }
        }
コード例 #7
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
                        }));
                    }
                }
            }
        }
コード例 #8
0
        public bool InsertNotifiche(NotificheModel NM, ModelDBISE db, out bool tutti)
        {
            tutti = false;
            List <DESTINATARI> listDest         = new List <DESTINATARI>();
            decimal            idMittenteLogato = Utility.UtenteAutorizzato().idDipendente;

            using (dtNotifiche dtn = new dtNotifiche())
            {
                //  dtn.RestituisciAutorizzato(idMittenteLogato);
                string[] ld = NM.lDestinatari;
                //DestinatarioModel dm = new DestinatarioModel();
                //List<DestinatarioModel> destMod = new List<DestinatarioModel>();

                if (ld.Length == 1 && ld[0].ToUpper() == "TUTTI")
                {
                    tutti = true;
                    UtentiAutorizzatiModel uta = dtn.RestituisciAutorizzato(idMittenteLogato);
                    var tmp = new List <SelectListItem>();
                    if (uta.idRouloUtente == (decimal)EnumRuoloAccesso.Amministratore)
                    {
                        tmp = GetListaTUTTI((decimal)EnumRuoloAccesso.Utente);
                    }
                    if (uta.idRouloUtente == (decimal)EnumRuoloAccesso.Utente)
                    {
                        tmp = GetListaTUTTI((decimal)EnumRuoloAccesso.Amministratore);
                    }
                    //tmp = GetListaTUTTI(uta.idRouloUtente);// TuttiDestinatari();
                    foreach (var x in tmp)
                    {
                        DESTINATARI d = new DESTINATARI();
                        d.IDNOTIFICA   = NM.idNotifica;
                        d.IDDIPENDENTE = Convert.ToDecimal(x.Value);// RestituisciIDdestinatarioDaEmail(x.Value);
                        listDest.Add(d);
                    }
                }
                else
                {
                    foreach (string email in ld)
                    {
                        DESTINATARI d = new DESTINATARI();
                        d.IDNOTIFICA   = NM.idNotifica;
                        d.IDDIPENDENTE = Convert.ToDecimal(email);// RestituisciIDdestinatarioDaEmail(email);
                        listDest.Add(d);
                    }
                }
                //if (NM.toCc != null)
                //{
                List <DESTINATARI> listToCc = new List <DESTINATARI>();
                string[]           lToCc    = NM.toCc;
                foreach (string email in lToCc)
                {
                    if (email != "null")
                    {
                        DESTINATARI dcc = new DESTINATARI();
                        dcc.IDNOTIFICA   = NM.idNotifica;
                        dcc.IDDIPENDENTE = Convert.ToDecimal(email);// RestituisciIDdestinatarioDaEmail(email);
                        dcc.TOCC         = true;
                        listDest.Add(dcc);
                    }
                }
            }

            if (listDest.Count != 0)
            {
                //try
                //{
                NOTIFICHE nuovo = new NOTIFICHE();
                nuovo.IDMITTENTE     = NM.idMittente;
                nuovo.CORPOMESSAGGIO = NM.corpoMessaggio;
                nuovo.DATANOTIFICA   = DateTime.Now;
                nuovo.OGGETTO        = NM.Oggetto;
                nuovo.DESTINATARI    = listDest;
                nuovo.ALLEGATO       = NM.Allegato;
                nuovo.NOMEDOCUMENTO  = NM.NomeFile;
                nuovo.ESTENSIONEDOC  = NM.Estensione;
                //db.Database.BeginTransaction();
                db.NOTIFICHE.Add(nuovo);
                if (db.SaveChanges() <= 0)
                {
                    throw new Exception("Errore in fase di inserimento notifica");
                }

                //db.Database.CurrentTransaction.Commit();
                NM.idNotifica = nuovo.IDNOTIFICA;
                //}
                //catch (Exception ex)
                //{
                //    //db.Database.CurrentTransaction.Rollback();
                //    throw ex;
                //    //return false;
                //}
            }

            if (listDest.Count != 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }