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

Wersja 752, 4.0 KB (wprowadzona przez marek, 17 years temu)

wiersz

Line 
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            {
42                _service.Create(magazineItem, ControllerContext.HttpContext.User.Identity.Name);
43                ModelState.Clear();
44            }
45            catch (RulesException ex)
46            {
47                ex.AddModelStateErrors(ModelState, "magazineItem");
48            }
49
50            if (ModelState.IsValid)
51            {
52                var author = _context.Authors.Single(a => a.Id == magazineItem.AuthorId);
53                return RedirectToAction("Confirm", author);
54            }
55
56            var viewData = InitMagazineItemViewData();
57            viewData.MagazineItem = magazineItem;
58            return View(viewData);
59        }
60
61        [Authorize]
62        public ActionResult Confirm(Author author)
63        {
64            return View(author);
65        }
66
67        [Authorize]
68        public ActionResult Edit(int id)
69        {
70            var viewData = InitMagazineItemViewData();
71            var magazineItem = _service.Find(id);
72            viewData.MagazineItem = magazineItem;
73            viewData.Magazine = magazineItem.Issue.Magazine;
74            viewData.Issue = magazineItem.Issue;
75            viewData.IssueList = new SelectList(_context.FindIssuesByMagazineItemId(magazineItem.Issue.Id), "Id", "Number");
76            return View(viewData);
77        }
78
79        [Authorize]
80        [AcceptVerbs(HttpVerbs.Post)]
81        public ActionResult Update(MagazineItem magazineItem)
82        {
83            try
84            {
85                //var service = new MagazineItemService();
86                _service.Update(magazineItem, ControllerContext.HttpContext.User.Identity.Name);
87                ModelState.Clear();
88            }
89            catch (RulesException ex)
90            {
91                ex.AddModelStateErrors(ModelState, "magazineItem");
92            }
93
94            if (ModelState.IsValid)
95            {
96                var author = _context.Authors.Single(a => a.Id == magazineItem.AuthorId);
97                return RedirectToAction("Confirm", author);
98            }
99
100            var viewData = InitMagazineItemViewData();
101            viewData.MagazineItem = magazineItem;
102            return View(viewData);
103        }
104
105        private MagazineItemViewData InitMagazineItemViewData()
106        {
107            var viewData = new MagazineItemViewData
108                               {
109                                   MagazineItem = new MagazineItem(),
110                                   AuthorList = new SelectList(_context.Authors.ToList(), "Id", "FullName"),
111                                   MagazineList = new SelectList(_context.Magazines.ToList(), "Id", "NickName"),
112                                   IssueList = new SelectList(_context.FindIssuesByMagazineId(0), "Id", "Name"),
113                                   ItemTypeList = new SelectList(_context.ItemTypes.ToList(), "Id", "Name")
114                               };
115            return viewData;
116        }
117    }
118}
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.