public ActionResult Index(int id, TipoFeedback tipo)
        {
            string nomeView = "";
            // verificare come visualizzare soltanto
            // verificare come differenziare tra compratore e venditore
            FeedbackViewModel viewModel = new FeedbackViewModel();

            try
            {
                if (ModelState.IsValid)
                {
                    using (DatabaseContext db = new DatabaseContext())
                    {
                        //string acquistoDecodificato = Uri.UnescapeDataString(id);
                        //string acquistoPulito = acquistoDecodificato.Trim().Substring(3, acquistoDecodificato.Trim().Length - 6);
                        //int idAcquisto = Utility.DecodeToInt(acquistoPulito);
                        int idUtente            = (Session["utente"] as PersonaModel).Persona.ID;
                        ANNUNCIO_FEEDBACK model = db.ANNUNCIO_FEEDBACK.Where(f => f.ID_ANNUNCIO == id && f.ID_VOTANTE == idUtente).SingleOrDefault();
                        if (model != null)
                        {
                            TempData["feedback"] = model;
                            return(RedirectToAction("Inviato", new { id = model.ID }));
                        }

                        // se è un nuovo voto, recupero i dati del pagamento
                        ANNUNCIO model2 = null;
                        if (tipo == TipoFeedback.Acquirente)
                        {
                            model2               = db.ANNUNCIO.Where(p => p.ID == id && p.ID_PERSONA != idUtente).SingleOrDefault();
                            viewModel.Nome       = model2.NOME;
                            viewModel.AcquistoID = id;
                            viewModel.Tipo       = tipo;
                        }
                        else if (tipo == TipoFeedback.Venditore)
                        {
                            model2               = db.ANNUNCIO.Where(p => p.ID == id && p.ID_PERSONA == idUtente).SingleOrDefault();
                            viewModel.Nome       = model2.NOME;
                            viewModel.AcquistoID = id;
                            viewModel.Tipo       = tipo;
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                //Elmah.ErrorSignal.FromCurrentContext().Raise(exception);
                LoggatoreModel.Errore(exception);
                // se ha un errore generico o semplicemente sta cercando di fare un feedback
                return(Redirect(System.Web.Security.FormsAuthentication.DefaultUrl));
            }
            return(View(nomeView, viewModel));
        }
Esempio n. 2
0
 public Feedback(
     TipoFeedback tipo,
     string mensagem,
     IEnumerable <string> mensagensAdicionais = null,
     TipoAcaoAoOcultarFeedback tipoAcao       = TipoAcaoAoOcultarFeedback.Ocultar)
 {
     Tipo              = tipo;
     Mensagem          = mensagem;
     MensagemAdicional = mensagensAdicionais != null && mensagensAdicionais.Any()
         ? string.Join(string.Empty, mensagensAdicionais.Where(x => !string.IsNullOrEmpty(x)).Select(x => "<li>" + x + "</li>"))
         : string.Empty;
     TipoAcao = tipoAcao;
 }