using AutoMapper; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using TTSW.EF; using TTSW.Utils; using TTSW.Constant; using TTSW.Common; using TodoAPI2.Models; using System.IO; using System.Web; using System.Net; using TTSW.Configure; using Microsoft.Extensions.Options; using System.Data; namespace TodoAPI2.Models { public class external_competencyService : Iexternal_competencyService { private IMyDatabase db; public external_competencyService(IMyDatabase mydb) { db = mydb; } public List Getcom_competencys() { var sql = @" select * from com_competencys where competency_type = 'Core' and deleted_at is null; "; var para = db.GetParameterListNpgsql(); DataTable dt = db.ExecuteDataTableNpgsql(sql, para); var result = new List(); foreach (DataRow dr in dt.Rows) { var i = new external_com_competencysViewModel(); i.competency_id = Convert.ToInt32(dr["competency_id"]); i.competency_code = Convert.ToString(dr["competency_code"]); i.competency_topic = Convert.ToString(dr["competency_topic"]); result.Add(i); } return result; } public List Getcom_competency_levels() { var sql = $@" select * from com_competency_levels where deleted_at is null order by competency_id,level; "; var para = db.GetParameterListNpgsql(); DataTable dt = db.ExecuteDataTableNpgsql(sql, para); var result = new List(); foreach (DataRow dr in dt.Rows) { var i = new external_com_competency_levelsViewModel(); i.competency_level_id = Convert.ToInt16(dr["competency_level_id"]); i.competency_level_detail = Convert.ToString(dr["level"])+" "+Convert.ToString(dr["competency_level_detail"]); i.competency_id = Convert.ToInt16(dr["competency_id"]); i.level = Convert.ToInt16(dr["level"]); result.Add(i); } return result; } public List Getcom_competency_levelsBycompetency_id(int? competency_id) { if (competency_id.HasValue) { var sql = $@" select * from com_competency_levels where competency_id={competency_id.ToString()} and deleted_at is null order by level; "; var para = db.GetParameterListNpgsql(); DataTable dt = db.ExecuteDataTableNpgsql(sql, para); var result = new List(); foreach (DataRow dr in dt.Rows) { var i = new external_com_competency_levelsViewModel(); i.competency_level_id = Convert.ToInt16(dr["competency_level_id"]); i.competency_level_detail = Convert.ToString(dr["level"]) + " " + Convert.ToString(dr["competency_level_detail"]); i.competency_id = Convert.ToInt16(dr["competency_id"]); i.level = Convert.ToInt16(dr["level"]); result.Add(i); } return result; } return null; } public List GetTotalItemInLevel(int? competency_level_id) { if (competency_level_id.HasValue) { var sql = $@" select c.competency_id,c.competency_code,c.competency_topic,l.competency_level_id, l.competency_level_detail,count(d.competency_level_description_id) tot from public.com_competencys c left join public.com_competency_levels l on c.competency_id=l.competency_id left join public.com_competency_level_descriptions d on d.competency_level_id = l.competency_level_id where competency_type = 'Core' and l.competency_level_id={competency_level_id.ToString()} and c.deleted_at is null and l.deleted_at is null and d.deleted_at is null group by c.competency_id,c.competency_code,c.competency_topic,l.competency_level_id, l.competency_level_detail "; var para = db.GetParameterListNpgsql(); DataTable dt = db.ExecuteDataTableNpgsql(sql, para); var result = new List(); foreach (DataRow dr in dt.Rows) { var i = new external_competencyViewModel(); i.competency_id = Convert.ToInt32(dr["competency_id"]); i.competency_code = Convert.ToString(dr["competency_code"]); i.competency_topic = Convert.ToString(dr["competency_topic"]); i.competency_level_id = Convert.ToInt16(dr["competency_level_id"]); i.competency_level_detail = Convert.ToString(dr["competency_level_detail"]); i.tot = Convert.ToInt16(dr["tot"]); result.Add(i); } return result; } return null; } public List Getcom_competency_descriptions() { var sql = $@" select * from com_competency_level_descriptions where deleted_at is null order by competency_level_description_id, competency_level_id, list_no; "; var para = db.GetParameterListNpgsql(); DataTable dt = db.ExecuteDataTableNpgsql(sql, para); var result = new List(); foreach (DataRow dr in dt.Rows) { var i = new external_com_competency_descriptionsViewModel(); i.competency_level_description_id = Convert.ToInt16(dr["competency_level_description_id"]); i.description = Convert.ToString(dr["description"]); i.list_no = Convert.ToInt16(dr["list_no"]); i.competency_level_id = Convert.ToInt16(dr["competency_level_id"]); result.Add(i); } return result; } } }