@inject IHttpContextAccessor HttpContextAccessor @inject IDataContextFactory dbFactory @{ var session = HttpContextAccessor.HttpContext.Session; string search = HttpContextAccessor.HttpContext.Request.Query["q"]; string username = session.GetString("username"); if (username != null) { var isDoc = session.GetString("role").Equals("doctor"); var MaxPatients = 30; var Menu = new List(); Menu.Add(new MenuItem("Profilo", "/")); Menu.Add(new MenuItem("Dati personali", "/user/" + username)); if (isDoc) { var db = dbFactory.Create(); var patients = (from p in db.Patients where p.Doctor.Equals(username) join u in db.Users on p.Username equals u.Username select new { Username = p.Username, Name = u.Name + " " + u.LastName }).ToArray(); if(search != null) { patients = (from p in patients where p.Name.StartsWith(search) select p).ToArray(); } patients.Take(MaxPatients); var num = patients.Count(); var sub = new SubMenu() { Text = num + " pazienti link rapido", Items = new List() }; foreach (var p in patients) { sub.Items.Add(new MenuItem(p.Name, "/user/" + p.Username)); } Menu.Add(sub); } else { var db = dbFactory.Create(); var patient = (from p in db.Patients where p.Username.Equals(username) select p).FirstOrDefault(); if (patient != null) { Menu.Add(new MenuItem("Invia un messaggio al dottore", "/Message/" + patient.Doctor)); } } @if (search != null) { } } }