Files
upo-senior-assistant/SeniorAssistant/Views/Shared/SidebarMenu.cshtml
DawitG96 64593ee4e4 - GUI
2019-02-01 01:52:06 +01:00

142 lines
6.4 KiB
Plaintext

@inject IHttpContextAccessor HttpContextAccessor
@inject IDataContextFactory<SeniorDataContext> dbFactory
@{
var session = HttpContextAccessor.HttpContext.Session;
string add = HttpContextAccessor.HttpContext.Request.Query["add"];
string remove = HttpContextAccessor.HttpContext.Request.Query["remove"];
string username = session.GetString("username");
var db = dbFactory.Create();
if (username != null)
{
var isDoc = session.GetString("role").Equals("doctor");
var isPatient = session.GetString("role").Equals("patient");
var Menu = new List<IMenuItem>();
Menu.Add(new MenuItem("Profilo", "/"));
if(isPatient)
{
Menu.Add(new MenuItem("Dati personali", "/user/" + username));
}
<aside class="main-sidebar">
<!-- sidebar: style can be found in sidebar.less -->
<section class="sidebar">
@if (isDoc)
{
if (add != null)
{
var user = db.Patients
.Where(p => p.Username.Equals(add) && p.Doctor.Equals(username))
.FirstOrDefault();
try
{
db.Insert(new MenuPatient()
{
Username = username,
PatientUsername = user.Username
});
}
catch { }
}
if(remove != null)
{
var menu = db.MenuPatients
.Where(p => p.Username.Equals(username) && p.PatientUsername.Equals(remove))
.FirstOrDefault();
if(menu != null)
{
db.Delete(menu);
}
}
var patients = db.MenuPatients
.LoadWith(m => m.Usr)
.Where(m => m.Username.Equals(username))
.Select(m => m.Usr)
.ToArray();
var num = patients.Count();
var sub = new SubMenu() { Text = num + " pazienti link rapido", Items = new List<MenuItem>() };
foreach (var p in patients)
{
sub.Items.Add(new MenuItem(p.Name + " " + p.LastName, "/user/" + p.Username));
}
Menu.Add(sub);
<!-- Sidebar user panel (optional) -->
<!-- search form (Optional) -->
<div class=" sidebar-menu text-muted">Aggiungi un utente ai link rapidi</div>
<form action="" method="get" class="sidebar-form">
<div class="input-group">
<input type="text" name="add" class="form-control" placeholder="Aggiungi..." , value="">
<span class="input-group-btn">
<button type="submit" class="btn btn-flat">
<i class="fa fa-plus"></i>
</button>
</span>
</div>
</form>
<!-- /.search form -->
<!-- Sidebar Menu -->
}
else
{
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));
}
}
<div>
<ul class="sidebar-menu" data-widget="tree">
@foreach (var menuItem in Menu)
{
switch (menuItem)
{
case MenuItem single:
<li>
<a href="@single.HRef">@single.Text</a>
</li>
break;
case SubMenu multi:
<li class="treeview">
<a href="#">
<i class="fa fa-link"></i><span>@multi.Text</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
@foreach (MenuItem item in multi.Items)
{
<li>
<a href="@item.HRef">
<span>@Html.Raw(item.Text)</span>
<form class="pull-right-container" action="" method="get">
<input type="text" name="remove" class="hide" value="@System.IO.Path.GetFileName(item.HRef)">
<button class="no-border btn-flat" type="submit">
<i class="fa fa-minus pull-right"></i>
</button>
</form>
</a>
</li>
}
</ul>
</li>
break;
}
}
</ul>
</div>
<!-- /.sidebar-menu -->
</section>
<!-- /.sidebar -->
</aside>
}
}