root/trunk/Wierszowki/Wierszowki.Web/Controllers/UserController.cs @ 842

Wersja 842, 4.3 KB (wprowadzona przez alina, 17 years temu)

fix #207, #193, #205

Line 
1using System;
2using System.Linq;
3using System.Web.Mvc;
4using Wierszowki.Core.Interfaces;
5using Wierszowki.Core.Linq;
6using Wierszowki.Services;
7using Wierszowki.Services.Interfaces;
8using xVal.ServerSide;
9using Wierszowki.Models;
10using System.Collections.Generic;
11
12namespace Wierszowki.Controllers
13{
14    [HandleError]
15    [Authorize]
16    public class UserController : Controller
17    {
18        private readonly IUserService _service;
19
20        public UserController()
21        {
22            _service = new UserService(new LinqRepository<User>());
23        }
24
25        public UserController(IUserService service)
26        {
27            _service = service;
28        }
29
30        public ActionResult Index()
31        {
32            var users = _service.FindAll();
33            return View(users);
34        }
35
36        [Authorize]
37        [AcceptVerbs(HttpVerbs.Get)]
38        public ActionResult Create()
39        {
40            return View(new User());
41        }
42
43        [Authorize]
44        [AcceptVerbs(HttpVerbs.Post)]
45        public ActionResult Create(User user)
46        {
47            try
48            {
49                _service.Create(user);
50            }
51            catch (RulesException ex)
52            {
53                ex.AddModelStateErrors(ModelState, "user");
54            }
55
56            if (ModelState.IsValid)
57            {
58                var userConfirmViewData = new UserConfirmViewData();
59                userConfirmViewData = InitUserConfirmViewData("Potwierdzenie dodania u¿ytkownika", "", OperationType.Create, user);   
60                return View("Confirm", userConfirmViewData);
61            }
62            return View(user);
63        }
64
65        [Authorize]
66        public ActionResult Confirm(User user)
67        {
68            return View(user);
69        }
70
71        [Authorize]
72        [AcceptVerbs(HttpVerbs.Get)]
73        public ActionResult Edit(int id)
74        {
75            User user = _service.Find(id);
76            string errorInfo = "";
77            if (user != null)
78            {
79                string name = ControllerContext.HttpContext.User.Identity.Name;
80                var LogInUser = _service.FindOne(u => u.Login == name);
81                if (LogInUser.Id == user.Id)
82                {
83                    return View(_service.Find(id));
84                }
85                else
86                {
87                    var userConfirmViewData = new UserConfirmViewData();
88                    errorInfo = "Nie mo¿na edytowaæ u¿ytkownika, gdy¿ login ró¿ni siê od zalogowanego!!!";
89                    userConfirmViewData = InitUserConfirmViewData("Edycja u¿ytkownika", errorInfo, OperationType.ErrorLogin, null);
90                    return View("Confirm", userConfirmViewData);                   
91                }
92            }
93            var userConfirmViewData1 = new UserConfirmViewData();
94            errorInfo = "Nie mo¿na edytowaæ u¿ytkownika, gdy¿ u¿ytkownik o takim id nie istnieje !!!";
95            userConfirmViewData1 = InitUserConfirmViewData("Edycja u¿ytkownika", errorInfo, OperationType.ErrorUser, null);
96            return View("Confirm", userConfirmViewData1);                 
97        }
98
99        [Authorize]
100        [AcceptVerbs(HttpVerbs.Post)]
101        public ActionResult Edit(User user)
102        {
103            try
104            {
105                _service.Update(user);
106               
107            }
108            catch (RulesException ex)
109            {
110                ex.AddModelStateErrors(ModelState, "user");
111            }
112
113            if (ModelState.IsValid)
114            {
115                var userConfirmViewData = new UserConfirmViewData();
116                userConfirmViewData = InitUserConfirmViewData("Potwierdzenie edycji u¿ytkownika", "", OperationType.Update, user);
117                return View("Confirm", userConfirmViewData);
118            }
119            return View(user);
120        }
121        private UserConfirmViewData InitUserConfirmViewData(string naglowek, string error, OperationType u_type, User user)
122        {
123            var viewData = new  UserConfirmViewData
124            {
125                Naglowek = naglowek,
126                ErrorInfo= error,
127                Akcja  = u_type,
128                User = user
129            };
130            return viewData;       
131        }
132    }
133}
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.