root/trunk/Wierszowki/Wierszowki.Web/Controllers/MagazineItemController.cs @ 823

Wersja 823, 4.8 KB (wprowadzona przez alina, 17 years temu)

re #193,#207 dodano usuwanie wierszówek i dynamiczne listy DropDown?

RevLine 
[752]1using System;
2using System.Linq;
3using System.Web.Mvc;
4using Wierszowki.Core.Linq;
5using Wierszowki.Models;
6using Wierszowki.Services;
7using xVal.ServerSide;
8
9namespace Wierszowki.Controllers
10{
11    public class MagazineItemController : Controller
12    {
13        private readonly WierszowkiDataContext _context;
14        private readonly MagazineItemService _service;
15
16        public MagazineItemController()
17        {
18            _context = new WierszowkiDataContext();
19            _service = new MagazineItemService();
20        }
21
22        public ActionResult Index()
23        {
24            return RedirectToAction("Index", "Report");
25        }
26
27        [Authorize]
28        [AcceptVerbs(HttpVerbs.Get)]
29        [OutputCache(Duration = 10, VaryByParam = "none")]
30        public ActionResult Create()
31        {
32            var viewData = InitMagazineItemViewData();
33            return View(viewData);
34        }
35
36        [Authorize]
37        [AcceptVerbs(HttpVerbs.Post)]
38        public ActionResult Create(MagazineItem magazineItem)
39        {
40            try
41            {
[823]42                _service.Create(magazineItem, ControllerContext.HttpContext.User.Identity.Name);                           
[752]43                ModelState.Clear();
44            }
45            catch (RulesException ex)
46            {
47                ex.AddModelStateErrors(ModelState, "magazineItem");
48            }
[823]49           
[752]50            if (ModelState.IsValid)
51            {
[785]52                return RedirectToAction("Confirm", _context.Authors.Single(a => a.Id == magazineItem.AuthorId));
[752]53            }
54            var viewData = InitMagazineItemViewData();
55            viewData.MagazineItem = magazineItem;
[823]56           
57            return View(viewData);
[752]58        }
59
60        [Authorize]
61        public ActionResult Confirm(Author author)
62        {
63            return View(author);
64        }
65
66        [Authorize]
67        public ActionResult Edit(int id)
68        {
69            var viewData = InitMagazineItemViewData();
70            var magazineItem = _service.Find(id);
[823]71
72            if (magazineItem == null)
73            {
74                ViewData["message"] = "null";
75                return View("Confirm");
76            }
77
[752]78            viewData.MagazineItem = magazineItem;
79            viewData.Magazine = magazineItem.Issue.Magazine;
80            viewData.Issue = magazineItem.Issue;
81            viewData.IssueList = new SelectList(_context.FindIssuesByMagazineItemId(magazineItem.Issue.Id), "Id", "Number");
82            return View(viewData);
83        }
84        [Authorize]
85        [AcceptVerbs(HttpVerbs.Post)]
86        public ActionResult Update(MagazineItem magazineItem)
87        {
88            try
89            {
90                //var service = new MagazineItemService();
91                _service.Update(magazineItem, ControllerContext.HttpContext.User.Identity.Name);
92                ModelState.Clear();
93            }
94            catch (RulesException ex)
95            {
96                ex.AddModelStateErrors(ModelState, "magazineItem");
97            }
98
99            if (ModelState.IsValid)
100            {
101                var author = _context.Authors.Single(a => a.Id == magazineItem.AuthorId);
[823]102                return RedirectToAction("Confirm", author);               
[752]103            }
104            var viewData = InitMagazineItemViewData();
105            viewData.MagazineItem = magazineItem;
[823]106            return View(viewData);           
[752]107        }
108
109        private MagazineItemViewData InitMagazineItemViewData()
110        {
111            var viewData = new MagazineItemViewData
112                               {
113                                   MagazineItem = new MagazineItem(),
114                                   AuthorList = new SelectList(_context.Authors.ToList(), "Id", "FullName"),
115                                   MagazineList = new SelectList(_context.Magazines.ToList(), "Id", "NickName"),
116                                   IssueList = new SelectList(_context.FindIssuesByMagazineId(0), "Id", "Name"),
117                                   ItemTypeList = new SelectList(_context.ItemTypes.ToList(), "Id", "Name")
118                               };
119            return viewData;
120        }
[823]121        [Authorize]
122        public ActionResult Delete(int id)
123        {
124            return View("Delete");
125        }
126        [Authorize]
127        [AcceptVerbs(HttpVerbs.Post)]
128        public ActionResult Delete(MagazineItem magazineItem)
129        {
130            _service.Delete(magazineItem);   
131            if (magazineItem.AuthorId == 0){
132                ViewData["message"] = "null";
133                return View("Confirm");
134            }                                       
135            ViewData["message"] = "delete";
136            return View("Confirm");
137           
138        }
[752]139    }
140}
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.