Code |
var q_uvu = db.d_events
.AsNoTracking()
.Where(x => x.event_type.ToLower() == "app_verify" && x.date_apt_exe == null)
.Select(s => new { s.id_person, idApt = (string.IsNullOrEmpty(s.id_event) ? "" : "!") }).Distinct();
DateTime datetmp = DateTime.Now.AddDays(-4380); //12 years
var qry = (from p in db.d_person
from p_att in db.d_person_att.Where(w => w.id_person == p.id_person & w.domain == "A_PEOPL").DefaultIfEmpty()
from s in db.d_status.Where(w => w.id_person == p.id_person && w.domain == "SERVICE" && w.active == true).DefaultIfEmpty()
from sh in db.d_status.Where(w => w.id_person == p.id_person && w.domain == "HIVST" && w.active == true).DefaultIfEmpty()
from q in q_uvu.Where(w => p.id_person == w.id_person).DefaultIfEmpty()
where
p.date_stopped == null &&
sh.status == "HIV_YES" &&
p_att.vt2 != null && //born in PTMC
p.pe_dob > datetmp && // < 12 years old
(s.status == "MCPC" || s.status == "MCPC_C")
select new
{
p.id_person,
q.idApt,
p.id_dream,
p.pe_surname,
p.pe_name,
p.pe_sex,
p.pe_dob,
p.date_started,
p.pe_note
}).AsEnumerable().Select(s => new
{
s.id_person,
s.idApt,
s.id_dream,
s.pe_surname,
s.pe_name,
s.pe_sex,
_data = (s.pe_dob.HasValue) ? s.pe_dob.Value.ToShortDateString() : "",
s.date_started,
s.pe_note
});
dt = qry.ToDataTable();
dt.TableName = "lst_data";
|