public void InsertAdditionalHeader([FromBody] JObject Data)
        {
            var header            = ServiceContainer.GetService <PesWeb.Service.Modules.HeaderManage>();
            tblHeaderAdditional H = new tblHeaderAdditional();

            H.Part2ID = Convert.ToInt32(Data["PositionNo"].ToString());
            H.Eva_ID  = Convert.ToInt32(Data["Eva_Id"].ToString());

            H.parent = Convert.ToInt32(Data["H_ID"].ToString());
            //tblHeader hd = header.GetAllHeader().Where(a => a.H_ID == H.parent).FirstOrDefault();
            H.H_Level = (Convert.ToInt32(Data["H_ID"].ToString()) == 0)? 1: (Convert.ToInt32(Data["H_ID"].ToString()) > 0)? header.GetAllHeader().Where(a => a.H_ID == H.parent).FirstOrDefault().H_Level + 1 : header.getHeaderAdditional().Where(a => a.H_ID == (-1) * H.parent).FirstOrDefault().H_Level + 1;

            H.Text     = Data["Text"].ToString();
            H.Text_Eng = Data["Text_Eng"].ToString();
            if (H.Text.Length == 0)
            {
                H.Text = H.Text_Eng;
            }
            if (H.Text_Eng.Length == 0)
            {
                H.Text_Eng = H.Text;
            }
            H.Alias = Data["Alias"].ToString();

            H.point = 0;

            header.InsertAdditionalHeader(H);
        }
        public List <tblHeaderAdditional> FinalHeader(tblHeaderAdditional parent, List <tblHeaderAdditional> ListAll)
        {
            List <tblHeaderAdditional> ListResult = new List <tblHeaderAdditional>();

            if (ListAll.Where(a => a.parent == parent.H_ID * (-1)).ToList().Count == 0)
            {
                ListResult.Add(parent);
                return(ListResult);
            }
            List <tblHeaderAdditional> Result = new List <tblHeaderAdditional>();

            foreach (tblHeaderAdditional res in ListAll.Where(a => a.parent == parent.H_ID * (-1)).ToList())
            {
                foreach (tblHeaderAdditional a in FinalHeader(res, ListAll))
                {
                    Result.Insert(Result.Count, a);
                }
            }
            return(Result);
        }
示例#3
0
        public void InsertAdditionalHeader(tblHeaderAdditional H)
        {
            PSESEntities db = new PSESEntities();

            db.SP_InsertAdditionalHeader(H.parent, H.Text, H.Text_Eng, H.Eva_ID, H.Alias, H.H_Level, H.Part2ID);
        }
        public List <JObject> GetAllHeader(int PositionID, int EvaID, int ID, string Language)
        {
            var              header  = ServiceContainer.GetService <PesWeb.Service.Modules.HeaderManage>();
            var              header2 = ServiceContainer.GetService <PesWeb.Service.Modules.EvaManage>();
            List <tblScore>  sc      = header2.GetAllScore();
            List <tblHeader> hd      = header.GetAllHeader().ToList();
            //List<tblHeaderJob> Allhj = header.getAllHeaderJob().ToList();
            // tblProjectMember proj = header.getProjectMember().Where(a => a.ProjectID == Data["ProjectNO"].ToString()).Where(a => a.StaffID == Data["EmployeeNO"].ToString()).FirstOrDefault();
            SP_GetEvaDataByEvaID_Result          eva       = header2.getEvaDataByEvaID(EvaID).Where(a => a.Part2ID == PositionID).FirstOrDefault();
            List <tblHeaderJob>                  hj        = header.getAllHeaderJob().Where(a => a.PositionNo == ((eva != null)? eva.Part2ID: PositionID)).ToList();
            List <SP_GetHeaderByPosition_Result> GetHeader = header.getHeaderByPosition(PositionID, EvaID).OrderBy(a => a.H_ID).ToList();
            List <tblHeader> Ans = new List <tblHeader>();
            tblHeader        p   = new tblHeader();
            int sum = 0;

            foreach (tblHeaderJob hh in hj)
            {
                if (hd.Where(a => a.H_ID == hh.H1_ID).FirstOrDefault() != null)
                {
                    sum += FinalHeader(hd.Where(a => a.H_ID == hh.H1_ID).FirstOrDefault(), hd).ToList().Count;
                }
            }
            p.H_ID = 0;

            foreach (tblHeaderJob tmpHJ in hj)
            {
                foreach (tblHeader hd2 in hd.Where(a => a.H_ID == tmpHJ.H1_ID))
                {
                    foreach (tblHeader hd3 in FinalHeader(hd2, hd))
                    {
                        if (sc.Where(a => a.Eva_ID == EvaID && a.H3_ID == hd3.H_ID).ToList().Count == 0)
                        {
                            //if (Ans.Where(a => a.H_ID == hd3.H_ID).ToList().Count == 0)
                            Ans.Add(hd3);
                        }
                    }
                }
            }

            foreach (tblHeader h in Ans)
            {
                header2.InsertSCORE(EvaID, h.H_ID);
            }
            header2.UpdateEvaluationData(EvaID, PositionID);
            GetHeader = header.getHeaderByPosition(PositionID, EvaID).OrderBy(a => a.H_ID).ToList();
            List <SP_GetHeaderByPosition_Result> H = new List <SP_GetHeaderByPosition_Result>();
            //List<SP_GetHeaderByPosition_Result> H2 = new List<SP_GetHeaderByPosition_Result>();
            // GetHeader.Reverse(0,GetHeader.Count);
            List <SP_GetHeaderByPosition_Result> GetHeader2 = new List <SP_GetHeaderByPosition_Result>();
            List <tblHeaderAdditional>           HdA        = header.getHeaderAdditional();

            foreach (tblHeaderAdditional HdATemp in HdA.Where(a => a.Eva_ID == EvaID && a.Part2ID == PositionID).ToList())
            {
                if (HdATemp.H_status == 1 || ID == 2)
                {
                    SP_GetHeaderByPosition_Result newHeader = new SP_GetHeaderByPosition_Result();
                    newHeader.Alias      = HdATemp.Alias;
                    newHeader.H_Level    = HdATemp.H_Level;
                    newHeader.Parent     = HdATemp.parent;
                    newHeader.Text       = HdATemp.Text;
                    newHeader.Text_Eng   = HdATemp.Text_Eng;
                    newHeader.Eva_ID     = HdATemp.Eva_ID;
                    newHeader.H_ID       = (-1) * HdATemp.H_ID;
                    newHeader.PositionNO = PositionID;
                    newHeader.point      = HdATemp.point;
                    newHeader.Comment    = HdATemp.Comment;
                    if (HdATemp.Text_Eng == "-")
                    {
                        HdATemp.Text_Eng = HdATemp.Text;
                    }
                    if (HdATemp.Text == "-")
                    {
                        HdATemp.Text = HdATemp.Text_Eng;
                    }
                    newHeader.Text_Language = "{\"EN\":\"" + HdATemp.Text_Eng + "\",\"TH\":\"" + HdATemp.Text + "\"}";

                    newHeader.statusNo = "1";
                    GetHeader.Add(newHeader);
                }
                else if (ID == 1)
                {
                    DeleteHeader((-1) * HdATemp.H_ID);
                }
            }

            List <tblScore> sc2 = sc.Where(a => a.Eva_ID == EvaID && a.point > 0).OrderBy(a => a.H3_ID).ToList();

            sc2.ForEach(a =>
            {
                SP_GetHeaderByPosition_Result tmp = GetHeader.Where(b => b.H_ID == a.H3_ID).FirstOrDefault();
                if (tmp == null && a.point > 0)
                {
                    SP_GetHeaderByPosition_Result newHeader = new SP_GetHeaderByPosition_Result();
                    tblHeader hd2 = hd.Where(b => b.H_ID == a.H3_ID).FirstOrDefault();
                    if (hd2 != null)
                    {
                        newHeader.Alias         = hd2.Alias;
                        newHeader.H_Level       = hd2.H_Level;
                        newHeader.Parent        = hd2.Parent;
                        newHeader.Text          = hd2.Text;
                        newHeader.Text_Eng      = hd2.Text_Eng;
                        newHeader.Eva_ID        = EvaID;
                        newHeader.H_ID          = hd2.H_ID;
                        newHeader.PositionNO    = hd2.PositionNo;
                        newHeader.point         = a.point;
                        newHeader.Comment       = a.Comment;
                        newHeader.Text_Language = hd2.Text_Language;
                        newHeader.statusNo      = "2";
                        GetHeader.Add(newHeader);
                    }
                }
            });
            List <tblHeaderAdditional> hda2 = HdA.Where(a => a.Eva_ID == EvaID).ToList();

            hda2.ForEach(a =>
            {
                SP_GetHeaderByPosition_Result tmp = GetHeader.Where(b => b.H_ID == a.H_ID).FirstOrDefault();
                if (tmp == null && a.point > 0)
                {
                    SP_GetHeaderByPosition_Result newHeader = new SP_GetHeaderByPosition_Result();
                    tblHeaderAdditional hd2 = HdA.Where(b => b.H_ID == a.H_ID).FirstOrDefault();
                    if (hd2 != null)
                    {
                        newHeader.Alias      = hd2.Alias;
                        newHeader.H_Level    = hd2.H_Level;
                        newHeader.Parent     = hd2.parent;
                        newHeader.Text       = hd2.Text;
                        newHeader.Text_Eng   = hd2.Text_Eng;
                        newHeader.Eva_ID     = EvaID;
                        newHeader.H_ID       = hd2.H_ID;
                        newHeader.PositionNO = 0;
                        newHeader.point      = a.point;
                        newHeader.Comment    = a.Comment;
                        if (hd2.Text_Eng == "-")
                        {
                            hd2.Text_Eng = hd2.Text;
                        }
                        if (hd2.Text == "-")
                        {
                            hd2.Text = hd2.Text_Eng;
                        }
                        newHeader.Text_Language = "{\"EN\":\"" + hd2.Text_Eng + "\",\"TH\":\"" + hd2.Text + "\"}";
                        newHeader.statusNo      = "2";
                        GetHeader.Add(newHeader);
                    }
                }
            });
            List <SP_GetHeaderByPosition_Result> H_new = new List <SP_GetHeaderByPosition_Result>();
            List <SP_GetHeaderByPosition_Result> hder  = GetHeader.Where(a => a.H_ID > 0).OrderBy(a => a.H_ID).ToList();

            foreach (SP_GetHeaderByPosition_Result a in hder)
            {
                if (a.Parent == 0)
                {
                    H_new.Add(a);
                }
                else
                {
                    int parent = (int)a.Parent;
                    for (int i = 0; i < H_new.Count; i++)
                    {
                        if (H_new[i].H_ID == parent)
                        {
                            H_new.Insert(i + 1, a);
                        }
                    }
                }
            }

            foreach (SP_GetHeaderByPosition_Result a in GetHeader.Where(a => a.H_ID < 0))
            {
                if (a.Parent == 0)
                {
                    H_new.Add(a);
                }
                else
                {
                    int parent = (int)a.Parent;
                    for (int i = 0; i < H_new.Count; i++)
                    {
                        if (H_new[i].H_ID == parent)
                        {
                            H_new.Insert(i + 1, a);
                        }
                    }
                }
            }

            List <SP_GetHeaderByPosition_Result> H_new2 = new List <SP_GetHeaderByPosition_Result>();


            foreach (SP_GetHeaderByPosition_Result a in H_new)
            {
                if (a.Parent == 0)
                {
                    H_new2.Add(a);
                }
                else
                {
                    int parent = (int)a.Parent;
                    for (int i = 0; i < H_new2.Count; i++)
                    {
                        if (H_new2[i].H_ID == parent && H_new2.Find(b => b.H_ID == a.H_ID) == null)
                        {
                            if (H_new2.Where(x => x.Score_ID == a.Score_ID).ToList().Count == 0)
                            {
                                H_new2.Insert(i + 1, a);
                            }
                        }
                    }
                }
            }
            List <JObject> aaa = new List <JObject>();

            H_new2.ForEach(a =>
            {
                JObject bbb          = new JObject();
                bbb["H_ID"]          = a.H_ID;
                bbb["Text_Language"] = JsonConvert.DeserializeObject <JObject>(a.Text_Language);
                bbb["Alias"]         = a.Alias;
                bbb["Comment"]       = a.Comment;
                bbb["Eva_ID"]        = a.Eva_ID;
                bbb["H_Level"]       = a.H_Level;
                bbb["Parent"]        = a.Parent;
                bbb["point"]         = a.point;
                bbb["PositionNO"]    = a.PositionNO;
                bbb["Score_ID"]      = a.Score_ID;
                bbb["Text"]          = a.Text;
                bbb["Text_Eng"]      = a.Text_Eng;
                bbb["Status"]        = a.statusNo;
                aaa.Add(bbb);
            });

            return(aaa);
            //JObject Data = new JObject();
            //for (int i = 0;i<H_new2.Count;i++)
            //{
            //    if (H_new2[i].Text_Language != null)
            //    {
            //        string json = H_new2[i].Text_Language.Replace(@"\", "");
            //        Data = JsonConvert.DeserializeObject<JObject>(json);
            //        if (Data[Language] != null)
            //        {
            //            H_new2[i].Text_Language = Data.ToString();
            //        }
            //    }
            //}
            //return Data;
        }