Ejemplo n.º 1
0
        public bool SendNotifica(PERSONA mittente, PERSONA destinatario, TipoNotifica messaggio, ControllerContext controller, string view, object datiNotifica, ATTIVITA attivitaMittente = null, DatabaseContext db = null)
        {
            bool nuovaConnessione = true;

            try
            {
                if (db != null && db.Database.Connection.State == System.Data.ConnectionState.Open)
                {
                    nuovaConnessione = false;
                }

                NOTIFICA notifica = new NOTIFICA();
                notifica.ID_PERSONA = mittente.ID;
                if (attivitaMittente != null)
                {
                    notifica.ID_ATTIVITA = attivitaMittente.ID;
                }
                notifica.ID_PERSONA_DESTINATARIO = destinatario.ID;
                notifica.MESSAGGIO        = (int)messaggio;
                notifica.STATO            = (int)StatoNotifica.ATTIVA;
                notifica.DATA_INSERIMENTO = DateTime.Now;
                if (nuovaConnessione)
                {
                    db = new DatabaseContext();
                }

                db.NOTIFICA.Add(notifica);
                return(db.SaveChanges() > 0);
            }
            catch (Exception eccezione)
            {
                //Elmah.ErrorSignal.FromCurrentContext().Raise(eccezione);
                LoggatoreModel.Errore(eccezione);
            }
            finally
            {
                if (nuovaConnessione && db != null)
                {
                    db.Database.Connection.Close();
                }

                try
                {
                    string indirizzoEmail = destinatario.PERSONA_EMAIL.SingleOrDefault(e => e.TIPO == (int)TipoEmail.Registrazione).EMAIL;
                    // modificare oggetto recuperando dal tipo notifica la stringa
                    string oggetto = Components.EnumHelper <TipoNotifica> .GetDisplayValue(messaggio);

                    SendEmail(indirizzoEmail, oggetto, controller, view, datiNotifica);
                    SendChat("", oggetto);
                }
                catch (Exception eccezione)
                {
                    //Elmah.ErrorSignal.FromCurrentContext().Raise(eccezione);
                    LoggatoreModel.Errore(eccezione);
                }
            }
            return(false);
        }
Ejemplo n.º 2
0
        public ActionResult SuggestAdActivation(string chiave1, string idAttivita = null)
        {
            string backUrl = Request.UrlReferrer.PathAndQuery;

            using (DatabaseContext db = new DatabaseContext())
            {
                //string tokenAnnuncio = id.Substring(3, id.Length - 6);
                db.Database.Connection.Open();
                ANNUNCIO annuncio    = db.ANNUNCIO.Single(m => m.TOKEN.ToString() == chiave1);
                int      idAnnuncio  = annuncio.ID;
                PERSONA  persona     = (Session["utente"] as PersonaModel).Persona;
                int      idUtente    = persona.ID;
                int?     keyAttivita = null;
                // se è stata selezionata una attività commerciale dell'utente
                List <AttivitaModel> listaAttivita = (Session["utente"] as PersonaModel).Attivita;
                if (listaAttivita != null && listaAttivita.Count > 0 && !string.IsNullOrWhiteSpace(idAttivita))
                {
                    keyAttivita = listaAttivita.SingleOrDefault(m => m.Attivita.TOKEN.ToString() == idAttivita).ID;
                }
                // notifica già inviata.
                if (db.ANNUNCIO_NOTIFICA.Count(m => m.ID_ANNUNCIO == idAnnuncio && (m.NOTIFICA.ID_PERSONA == idUtente || (keyAttivita != null && m.NOTIFICA.ID_ATTIVITA == keyAttivita))) > 0)
                {
                    TempData["MESSAGGIO"] = Language.SuggestAdActivationError;
                    //return RedirectToAction("", "Cerca");
                    return(Redirect(backUrl));
                }
                Guid portale = Guid.Parse(System.Configuration.ConfigurationManager.AppSettings["portaleweb"]);
                int  bonus   = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["bonusSuggerimentoAttivazioneAnnuncio"]);
                this.AddBonus(db, ControllerContext, persona, portale, bonus, TipoTransazione.BonusSuggerimentoAttivazioneAnnuncio, Bonus.SuggestAdActivation);

                NOTIFICA notifica = new NOTIFICA();
                notifica.ID_PERSONA               = idUtente;
                notifica.ID_ATTIVITA              = keyAttivita;
                notifica.ID_PERSONA_DESTINATARIO  = annuncio.ID_PERSONA;
                notifica.ID_ATTIVITA_DESTINATARIO = annuncio.ID_ATTIVITA;
                notifica.MESSAGGIO        = (int)TipoNotifica.AttivaAnnuncio;
                notifica.DATA_INSERIMENTO = DateTime.Now;
                notifica.STATO            = (int)Stato.ATTIVO;
                db.NOTIFICA.Add(notifica);
                if (db.SaveChanges() > 0)
                {
                    db.ANNUNCIO_NOTIFICA.Add(new ANNUNCIO_NOTIFICA()
                    {
                        ID_ANNUNCIO = idAnnuncio,
                        ID_NOTIFICA = notifica.ID
                    });
                    if (db.SaveChanges() > 0)
                    {
                        TempData["MESSAGGIO"] = Language.SuggestAdActivationOK;
                        //return RedirectToAction("", "Cerca");
                        return(Redirect(backUrl));
                    }
                }
            }
            TempData["MESSAGGIO"] = Language.SuggestAdActivationKO;
            //return RedirectToAction("", "Cerca");
            return(Redirect(backUrl));
        }
Ejemplo n.º 3
0
        public ActionResult Index(int id)
        {
            UtenteNotificaViewModel utenteNotifica = new UtenteNotificaViewModel();

            using (DatabaseContext db = new DatabaseContext())
            {
                int      idUtente = (Session["utente"] as PersonaModel).Persona.ID;
                NOTIFICA model    = db.NOTIFICA.Include(m => m.ANNUNCIO_NOTIFICA)
                                    .SingleOrDefault(m => m.ID == id && m.ID_PERSONA_DESTINATARIO == idUtente);
                if (model == null)
                {
                    RedirectToAction("", "Home");
                }

                utenteNotifica.getTipoNotifica(db, model);
                RefreshPunteggioUtente(db);
            }
            return(View(utenteNotifica));
        }
Ejemplo n.º 4
0
        public void Letto(int id)
        {
            PersonaModel utente = base.Session["utente"] as PersonaModel;

            using (DatabaseContext db = new DatabaseContext())
            {
                db.Database.Connection.Open();
                NOTIFICA model = db.NOTIFICA.Include(m => m.ANNUNCIO_NOTIFICA)
                                 .SingleOrDefault(m => m.ID == id && m.ID_PERSONA_DESTINATARIO == utente.Persona.ID);

                if (model != null && model.DATA_LETTURA == null)
                {
                    model.DATA_LETTURA  = DateTime.Now;
                    model.DATA_MODIFICA = DateTime.Now;
                    model.STATO         = (int)StatoNotifica.LETTA;
                    db.SaveChanges();
                }
            }
        }
Ejemplo n.º 5
0
        public JsonResult DeleteNews(int id)
        {
            using (DatabaseContext db = new DatabaseContext())
            {
                db.Database.Connection.Open();
                PersonaModel utente   = (Session["utente"] as PersonaModel);
                NOTIFICA     notifica = db.NOTIFICA.SingleOrDefault(m => m.ID == id &&
                                                                    m.ID_PERSONA_DESTINATARIO == utente.Persona.ID);

                if (notifica != null)
                {
                    if (notifica.ANNUNCIO_NOTIFICA != null && notifica.ANNUNCIO_NOTIFICA.Count > 0)
                    {
                        db.ANNUNCIO_NOTIFICA.RemoveRange(notifica.ANNUNCIO_NOTIFICA);
                    }
                    db.NOTIFICA.Remove(notifica);
                    if (db.SaveChanges() > 0)
                    {
                        return(Json(true));
                    }
                }
            }
            return(Json(false));
        }