public List <SP_GetHeaderByPosition_Result> AvgScore([FromBody] List <JObject> Data) { var header = ServiceContainer.GetService <PesWeb.Service.Modules.HeaderManage>(); List <SP_GetHeaderByPosition_Result> sc = new List <SP_GetHeaderByPosition_Result>(); int i = 0; foreach (JObject j in Data) { SP_GetHeaderByPosition_Result c = new SP_GetHeaderByPosition_Result(); c.H_ID = Convert.ToInt32(j["H_ID"].ToString()); c.point = Convert.ToInt32(j["point"].ToString()); c.Parent = Convert.ToInt32(j["Parent"].ToString()); //c.Score_ID = Convert.ToInt32(j["Score_ID"].ToString()); c.Eva_ID = i; i++; sc.Add(c); } foreach (SP_GetHeaderByPosition_Result g in sc) { if (sc.Where(a => a.Parent == g.H_ID).ToList().Count > 0) { List <SP_GetHeaderByPosition_Result> tmp = sc.Where(a => a.Parent == g.H_ID).ToList(); int sum = 0; foreach (SP_GetHeaderByPosition_Result tmp2 in tmp) { if (tmp2.point != null) { sum += (int)tmp2.point; } } sc[sc.IndexOf(g)].point = sum / tmp.Count; } } return(sc); }
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; }