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 datetmp030 = DateTime.Now.AddDays(-30);
var qrye030 = (from p in db.d_person
from q in q_uvu.Where(w => p.id_person == w.id_person).DefaultIfEmpty()
from s in db.d_status.Where(w => w.id_person == p.id_person && w.domain == "TARV" && w.active == true)
from e in db.d_events.Where(w => p.id_person == w.id_person & w.event_type == "VISIT")
from pre in db.d_events_att.Where(w => e.id_event == w.id_event & w.domain == "A_DPRES")
from far in db.Farmaci.Where(w => pre.vt5 == w.idFarmaco)
from comp in db.Composti.Where(w => far.idComposto == w.idComposto)
where
p.date_stopped == null
&& s.status == "TARV_SI"
&& comp.ARV == true
select new
{
p.id_person,
q.idApt,
p.id_dream,
p.pe_surname,
p.pe_name,
p.pe_sex,
p.pe_dob,
e.date_apt_exe,
giorni = pre.vn2
}).ToList();
var qry = (from a in qrye030
group a by new
{
a.id_person,
a.id_dream,
a.pe_surname,
a.pe_name,
a.pe_sex,
a.pe_dob,
a.idApt
} into g
where g.Max(p => p.date_apt_exe.Value.AddDays(Convert.ToDouble(p.giorni))) < datetmp030
select new
{
g.Key.id_person,
g.Key.idApt,
g.Key.id_dream,
g.Key.pe_surname,
g.Key.pe_name,
g.Key.pe_sex,
g.Key.pe_dob,
cop_tarv = (DateTime?)g.Max(p => p.date_apt_exe.Value.AddDays(Convert.ToDouble(p.giorni)))
}).ToDataTable();
dt = qry;
dt.TableName = "lst_data";
|