public async Task <ActionResult> Edit(int?id)
        {
            if ((bool)Session["Manip_Sotrs"] == true && Session["Manip_Sotrs"] != null)
            {
                if (id == null)
                {
                    //400 ошибка
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
                //поиск по ключу
                Isp_Sroki isp_Sroki = await db.Isp_Sroki.FindAsync(id);

                if (isp_Sroki == null)
                {
                    //404 ошибка
                    return(HttpNotFound());
                }
                //Список штатного состава
                ViewBag.Pos_Res_ID = new SelectList(db.Posit_Responsibilities, "ID_Pos_Res", "ID_Pos_Res", isp_Sroki.Pos_Res_ID);
                //список статусов
                ViewBag.Status_ID = new SelectList(db.status_isp_sroka, "ID_St", "Name_St", isp_Sroki.Status_ID);
                return(View(isp_Sroki));
            }
            else
            {
                return(Redirect("/Error/NotRight"));
            }
        }
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            if ((bool)Session["Manip_Sotrs"] == true && Session["Manip_Sotrs"] != null)
            {
                Isp_Sroki isp_Sroki = await db.Isp_Sroki.FindAsync(id);

                //удаление данных
                db.Isp_Sroki.Remove(isp_Sroki);
                //Сохранение
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            else
            {
                return(Redirect("/Error/NotRight"));
            }
        }
        public async Task <ActionResult> Delete(int?id)
        {
            if ((bool)Session["Manip_Sotrs"] == true && Session["Manip_Sotrs"] != null)
            {
                if (id == null)
                {
                    //400 ошибка
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
                //поиск по ключу
                Isp_Sroki isp_Sroki = await db.Isp_Sroki.FindAsync(id);

                if (isp_Sroki == null)
                {
                    //404 ошибка
                    return(HttpNotFound());
                }
                return(View(isp_Sroki));
            }
            else
            {
                return(Redirect("/Error/NotRight"));
            }
        }
        public async Task <ActionResult> Create([Bind(Include = "ID_Isp,Pos_Res_ID,Date_Start,Date_Finish,Status_ID,itog")] Isp_Sroki isp_Sroki)
        {
            if ((bool)Session["Manip_Sotrs"] == true && Session["Manip_Sotrs"] != null)
            {
                //Если валидация прошла успешно
                if (ModelState.IsValid)
                {
                    //Добавление испытательного срока
                    db.Isp_Sroki.Add(isp_Sroki);
                    //Сохранение
                    await db.SaveChangesAsync();

                    SqlCommand command = new SqlCommand("", Program.SqlConnection);
                    //Ведутся ли этапы принятия
                    command.CommandText = "select count(*) from Steps join Sotrs on Steps.Sotr_ID = ID_Sotr join Posit_Responsibilities on Posit_Responsibilities.Sotr_ID = ID_Sotr where ID_Pos_Res = " + isp_Sroki.Pos_Res_ID;
                    Program.SqlConnection.Open();
                    //выполнение запроса
                    int?step_count = (int)command.ExecuteScalar();
                    //Получение ключа сотрудника
                    command.CommandText = "select ID_Sotr from  Sotrs join Posit_Responsibilities on Posit_Responsibilities.Sotr_ID = ID_Sotr where ID_Pos_Res =  " + isp_Sroki.Pos_Res_ID;
                    //выполнение команды
                    int?idst = (int)command.ExecuteScalar();
                    Program.SqlConnection.Close();
                    if (isp_Sroki.Status_ID != 1)
                    {
                        if (step_count != null && step_count != 0)
                        {
                            //Изменение этапов принятия
                            command.CommandText = "update [dbo].[Steps] set [Isp_Srok] = 'false' where Sotr_ID = " + idst;
                            Program.SqlConnection.Open();
                            //Выполнение запроса
                            command.ExecuteNonQuery();
                            Program.SqlConnection.Close();
                        }
                        else
                        {
                            //Добавление этапов принятия
                            command.CommandText = "Insert into dbo.Steps ([Sotr_ID],[Sobesedovanie],[Dolznost],[Grafik_Raboti],[Sbor_Documentov],[Isp_Srok],[Logical_Delete]) " +
                                                  "values (" + idst + ", 0,0,0,0,0,0)";
                            Program.SqlConnection.Open();
                            //выполнения запроса
                            command.ExecuteNonQuery();
                            Program.SqlConnection.Close();
                        }
                    }
                    else
                    {
                        if (step_count != null && step_count != 0)
                        {
                            //Изменение этапа принятия как пройденный испытательный срок
                            command.CommandText = "update [dbo].[Steps] set [Isp_Srok] = 'true' where Sotr_ID = " + idst;
                            Program.SqlConnection.Open();
                            //выполенение запроса
                            command.ExecuteNonQuery();
                            Program.SqlConnection.Close();
                        }
                        else
                        {
                            //Добавление испытательных сроков
                            command.CommandText = "Insert into dbo.Steps ([Sotr_ID],[Sobesedovanie],[Dolznost],[Grafik_Raboti],[Sbor_Documentov],[Isp_Srok],[Logical_Delete]) " +
                                                  "values (" + idst + ", 0,0,0,0,1,0)";
                            Program.SqlConnection.Open();
                            //выполнение запроса
                            command.ExecuteNonQuery();
                            Program.SqlConnection.Close();
                        }
                    }
                    return(Redirect(Session["perehod"].ToString()));
                }
                else
                {
                    //Строка подключения
                    string        constr = ConfigurationManager.ConnectionStrings["PersonalContext"].ToString();
                    SqlConnection _con   = new SqlConnection(constr);
                    //Добавление запроса
                    SqlDataAdapter _da = new SqlDataAdapter("SELECT ID_Pos_Res, dbo.Sotrs.Surname_Sot + ' ' + dbo.Sotrs.Name_Sot + ' ' + dbo.Sotrs.Petronumic_Sot + ' (' + Naim_Posit + ')' as 'FIO' FROM dbo.Posit_Responsibilities JOIN dbo.Sotrs ON dbo.Posit_Responsibilities.Sotr_ID = dbo.Sotrs.ID_Sotr JOIN dbo.Positions ON dbo.Posit_Responsibilities.Positions_ID = dbo.Positions.ID_Positions  where fired = 'false'", constr);
                    DataTable      _dt = new DataTable();
                    _da.Fill(_dt);
                    //Список штатного состава
                    ViewBag.Pos_Res_ID = ToSelectList(_dt, "ID_Pos_Res", "FIO", isp_Sroki.Pos_Res_ID);
                    //Список статусов
                    ViewBag.Status_ID = new SelectList(db.status_isp_sroka, "ID_St", "Name_St", isp_Sroki.Status_ID);

                    return(View(isp_Sroki));
                }
            }
            else
            {
                return(Redirect("/Error/NotRight"));
            }
        }
        public async Task <ActionResult> Edit([Bind(Include = "ID_Isp,Pos_Res_ID,Date_Start,Date_Finish,Status_ID,itog")] Isp_Sroki isp_Sroki)
        {
            if ((bool)Session["Manip_Sotrs"] == true && Session["Manip_Sotrs"] != null)
            {
                //если валидация прошла успешно
                if (ModelState.IsValid)
                {
                    //Изменение данных и их фиксирование
                    db.Entry(isp_Sroki).State = EntityState.Modified;
                    SqlCommand command = new SqlCommand("", Program.SqlConnection);
                    //Манипулирование этапами принятия
                    command.CommandText = "select count(*) from Steps join Sotrs on Steps.Sotr_ID = ID_Sotr join Posit_Responsibilities on Posit_Responsibilities.Sotr_ID = ID_Sotr where ID_Pos_Res = " + isp_Sroki.Pos_Res_ID;
                    Program.SqlConnection.Open();
                    //Изменение тех что в процессе на ожидании
                    int?step_count = (int)command.ExecuteScalar();
                    command.CommandText = "select ID_Sotr from  Sotrs join Posit_Responsibilities on Posit_Responsibilities.Sotr_ID = ID_Sotr where ID_Pos_Res =  " + isp_Sroki.Pos_Res_ID;
                    int?idst = (int)command.ExecuteScalar();
                    Program.SqlConnection.Close();
                    if (isp_Sroki.Status_ID != 1)
                    {
                        if (step_count != null && step_count != 0)
                        {
                            command.CommandText = "update [dbo].[Steps] set [Isp_Srok] = 'false' where Sotr_ID = " + idst;
                            Program.SqlConnection.Open();
                            //Изменение тех что в процессе на ожидании
                            command.ExecuteNonQuery();
                            Program.SqlConnection.Close();
                        }
                        else
                        {
                            command.CommandText = "Insert into dbo.Steps ([Sotr_ID],[Sobesedovanie],[Dolznost],[Grafik_Raboti],[Sbor_Documentov],[Isp_Srok],[Logical_Delete]) " +
                                                  "values (" + idst + ", 0,0,0,0,0,0)";
                            Program.SqlConnection.Open();
                            //Изменение тех что в процессе на ожидании
                            command.ExecuteNonQuery();
                            Program.SqlConnection.Close();
                        }
                        var sta = db.status_isp_sroka.Where(s => s.ID_St == isp_Sroki.Status_ID).FirstOrDefault();
                        var pos = db.Posit_Responsibilities.Where(s => s.ID_Pos_Res == isp_Sroki.Pos_Res_ID).FirstOrDefault();
                        EmailTo.MySendMail("" +
                                           "Приветствуем, " + pos.Sotrs.Full + "! <br>Вы, " +
                                           "проходите испытательный срок в нашей компании ООО \"Си эМ эС\", на должность " + pos.Positions.Naim_Posit + "." +
                                           "<br />Ваш статус прохождения изменен на " + sta.Name_St,
                                           pos.Sotrs.Email, "Компания CMS", "Прохождение испытательного срока");
                    }
                    else
                    {
                        if (step_count != null && step_count != 0)
                        {
                            command.CommandText = "update [dbo].[Steps] set [Isp_Srok] = 'true' where Sotr_ID = " + idst;
                            Program.SqlConnection.Open();
                            //Изменение тех что в процессе на ожидании
                            command.ExecuteNonQuery();
                            Program.SqlConnection.Close();
                        }
                        else
                        {
                            command.CommandText = "Insert into dbo.Steps ([Sotr_ID],[Sobesedovanie],[Dolznost],[Grafik_Raboti],[Sbor_Documentov],[Isp_Srok],[Logical_Delete]) " +
                                                  "values (" + idst + ", 0,0,0,0,1,0)";
                            Program.SqlConnection.Open();
                            //Изменение тех что в процессе на ожидании
                            command.ExecuteNonQuery();
                            Program.SqlConnection.Close();
                        }
                        var pos = db.Posit_Responsibilities.Where(s => s.ID_Pos_Res == isp_Sroki.Pos_Res_ID).FirstOrDefault();
                        EmailTo.MySendMail("" +
                                           "Приветствуем, " + pos.Sotrs.Full + "! <br>Поздравляем, " +
                                           "Вы прошли испытательный срок в нашей компании ООО \"Си эМ эС\", на должность " + pos.Positions.Naim_Posit + ".",
                                           pos.Sotrs.Email, "Компания CMS", "Прохождение испытательного срока");
                    }
                    //сохранение изменений
                    await db.SaveChangesAsync();

                    return(Redirect(Session["perehod"].ToString()));
                }
                //Список штатного состава
                ViewBag.Pos_Res_ID = new SelectList(db.Posit_Responsibilities, "ID_Pos_Res", "ID_Pos_Res", isp_Sroki.Pos_Res_ID);
                //Список статусов
                ViewBag.Status_ID = new SelectList(db.status_isp_sroka, "ID_St", "Name_St", isp_Sroki.Status_ID);
                return(View(isp_Sroki));
            }
            else
            {
                return(Redirect("/Error/NotRight"));
            }
        }