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)); }
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; }