@inject IHttpContextAccessor HttpContextAccessor @inject IDataContextFactory dbFactory @{ var session = HttpContextAccessor.HttpContext.Session; var db = dbFactory.Create(); var username = session.GetString("username"); var patientData = db.Patients.Where(p => p.Username.Equals(username)).ToArray().FirstOrDefault(); var hasDoc = patientData != null; }

Welcome @username

name: @session.GetString("name")
lastname: @session.GetString("lastname")
email: @session.GetString("email")
@if (hasDoc) // is patient and has doc, must show doc data { var doctor = (from u in db.Users join d in db.Doctors on u.Username equals d.Username where d.Username.Equals(patientData.Doctor) select new { u.Username, u.Name, u.LastName, d.Location }).ToArray().First();

Dottore: @doctor.Name @doctor.LastName

Dove mi puoi trovare? @doctor.Location

Invia un messaggio al tuo dottore } else { dynamic[] data; Type type = null; string title = null; var docData = db.Doctors.Where(d => d.Username.Equals(username)).ToArray().FirstOrDefault(); if (docData != null) // is DOC { // see all the patient of the doc title = "Lista dei pazienti"; var patients = (from u in db.Users join p in db.Patients on u.Username equals p.Username where p.Doctor.Equals(docData.Username) select new { u.Username, u.Name, u.LastName, p.Notes, Profile = "Profile" }).ToArray(); data = patients; type = patients.FirstOrDefault()?.GetType(); } else // is a patient and need to choose a doctor { // choose which doc you want title = "Scegli un Doc"; var docs = (from u in db.Users join d in db.Doctors on u.Username equals d.Username select new { u.Username, u.Name, u.LastName, d.Location, Choose = "Scegli" }).ToArray(); data = docs; type = docs.FirstOrDefault().GetType(); } if (type != null) { var fields = new List(); foreach (var field in type.GetProperties()) { fields.Add(field.Name); }

@title

} }