Advertisement
NelloRizzo

NewsController

Jan 18th, 2018
361
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.97 KB | None | 0 0
  1. using AssaBusiness;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data.SqlClient;
  5. using System.Linq;
  6. using System.Web;
  7. using System.Web.Mvc;
  8.  
  9. namespace MyBlog.Web.Controllers
  10. {
  11.     public class NewsController : Controller
  12.     {
  13.         // GET: News
  14.         public ActionResult Index()
  15.         {
  16.             // accedo al business layer
  17.             Business b = new Business();
  18.             if (b.ReadNews().Count() == 0)
  19.             {
  20.                 b.CreateNews(new News() { Title = "Primo Articolo" });
  21.                 b.CreateNews(new News() { Title = "Secondo Articolo" });
  22.                 b.CreateNews(new News() { Title = "Terzo Articolo" });
  23.             }
  24.             // prendo i dati delle news e
  25.             // li passo alla vista che li deve visualizzare
  26.             return View(b.ReadNews());
  27.         }
  28.  
  29.         public ActionResult Create()
  30.         {
  31.             // creo una notizia vuota
  32.             News news = new News();
  33.             // e la passo alla visualizzazione affinché l'utente
  34.             // possa scrivere al suo interno
  35.             return View(news);
  36.         }
  37.  
  38.         // IN RISPOSTA AD UN SUBMIT DI UN FORM,
  39.         // LA RICHIESTA AL SERVER AVVIENE SECONDO IL METODO "POST"
  40.         // PER QUESTO DOBBIAMO ISTRUIRE IL CONTROLLER!!!
  41.         [HttpPost] // Attributo -> aggiunge elementi che saranno di competenza del compilatore
  42.         // Abbiamo anche la possibilità di verificare la protezione
  43.         // contro gli attacchi CROSS-ORIGIN
  44.         [ValidateAntiForgeryToken]
  45.         // Il model binder prende ciò che l'utente ha
  46.         // scritto nel form e crea un oggetto model (News nel nostro caso)
  47.         // e lo passa alla action che dovrà gestirlo!
  48.         //                          |
  49.         //                          V
  50.         public ActionResult Create(News news)
  51.         {
  52.             Business b = new Business();
  53.             b.CreateNews(news);
  54.             // probabilmente dopo la creazione
  55.             // sarà preferibile rimandare l'utente alla pagina che
  56.             // mostra l'elenco delle News
  57.             return RedirectToAction("Index");
  58.         }
  59.  
  60.  
  61.         // action che propone all'utente la pagina per la modifica delle news
  62.         // a questa action arriv al'id della news da modificare
  63.         public ActionResult Edit(int id)
  64.         {
  65.             // accedo al business layer
  66.             Business b = new Business();
  67.             // recupero la news da modificare
  68.             News news = b.ReadNews(id);
  69.             // se per qualche motivo non ho potuto recuperare la news
  70.             // ritorno alla pagina indice
  71.             if (news == null) return RedirectToAction("Index");
  72.             // altrimenti passo la news alla vista che deve
  73.             // presentarla all'utente per la modifica
  74.             return View(news);
  75.         }
  76.  
  77.         [HttpPost]
  78.         [ValidateAntiForgeryToken]
  79.         public ActionResult Edit(News news)
  80.         {
  81.             // accedo al business layer
  82.             Business b = new Business();
  83.             // chiedo di aggiornare la news
  84.             b.UpdateNews(news);
  85.             // ritorno all'elenco delle news con
  86.             // la news modificata!
  87.             return RedirectToAction("Index");
  88.         }
  89.  
  90.         public ActionResult Delete(int id)
  91.         {
  92.             // accedo al business layer
  93.             Business b = new Business();
  94.             // recupero la news da cancellare
  95.             News news = b.ReadNews(id);
  96.             // se per qualche motivo non ho potuto recuperare la news
  97.             // ritorno alla pagina indice
  98.             if (news == null) return RedirectToAction("Index");
  99.             // altrimenti passo la news alla vista che deve
  100.             // chiedere all'utente se effettivamente vuole cancellarla!
  101.             return View(news);
  102.         }
  103.  
  104.         [HttpPost]
  105.         [ValidateAntiForgeryToken]
  106.         public ActionResult Delete(News news)
  107.         {
  108.             try
  109.             {
  110.                 // accedo al business layer
  111.                 Business b = new Business();
  112.                 // chiedo di eliminare la news
  113.                 b.DeleteNews(news.Id);
  114.             }
  115.             catch (SqlException ex)
  116.             {
  117.  
  118.             }
  119.             catch (Exception ex)
  120.             {
  121.  
  122.             }
  123.             // ritorno all'elenco delle news con
  124.             // la news eliminata!
  125.             return RedirectToAction("Index");
  126.         }
  127.  
  128.         public ActionResult Details(int id)
  129.         {
  130.             // accedo al business layer
  131.             Business b = new Business();
  132.             // recupero la news da visualizzare
  133.             News news = b.ReadNews(id);
  134.             // se per qualche motivo non ho potuto recuperare la news
  135.             // ritorno alla pagina indice
  136.             if (news == null) return RedirectToAction("Index");
  137.             // altrimenti passo la news alla vista che deve
  138.             // mostrare all'utente la news!
  139.             return View(news);
  140.         }
  141.     }
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement