root/trunk/Wierszowki/Wierszowki.Web/Controllers/AuthorController.cs

Wersja 844, 3.8 KB (wprowadzona przez alina, 17 years temu)

re #205

Line 
1using System.Linq;
2using System.Web.Mvc;
3using Wierszowki.Core.Linq;
4using Wierszowki.Models;
5using Wierszowki.Services;
6using xVal.ServerSide;
7using System.Collections.Generic;
8using Wierszowki.Core.Interfaces;
9
10namespace Wierszowki.Controllers
11{
12    public class AuthorController : Controller
13    {
14        private readonly WierszowkiDataContext _context;
15
16        public AuthorController()
17        {
18            _context = new WierszowkiDataContext();
19        }
20
21        public ActionResult Index()
22        {
23            var authors = _context.GetAuthors();
24            return View(authors);
25        }
26
27        [Authorize]
28        [AcceptVerbs(HttpVerbs.Get)]
29        public ActionResult Create()
30        {
31            var authorViewData = new AuthorViewData
32            {
33                Author = new Author(),
34                EmploymentTypeList = new SelectList(_context.GetEmploymentTypes().ToList(), "Id", "Name")
35            };
36
37            return View(authorViewData);
38        }
39
40        [Authorize]
41        [AcceptVerbs(HttpVerbs.Post)]
42        public ActionResult Create(Author author)
43        {
44            var authorService = new AuthorService();
45            try
46            {
47                authorService.Create(author);
48            }
49            catch (RulesException ex)
50            {
51                ex.AddModelStateErrors(ModelState, "author");
52            }
53
54            if (ModelState.IsValid)
55            {
56                var confirmViewData = new ConfirmViewData();
57                confirmViewData = InitConfirmViewData(author, OperationType.Create, null);
58                return View("Confirm", confirmViewData);
59                //return RedirectToAction("Confirm", author);
60            }
61
62
63            var authorViewData = new AuthorViewData
64            {
65                Author = author,
66                EmploymentTypeList = new SelectList(_context.GetEmploymentTypes().ToList(), "Id", "Name")
67            };
68            return View(authorViewData);
69        }
70
71
72        [Authorize]
73        public ActionResult Confirm(Author author)
74        {
75            return View(author);
76        }
77
78        [Authorize]
79        [AcceptVerbs(HttpVerbs.Get)]
80        public ActionResult Edit(int id)
81        {
82            var authorViewData = new AuthorViewData
83            {
84                Author = _context.GetAuthorById(id),
85                EmploymentTypeList = new SelectList(_context.GetEmploymentTypes().ToList(), "Id", "Name")
86            };
87
88            return View(authorViewData);
89        }
90
91        [Authorize]
92        [AcceptVerbs(HttpVerbs.Post)]
93        public ActionResult Edit(Author author)
94        {
95            var authorService = new AuthorService();
96            try
97            {
98                authorService.Update(author);
99            }
100            catch (RulesException ex)
101            {
102                ex.AddModelStateErrors(ModelState, "author");
103            }
104
105            if (ModelState.IsValid)
106            {
107                var confirmViewData = new ConfirmViewData();
108                confirmViewData = InitConfirmViewData(author, OperationType.Update, null);
109                return View("Confirm", confirmViewData);
110            }
111            var authorViewData = new AuthorViewData
112            {
113                Author = author,
114                EmploymentTypeList = new SelectList(_context.GetEmploymentTypes().ToList(), "Id", "Name")
115            };
116
117            return View(authorViewData);
118        }
119        private ConfirmViewData InitConfirmViewData(Author author, OperationType c_type, Info inf)
120        {
121            var viewData = new ConfirmViewData
122            {
123                Author = author,
124                akcja = c_type,
125                info = inf
126            };
127            return viewData;
128        }
129    }
130}
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.