public async Task <ActionResult> Edit([Bind(Include = "ID_Pass,S_Pas,N_Pas,Sotr_ID")] Pass_Dannie pass_Dannie)
        {
            if ((bool)Session["Manip_Sotrs"] == true && Session["Manip_Sotrs"] != null)
            {
                //Если валидация прошла успешно
                if (ModelState.IsValid)
                {
                    pass_Dannie.N_Pas = Shifrovanie.Encryption(pass_Dannie.N_Pas);
                    pass_Dannie.S_Pas = Shifrovanie.Encryption(pass_Dannie.S_Pas);
                    //Сохранение измений
                    db.Entry(pass_Dannie).State = EntityState.Modified;
                    await db.SaveChangesAsync();

                    //Обновление у всех пользователей данных
                    EmployeesHub.BroadcastData();
                    return(RedirectToAction("Index"));
                }
                //Список сотрудников
                ViewBag.Sotr_ID = new SelectList(db.Sotrs.Where(i => i.fired == false && i.Accounts.Block == false), "ID_Sotr", "Full", pass_Dannie.Sotr_ID);
                var fio = db.Sotrs.Where(f => f.ID_Sotr == pass_Dannie.Sotr_ID).FirstOrDefault();
                ViewBag.fio = fio.Full;
                return(View(pass_Dannie));
            }
            else
            {
                return(Redirect("/Error/NotRight"));
            }
        }
        public async Task <ActionResult> DeleteConfirmedLog(int id)
        {
            if ((bool)Session["Manip_Sotrs"] == true && Session["Manip_Sotrs"] != null)
            {
                Sotrs sotrs = await db.Sotrs.FindAsync(id);

                //Логическое удаление
                sotrs.Logical_Delete  = true;
                db.Entry(sotrs).State = EntityState.Modified;
                //Сохранение
                await db.SaveChangesAsync();

                EmployeesHub.BroadcastData();
                return(RedirectToAction("Index"));
            }
            else
            {
                return(Redirect("/Error/NotRight"));
            }
        }
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            if ((bool)Session["Manip_Sotrs"] == true && Session["Manip_Sotrs"] != null)
            {
                Pass_Dannie pass_Dannie = await db.Pass_Dannie.FindAsync(id);

                //Удаление записи
                db.Pass_Dannie.Remove(pass_Dannie);
                //Сохранение
                await db.SaveChangesAsync();

                //Обновление у всех пользователей данных
                EmployeesHub.BroadcastData();
                return(RedirectToAction("Index"));
            }
            else
            {
                return(Redirect("/Error/NotRight"));
            }
        }
        public async Task <ActionResult> Create([Bind(Include = "ID_Pass,S_Pas,N_Pas,Sotr_ID")] Pass_Dannie pass_Dannie)
        {
            if ((bool)Session["Manip_Sotrs"] == true && Session["Manip_Sotrs"] != null)
            {
                //Если валидация прошла успешно
                if (ModelState.IsValid)
                {
                    //Добавление данных
                    db.Pass_Dannie.Add(new Pass_Dannie {
                        Sotr_ID = pass_Dannie.Sotr_ID,
                        N_Pas   = Shifrovanie.Encryption(pass_Dannie.N_Pas),
                        S_Pas   = Shifrovanie.Encryption(pass_Dannie.S_Pas)
                    });
                    //Сохранение
                    await db.SaveChangesAsync();

                    //Обновление списка пасортных данных у всех пользователей
                    EmployeesHub.BroadcastData();
                    return(RedirectToAction("Index"));
                }
                //Список сотрудников
                string        constr = ConfigurationManager.ConnectionStrings["PersonalContext"].ToString();
                SqlConnection _con   = new SqlConnection(constr);
                //Поиск сотрудников, которым не назначены должностные инструкции
                SqlDataAdapter _da = new SqlDataAdapter("SELECT ID_Sotr, Surname_Sot + ' ' + Name_Sot + ' ' + Petronumic_Sot + ' (' + Login_Acc + ')' as FIO FROM Sotrs LEFT JOIN Pass_Dannie ON Sotrs.ID_Sotr=Pass_Dannie.Sotr_ID WHERE Guest = 'false' and [fired] = 'false' and Pass_Dannie.Sotr_ID IS NULL", constr);
                DataTable      _dt = new DataTable();
                _da.Fill(_dt);
                //Список сотрудников
                ViewBag.Sotr_ID = ToSelectList(_dt, "ID_Sotr", "FIO", pass_Dannie.Sotr_ID);
                return(View(pass_Dannie));
            }
            else
            {
                return(Redirect("/Error/NotRight"));
            }
        }
Esempio n. 5
0
        public ActionResult Register(RegisterModel model)
        {
            //Если значение поля для загрузки фото не пустое
            if (model.ImageUpload != null)
            {
                //Получение имени файла
                string filename = Path.GetFileNameWithoutExtension(model.ImageUpload.FileName);
                //Расширение файла
                string extension = Path.GetExtension(model.ImageUpload.FileName);
                //Новое уникальное наименование, которое будет занесено в БД
                filename = filename + DateTime.Now.ToString("yymmssfff") + extension;
                //Значение для поля Фото, которое будет добавлено в БД с путем к файлу
                model.Photo = "/Content/Photo/st/" + filename;
                //Загрузка фото в папку
                model.ImageUpload.SaveAs(Path.Combine(Server.MapPath("~/Content/Photo/st/"), filename));
            }
            else
            {
                //Иначе дефолтное значение
                model.Photo = "/Content/Photo/st/default.png";
            }
            Accounts user = null;

            //Поиск пльзователей с таким логином
            user = db.Accounts.FirstOrDefault(u => u.Login == model.Login);
            //Если не найдено, то добавляем нового
            if (user == null)
            {
                //Если валидация пройдена успешно
                if (ModelState.IsValid)
                {
                    //Создаем команду
                    SqlCommand command = new SqlCommand("", Program.SqlConnection);
                    //Запрос для команды (проверка на возраст)
                    command.CommandText = "select Datediff(year, '" + model.Day_Of_Birth + "', getdate())";
                    int?voz = 0;
                    Program.SqlConnection.Open();
                    // Выполнение команды
                    voz = (int)command.ExecuteScalar();
                    Program.SqlConnection.Close();
                    //В соответствии со ст. 63 ТК РФ, Официально можно работать в России с 16 лет
                    //Проверка, есть ли пользователю 16 лет и более
                    if (voz <= 16)
                    {
                        ModelState.AddModelError("Day_Of_Birth", "Возрастные ограничения 18+");
                        return(View(model));
                    }
                    Session["War"] = false;
                    //Добавление нового аккаунта
                    db.Accounts.Add(new Accounts {
                        Login = model.Login, Password = model.Password, Password_Shifr = Shifrovanie.Hash(model.Password), Role_ID = 4, Logical_Delete = false, Block = false
                    });
                    //Сохранение данных
                    db.SaveChanges();
                    //Добавление сотрудника
                    db.Sotrs.Add(new Sotrs
                    {
                        Surname_Sot      = model.Surname_Sot,
                        Name_Sot         = model.Name_Sot,
                        Petronumic_Sot   = model.Petronumic_Sot,
                        Day_Of_Birth     = model.Day_Of_Birth,
                        Address          = Shifrovanie.Encryption(model.Address),
                        Num_Phone        = model.Num_Phone,
                        Email            = model.Email,
                        Photo            = model.Photo,
                        Date_of_adoption = null,
                        fired            = false,
                        Guest            = true,
                        Logical_Delete   = false,
                        Login_Acc        = model.Login
                    });
                    //Сохранение данных
                    db.SaveChanges();
                    //Отправка письма на почту
                    EmailTo.MySendMail("" +

                                       "Приветствуем, " + model.Surname_Sot + " " + model.Name_Sot + " " + model.Petronumic_Sot + "! <br>Мы рады, " +
                                       "что вы зарегистрировались в нашей системе. Мы надеемся, что не разочаруем Вас. С радостью ответим на Ваши вопросы." +
                                       "<br><br>Ваш Логин: " + model.Login + " <br>Пароль: " + model.Password,
                                       model.Email, "Компания CMS", "Регистрация на сайте компании CMS");
                    //Поиск пользователя
                    user = db.Accounts.Where(u => u.Login == model.Login && u.Password == model.Password).FirstOrDefault();
                    //Если пользователь найден
                    if (user != null)
                    {
                        //Авторизовываем пользователя
                        FormsAuthentication.SetAuthCookie(model.Login, true);
                        //Получение данных о пользователе
                        var s = db.Sotrs.Where(sot => sot.Login_Acc == model.Login);
                        Session["FIO"]          = model.Surname_Sot + " " + model.Name_Sot + " " + model.Petronumic_Sot;
                        Session["Email"]        = model.Email;
                        Session["Num_Phone"]    = model.Num_Phone;
                        Session["Address"]      = model.Address;
                        Session["Day_Of_Birth"] = model.Day_Of_Birth;
                        Session["Photo"]        = model.Photo;
                        Session["Dolj"]         = "Статус: Гость";
                        //Открытие личного кабинета
                        EmployeesHub.BroadcastData();
                        return(RedirectToAction("Index", "Home"));
                    }
                    //Иначе выводим надпись, данные введены некоррекно
                    else
                    {
                        ModelState.AddModelError("", "Попробуйте зарегистрироваться снова");
                        Session["War"] = true;
                        return(View(model));
                    }
                }
            }
            else
            {
                //Сообщение, что пользователь с таким логином уже существует
                ModelState.AddModelError("", "Пользователь с данным логином уже существует");
                Session["War"] = true;
                return(View(model));
            }

            return(View(model));
        }
 public ActionResult AddOrEdit(Sotrs sotrs)
 {
     if ((bool)Session["Manip_Sotrs"] == true && Session["Manip_Sotrs"] != null)
     {
         if (sotrs.Guest == false && sotrs.Date_of_adoption == null)
         {
             //Если значение гость = false, необходимо указать дату принятия
             ViewBag.Login_Acc = new SelectList(db.Accounts, "Login", "Login", sotrs.Login_Acc);
             ModelState.AddModelError("Date_of_adoption", "Необходимо указать дату приема данного сотрудника");
             return(View(sotrs));
         }
         SqlCommand command = new SqlCommand("", Program.SqlConnection);
         //Запрос на получение возраста
         command.CommandText = "select Datediff(year, '" + sotrs.Day_Of_Birth + "', getdate())";
         int?voz = 0;
         Program.SqlConnection.Open();
         //Получение позраста
         voz = (int)command.ExecuteScalar();
         Program.SqlConnection.Close();
         if (voz < 16)
         {
             //Сообщение о возрастных ограничениях
             ViewBag.Login_Acc = new SelectList(db.Accounts.Where(a => a.Block == false), "Login", "Login", sotrs.Login_Acc);
             ModelState.AddModelError("Day_Of_Birth", "Возрастные ограничения 18+");
             return(View(sotrs));
         }
         if (sotrs.ImageUpload != null)
         {
             //Загрузка фото пользователя
             string filename  = Path.GetFileNameWithoutExtension(sotrs.ImageUpload.FileName);
             string extension = Path.GetExtension(sotrs.ImageUpload.FileName);
             filename    = filename + DateTime.Now.ToString("yymmssfff") + extension;
             sotrs.Photo = "/Content/Photo/st/" + filename;
             sotrs.ImageUpload.SaveAs(Path.Combine(Server.MapPath("~/Content/Photo/st/"), filename));
         }
         if (sotrs.ID_Sotr.Equals(0))
         {
             try
             {
                 //Добавление пользователя
                 sotrs.Address = Shifrovanie.Encryption(sotrs.Address);
                 db.Sotrs.Add(sotrs);
                 //Сохранение
                 db.SaveChanges();
                 EmployeesHub.BroadcastData();
                 return(Redirect(Session["perehod"].ToString()));
             }
             catch
             {
                 //Список аккаунтов
                 ViewBag.Login_Acc = new SelectList(db.Accounts.Where(a => a.Block == false), "Login", "Login", sotrs.Login_Acc);
                 return(View(sotrs));
             }
         }
         else
         {
             try
             {
                 //Изменение данных
                 sotrs.Address         = Shifrovanie.Encryption(sotrs.Address);
                 db.Entry(sotrs).State = EntityState.Modified;
                 //Сохранение данных
                 db.SaveChanges();
                 //Список аккаунтов
                 ViewBag.Login_Acc = new SelectList(db.Accounts.Where(a => a.Block == false), "Login", "Login", sotrs.Login_Acc);
                 EmployeesHub.BroadcastData();
                 return(Redirect(Session["perehod"].ToString()));
             }
             catch
             {
                 //Список аккаунтов
                 ViewBag.Login_Acc = new SelectList(db.Accounts.Where(a => a.Block == false), "Login", "Login", sotrs.Login_Acc);
                 return(View(sotrs));
             }
         }
     }
     else
     {
         return(Redirect("/Error/NotRight"));
     }
 }