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();
var qryP = (from P in db.d_person
from q in q_uvu.Where(w => w.id_person == P.id_person).DefaultIfEmpty()
where
(P.date_stopped == null || P.date_stopped > date_to1)
select new
{
P.id_person,
P.id_dream,
P.pe_surname,
P.pe_name,
P.pe_sex,
P.pe_dob,
P.date_started,
q.idApt
}).ToList();
var st = db.d_status
.AsNoTracking()
.Where(W => W.date_started <= date_to1 && W.domain == "TER_COT")
.OrderByDescending(o => o.date_started)
.ThenByDescending(o => o.id_status)
.ToList()
.GroupBy(g => g.id_person)
.Select(s => new
{
ida = s.Key,
status = s.MaxBy(m => m.date_started),
}).ToList()
.Select(s => new
{
s.ida,
CURRENT_STATUS = s.status.status,
ID_PERSON = s.status.id_person,
CURRENT_STATUS_ID = s.status.id_status,
DATE_STARTED = s.status.date_started
}).ToList();
var qry = (from P in qryP
from s in st.Where(W => W.ID_PERSON == P.id_person)
where
s.CURRENT_STATUS == "YES"
select new
{
P.id_person,
P.id_dream,
P.pe_surname,
P.pe_name,
P.pe_sex,
P.pe_dob,
P.date_started,
s.DATE_STARTED,
P.idApt
}).AsEnumerable()
.Select(s => new
{
s.id_person,
s.idApt,
//idApt = q_uvu.Contains(s.id_person) ? "!" : "",
s.id_dream,
s.pe_surname,
s.pe_name,
s.pe_sex,
s.pe_dob,
s.date_started,
age = (s.pe_dob.HasValue ? (DateTime.Today.Date.Year - s.pe_dob.Value.Date.Year).ToString() : ""),
s.DATE_STARTED
});
dt = qry.ToDataTable();
dt.TableName = "lst_data";
|