public ActionResult chick(EOS_Request model)
        {
            try
            {
                var mm = model.Check_List;
                //var record = dbcontext.EOS_Request.FirstOrDefault(m => m.ID == model.ID);
                for (var i = 0; i < mm.Count(); i++)
                {
                    var id  = mm[i].id;
                    var ans = dbcontext.check_list_EOS.FirstOrDefault(m => m.id == id);
                    ans.interpolation = model.Check_List[i].interpolation;
                }

                dbcontext.SaveChanges();
                return(RedirectToAction("edit", new { id = model.ID.ToString() }));
            }
            catch (Exception e)
            {
                return(View(model));
            }
        }
        public ActionResult interview(EOS_Request model)
        {
            try
            {
                var mm = model.Answer_EOS_interview;
                //var record = dbcontext.EOS_Request.FirstOrDefault(m => m.ID == model.ID);
                for (var i = 0; i < mm.Count(); i++)
                {
                    var id  = mm[i].ID;
                    var ans = dbcontext.Answer_EOS.FirstOrDefault(m => m.ID == id);
                    ans.answer = model.Answer_EOS_interview[i].answer;
                    ans.Notes  = model.Answer_EOS_interview[i].Notes;
                }

                dbcontext.SaveChanges();
                return(RedirectToAction("edit", new { id = model.ID.ToString() }));
            }
            catch (Exception e)
            {
                return(View(model));
            }
        }
        public ActionResult Create()

        {
            try
            {
                var record   = new EOS_Request();
                var my_model = new EOS_VM {
                    selected_employee = 0, selected_EOS_group_interview = 0, selected_EOS_group_checklist = 0
                };
                ViewBag.employee  = dbcontext.Employee_Profile.ToList().Select(m => new { Code = "" + m.Code + "-----[" + m.Full_Name + ']', ID = m.ID }).ToList();
                ViewBag.interview = dbcontext.EOS_Interview_Questions_Groups.ToList().Select(m => new { Code = "" + m.Questions_Group_Code + "-----[" + m.Description_of + ']', ID = m.ID }).ToList();
                ViewBag.checklist = dbcontext.Check_List_Item_Groups.ToList().Select(m => new { Code = "" + m.Group_Code + "-----[" + m.Description_Group + ']', ID = m.ID }).ToList();
                try
                {
                    var stru  = dbcontext.StructureModels.FirstOrDefault(m => m.All_Models == ChModels.Personnel).Structure_Code;
                    var model = dbcontext.EOS_Request.ToList();
                    if (model.Count() == 0)
                    {
                        record.number = stru + "1";
                    }
                    else
                    {
                        record.number = stru + (model.LastOrDefault().ID + 1).ToString();
                    }
                    my_model.EOS = record;

                    return(View(my_model));
                }
                catch (Exception e)
                {
                    return(View(my_model));
                }
            }
            catch (Exception e)
            {
                return(RedirectToAction("index"));
            }
        }
        public ActionResult create(EOS_VM model, string command)
        {
            ViewBag.employee  = dbcontext.Employee_Profile.ToList().Select(m => new { Code = "" + m.Code + "-----[" + m.Full_Name + ']', ID = m.ID }).ToList();
            ViewBag.interview = dbcontext.EOS_Interview_Questions_Groups.ToList().Select(m => new { Code = "" + m.Questions_Group_Code + "-----[" + m.Description_of + ']', ID = m.ID }).ToList();
            ViewBag.checklist = dbcontext.Check_List_Item_Groups.ToList().Select(m => new { Code = "" + m.Group_Code + "-----[" + m.Description_Group + ']', ID = m.ID }).ToList();

            try
            {
                if (model.selected_employee == 0)
                {
                    TempData["Message"] = HR.Resource.pers_2.youmustchooseemployee;
                    return(View(model));
                }
                var record = new EOS_Request();
                record = model.EOS;
                if (model.selected_employee > 0)
                {
                    var emp = dbcontext.Employee_Profile.FirstOrDefault(m => m.ID == model.selected_employee);
                    record.Employee = emp;
                    record.statID   = emp.ID;
                }
                ///////////////status////////////////////////
                record.check_status = check_status.created;
                record.sss          = record.check_status.GetTypeCode().ToString();
                var Date = Convert.ToDateTime("1/1/1900");
                var s    = new status {
                    statu = check_status.created, Type = Models.Infra.Type.employee_record, approved_bydate = Date, cancaled_bydate = Date, created_bydate = DateTime.Now.Date, Rejected_bydate = Date, return_to_reviewdate = Date
                };
                s.created_by = User.Identity.GetUserName();
                var st = dbcontext.status.Add(s);
                dbcontext.SaveChanges();
                record.status = st;
                /////////////////checklist////////////////////
                List <check_list_EOS> check_list = new List <check_list_EOS>();
                if (model.selected_EOS_group_checklist > 0)
                {
                    /////
                    var group = dbcontext.Check_List_Item_Groups.FirstOrDefault(m => m.ID == model.selected_EOS_group_checklist);
                    record.Check_List_Item_Groups = group;
                    /////

                    var items = group.check_items;
                    foreach (var item in items)
                    {
                        var item_of_chick = new check_list_EOS();
                        item_of_chick.item          = item;
                        item_of_chick.interpolation = false;

                        var inter = dbcontext.check_list_EOS.Add(item_of_chick);
                        dbcontext.SaveChanges();
                        check_list.Add(inter);
                    }
                }
                else
                {
                    record.Check_List_Item_Groups = null;
                }
                record.Check_List = check_list;
                ////////////////interview/////////////////////

                List <Answer_EOS> Answer_EOS_list = new List <Answer_EOS>();
                if (model.selected_EOS_group_interview > 0)
                {
                    /////
                    var group = dbcontext.EOS_Interview_Questions_Groups.FirstOrDefault(m => m.ID == model.selected_EOS_group_interview);
                    record.EOS_group = group;
                    /////

                    var questions = group.questions;
                    foreach (var item in questions)
                    {
                        var interview = new Answer_EOS();
                        interview.question = item;
                        interview.answer   = "";
                        interview.Notes    = "";
                        var inter = dbcontext.Answer_EOS.Add(interview);
                        dbcontext.SaveChanges();
                        Answer_EOS_list.Add(inter);
                    }
                }
                else
                {
                    record.EOS_group = null;
                }
                record.Answer_EOS_interview = Answer_EOS_list;
                ////////////////create//////////////////////
                record.req_date   = record.Requset_date.ToShortDateString();
                record.eos_Date   = record.date_of_eos_interview.ToShortDateString();
                record.name_state = nameof(check_status.created);

                var t = (EOS_type)(int)record.EOS_type;
                if (t == 0)
                {
                    record.name_type = nameof(EOS_type.Early_EOS);
                }
                else
                {
                    record.name_type = t.ToString();
                }
                record.note = model.EOS.note;
                dbcontext.EOS_Request.Add(record);
                dbcontext.SaveChanges();
                //=================================check for alert==================================
                var get_result_check = HR.Controllers.check.check_alert("EOS transaction", HR.Models.user.Action.Create, type_field.form);
                if (get_result_check != null)
                {
                    var inbox = new Models.user.Alert_inbox {
                        send_from_user_id = User.Identity.GetUserId(), send_to_user_id = get_result_check.send_to_ID_user, title = get_result_check.Subject, Subject = get_result_check.Message
                    };
                    if (get_result_check.until != null)
                    {
                        if (get_result_check.until.Value.Year != 0001)
                        {
                            inbox.until = get_result_check.until;
                        }
                    }
                    dbcontext.Alert_inbox.Add(inbox);
                    dbcontext.SaveChanges();
                }
                //==================================================================================
                ///////////////click EOS interview/////////
                if (command == "Submit2")
                {
                    return(RedirectToAction("interview", new { id = record.ID }));
                }
                else if (command == "Submit3")
                {
                    return(RedirectToAction("chick", new { id = record.ID }));
                }
                //var currentTime = DateTime.Now;
                //HR.Models.NOtification.NotificationComponent NC = new HR.Models.NOtification.NotificationComponent();
                //NC.RegisterNotification(currentTime);
                ////////////back to index /////////////////
                return(RedirectToAction("index"));
            }
            catch (DbUpdateException e)
            {
                TempData["Message"] = HR.Resource.organ.thiscodeIsalreadyexists;
                return(View(model));
            }
            catch (Exception e)
            {
                return(View(model));
            }
        }