root/branches/Abonament/Wierszowki/Wierszowki.Web/Controllers/AuthorController.cs @ 854

Wersja 854, 3.8 KB (wprowadzona przez marek, 17 years temu)

re #184 - merged with latest trunk

RevLine 
[752]1using System.Linq;
2using System.Web.Mvc;
3using Wierszowki.Core.Linq;
4using Wierszowki.Models;
5using Wierszowki.Services;
6using xVal.ServerSide;
[854]7using System.Collections.Generic;
8using Wierszowki.Core.Interfaces;
[752]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
[854]32            {
33                Author = new Author(),
34                EmploymentTypeList = new SelectList(_context.GetEmploymentTypes().ToList(), "Id", "Name")
35            };
[752]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)
[854]55            {
56                var confirmViewData = new ConfirmViewData();
57                confirmViewData = InitConfirmViewData(author, OperationType.Create, null);
58                return View("Confirm", confirmViewData);
59                //return RedirectToAction("Confirm", author);
60            }
[752]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
[854]83            {
84                Author = _context.GetAuthorById(id),
85                EmploymentTypeList = new SelectList(_context.GetEmploymentTypes().ToList(), "Id", "Name")
86            };
[752]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)
[854]106            {
107                var confirmViewData = new ConfirmViewData();
108                confirmViewData = InitConfirmViewData(author, OperationType.Update, null);
109                return View("Confirm", confirmViewData);
110            }
[752]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        }
[854]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        }
[752]129    }
130}
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.