Files
upo-senior-assistant/SeniorAssistant/Views/Home/Profile.cshtml
2019-01-29 20:22:57 +01:00

134 lines
5.4 KiB
Plaintext

@inject IHttpContextAccessor HttpContextAccessor
@inject IDataContextFactory<SeniorDataContext> dbFactory
@model User
<div class="content">
<div class="pull-left" , style="width: 50%">
<h2 class="alert-success" style="text-align:center">
Welcome @Model.Name @Model.LastName
</h2>
name: @Model.Name<br />
lastname: @Model.LastName<br />
email: @Model.Email<br />
</div>
<div class="box pull-right" , style="width: 45%">
@if (Model.IsPatient()) // is patient and has doc, must show doc data
{
var db = dbFactory.Create();
var doctor = (from u in db.Users
join d in db.Doctors on u.Username equals d.Username
where d.Username.Equals(Model.Pat.Doctor)
select new { u.Username, u.Name, u.LastName, d.Location }).ToArray().First();
<p class="text-bold">Dottore: @doctor.Name @doctor.LastName</p>
<p class="text-fuchsia">Dove mi puoi trovare? @doctor.Location</p>
<textarea class="progress-text" placeholder="Nessuna nuova nota" readonly>@Model.Pat.Notes</textarea>
<a class="" href="/Message/@doctor.Username">Invia un messaggio al tuo dottore</a>
}
else
{
var db = dbFactory.Create();
dynamic[] data;
Type type = null;
string title = null;
var docData = db.Doctors.Where(d => d.Username.Equals(Model.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 = "<a href=\\\"/user/" + u.Username + "\\\">Profile</a>" }).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 = "<a id=\\\"choose-" + u.Username + "\\\" href=#>Scegli</a>" }).ToArray();
data = docs;
type = docs.FirstOrDefault().GetType();
}
if (type != null)
{
var fields = new List<string>();
foreach (var field in type.GetProperties())
{
fields.Add(field.Name);
}
<p>@title</p>
<div id="var-table"></div>
<script>
var datas = [
@foreach (var el in data)
{
@:{
@foreach (var field in fields)
{
@field@:: "@Html.Raw(type.GetProperty(field).GetValue(el, null))",
}
@:},
}
];
$(document).ready(function () {
$("#var-table").kendoGrid({
dataSource: {
data: datas,
schema: {
model: {
fields: {
@foreach (var field in fields)
{
@field@: : { type: "@field.GetType().Name" },
}
}
}
}
},
scrollable: true,
sortable: true,
filterable: true,
columns: [
@foreach (var field in fields)
{
@:{ field: "@field", title: "@field", template: "#=@field#" },
}
]
});
@if(docData == null) // choose a doc
{
<text>
$('[id^="choose-"]').on("click", function () {
var id = this.id.replace("choose-", '');
$.ajax({
type: "POST",
url: "/Account/_addDoc",
data: { doctor: id },
success: function (data) {
if (data.success) {
window.location.reload();
}
}
})
})
</text>
}
});
</script>
}
}
</div>
</div>