Ejemplo n.º 1
0
 /// <summary>
 /// Функция удаляет выбранного пользователя и все его доступы из базы
 /// </summary>
 /// <param name="id">Id пользователя</param>
 /// <returns></returns>
 public ActionResult Delete(int?id)
 {
     if (!User.HasPermission(Services.User, Actions.Delete)) //Проверка наличия необходимых прав доступа
     {
         return(RedirectToAction("AccessDenied", "Shared")); // Если доступа нет, перейти на страницу с ошибкой доступа
     }
     if (id == null)                                         // Проверка наличия id в адресе запрашиваемой страницы
     {
         RedirectToAction("PageNotFound", "Shared");         // Если id не указан, перейти на страницу с сообщением о том, что запрашиваемая страница не найдена
     }
     using (DemoMVC5Entities db = new DemoMVC5Entities())
     {
         User user = db.User.Find(id);                                            // Выполняем запрос к базе по поиску пользователя с указанным id с указанным
         if (user != null)                                                        // Если пользователь найден
         {
             List <Access> Acesses = db.Access.Where(a => a.User == id).ToList(); // Получаем список доступов пользователя
             if (Acesses.Any())                                                   // Если доступы есть
             {
                 db.Access.RemoveRange(Acesses);                                  // Удаляем доступы из базы
             }
             db.User.Remove(user);                                                // Удаляем пользователя из базы
             db.SaveChanges();                                                    // Сохраняем изменения
             return(RedirectToAction("Users"));                                   //Возвращаемся к списку пользователей
         }
     }
     return(View());
 }
Ejemplo n.º 2
0
 public ActionResult Edit(int?id, int?service, EditAccessesModel model)
 {
     if (ModelState.IsValid)
     {
         using (DemoMVC5Entities db = new DemoMVC5Entities())
         {
             User           user         = db.User.FirstOrDefault(u => u.Id == id); // Получаем текущего пользователя из базы
             List <Actions> ModelActions = model.GetActionsList();                  // Получаем список доступов которые необходимо предоставить (выбранные чекбоксы в представлении)
             foreach (Actions action in Enum.GetValues(typeof(Actions)))            // Цикл по всем видам доступов из перечисления
             {
                 // Получаем строку из базы для указанного пользователя, сервиса и доступа
                 Access access = db.Access.Where(u => u.User == id && u.Service == service && u.Action == (int)action).FirstOrDefault();
                 if (access == null && ModelActions.Contains(action)) // Если доступа нет, но нужно предоставить
                 {
                     db.Access.Add(new Access {
                         User = (int)id, Service = (int)service, Action = (int)action
                     });                                                      // Добавляем строку доступа в базе
                 }
                 else if (access != null && !ModelActions.Contains(action))   // Если доступ есть, но предоставлять не нужно
                 {
                     db.Access.Remove(access);                                // Удаляем доступ из базы
                 }
                 db.SaveChanges();                                            // Сохраняем изменения
             }
             return(RedirectToAction("Accesses", "Access", new { id = id })); // Возвращаемся к списку доступов
         }
     }
     return(View());
 }
Ejemplo n.º 3
0
 public ActionResult Edit(int?id, EditProductModel model)
 {
     if (ModelState.IsValid)
     {
         using (DemoMVC5Entities db = new DemoMVC5Entities())
         {
             User user = db.User.FirstOrDefault(u => u.Login == User.Identity.Name);
             // Изменение товара
             if (user != null)
             {
                 Product product = db.Product.Find(id);          // Получаем информацию о товаре
                 if (product == null)                            // Если информация не найдена
                 {
                     RedirectToAction("PageNotFound", "Shared"); // Переходим на страницу с ошибкой
                 }
                 product.Name        = model.Name;
                 product.Description = model.Description;
                 product.Count       = model.Count;
                 product.Modified    = DateTime.Today;
                 product.ModifiedBy  = user.Id;
                 db.SaveChanges();                                // Заполняем информацию о товаре и сохраняем изменения в базе
                 return(RedirectToAction("Products", "Product")); // Переходим на страницу со списком товаров
             }
         }
     }
     return(View());
 }
Ejemplo n.º 4
0
 public ActionResult Create(CreateUserModel model)
 {
     if (ModelState.IsValid)
     {
         using (DemoMVC5Entities db = new DemoMVC5Entities())
         {
             // Добавляем нового пользователя в базу даннгых
             db.User.Add(new User {
                 Login = model.Login, Password = model.Password, FIO = model.FIO, Modified = DateTime.Today
             });
             db.SaveChanges();                             // Сохраняем изменения
             return(RedirectToAction("Users", "Account")); // Переходим к странице со всеми пользоваетлями
         }
     }
     return(View(model));
 }
Ejemplo n.º 5
0
 public ActionResult Create(CreateProductModel model)
 {
     if (ModelState.IsValid)
     {
         using (DemoMVC5Entities db = new DemoMVC5Entities())
         {
             User user = db.User.FirstOrDefault(u => u.Login == User.Identity.Name); // Получение информации о пользователе из базы
             // Добавление нового товара в базу
             db.Product.Add(new Product {
                 Name = model.Name, Description = model.Description, Count = model.Count, Modified = DateTime.Today, ModifiedBy = user.Id
             });
             db.SaveChanges();                                // Сохранение изменений
             return(RedirectToAction("Products", "Product")); // Переход к списку всех товаров
         }
     }
     return(View(model));
 }
Ejemplo n.º 6
0
 public ActionResult Edit(int?id, EditUserModel model)
 {
     if (ModelState.IsValid)
     {
         using (DemoMVC5Entities db = new DemoMVC5Entities())
         {
             // Получаем информацию о редактируемом пользователе из базы данных, обновляем данные из модели и сохраняем новую информацию в базе
             User user = db.User.FirstOrDefault(p => p.Id == id);
             if (user == null)                               // Если информация не найдена
             {
                 RedirectToAction("PageNotFound", "Shared"); // Переходим на страницу с ошибкой
             }
             user.Login    = model.Login;
             user.FIO      = model.FIO;
             user.Password = model.Password;
             user.Modified = DateTime.Today;
             db.SaveChanges();                             // Сохраняем изменения
             return(RedirectToAction("Users", "Account")); // Возвращаемся к списку всех пользователей
         }
     }
     return(View());
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Удаление товара из базы
 /// </summary>
 /// <param name="id">Id товара</param>
 /// <returns></returns>
 public ActionResult Delete(int?id)
 {
     if (!User.HasPermission(Services.Product, Actions.Delete)) //Проверка наличия необходимых прав доступа
     {
         return(RedirectToAction("AccessDenied", "Shared"));    // Если доступа нет, перейти на страницу с ошибкой доступа
     }
     if (id == null)                                            // Проверка наличия id в адресе запрашиваемой страницы
     {
         RedirectToAction("PageNotFound", "Shared");            // Если id не указан, перейти на страницу с сообщением о том, что запрашиваемая страница не найдена
     }
     using (DemoMVC5Entities db = new DemoMVC5Entities())
     {
         Product product = db.Product.Find(id);    // Выполняем запрос к базе по поиску товара с указанным
         if (product != null)                      // Если товар найден
         {
             db.Product.Remove(product);           // Удаляем товар из базы
             db.SaveChanges();                     // Сохраняем изменения
             return(RedirectToAction("Products")); // Переходим к списку всех товаров
         }
     }
     return(View());
 }