+ Range Data
    Scheme
This commit is contained in:
2019-01-21 17:47:42 +01:00
parent 92dd963117
commit 9b31c93341
8 changed files with 112 additions and 43 deletions

View File

@@ -6,10 +6,10 @@ using LinqToDB;
using System.Linq;
using System;
using SeniorAssistant.Models.Users;
using SeniorAssistant.Data;
using System.Threading.Tasks;
using System.Web;
using System.IO;
using System.Collections.Generic;
using System.Net.Http.Headers;
namespace IdentityDemo.Controllers
{
@@ -25,35 +25,48 @@ namespace IdentityDemo.Controllers
private static readonly string AlreadyPatie = "Sei gia' un paziente";
private static readonly string DocNotExists = "Il dottore selezionato non esiste";
private static readonly string InsertAsDoct = "Ti ha inserito come il suo dottore: ";
private static readonly string DefaultImage = "/uploads/default.jpg";
private static readonly string UploadsDirec = "/uploads/";
[HttpPost]
public async Task<ActionResult> _login(string username, string password)
{
var result = await (from u in Db.Users
where u.Username.Equals(username)
&& u.Password.Equals(password)
select u).ToListAsync();
if (result.Count == 1)
try
{
User user = result.First();
HttpContext.Session.SetString(Username, username);
HttpContext.Session.SetString("email", user.Email);
HttpContext.Session.SetString("name", user.Name);
HttpContext.Session.SetString("lastname", user.LastName);
var isDoc = (from d in Db.Doctors
where d.Username.Equals(username)
select d).ToArray().FirstOrDefault() != null;
HttpContext.Session.SetString("role", isDoc? "doctor":"patient");
var user = await (from u in Db.Users
where u.Username.Equals(username)
&& u.Password.Equals(password)
select u).FirstOrDefaultAsync();
return Json(OkJson);
if (user != null)
{
HttpContext.Session.SetString(Username, username);
HttpContext.Session.SetString("email", user.Email);
HttpContext.Session.SetString("name", user.Name);
HttpContext.Session.SetString("lastname", user.LastName);
HttpContext.Session.SetString("avatar", user.Avatar ?? DefaultImage);
var isDoc = (from d in Db.Doctors
where d.Username.Equals(username)
select d).ToArray().FirstOrDefault() != null;
HttpContext.Session.SetString("role", isDoc ? "doctor" : "patient");
return Json(OkJson);
}
return Json(new JsonResponse()
{
Success = false,
Message = InvalidLogIn
});
}
return Json(new JsonResponse()
catch (Exception e)
{
Success = false,
Message = InvalidLogIn
});
return Json(new JsonResponse()
{
Success = false,
Message = e.Message + " " +e.Source + "</br>"+ e.StackTrace
});
}
}
[HttpPost]
@@ -68,6 +81,7 @@ namespace IdentityDemo.Controllers
{
try
{
user.Avatar = DefaultImage;
Db.Insert(user);
if (code != null && code.Equals("444442220"))
{
@@ -218,18 +232,51 @@ namespace IdentityDemo.Controllers
return Json(OkJson);
});
}
[HttpPost]
public async Task<ActionResult> _save(IFormFile file)
public async Task<ActionResult> _save(IEnumerable<IFormFile> files)
{
return LoggedAction(() =>
return await LoggedAction(() =>
{
var loggedUser = HttpContext.Session.GetString(Username);
if (files != null)
{
var loggedUser = HttpContext.Session.GetString(Username);
foreach (var file in files)
{
var fileContent = ContentDispositionHeaderValue.Parse(file.ContentDisposition);
// We are only interested in the file name.
var fileName = loggedUser + Path.GetExtension(fileContent.FileName.ToString().Trim('"'));
var physicalPath = "wwwroot" + UploadsDirec;
Directory.CreateDirectory(physicalPath);
physicalPath = Path.Combine(physicalPath, fileName);
var externalPath = Path.Combine(UploadsDirec, fileName);
using (var fileStream = new FileStream(physicalPath, FileMode.Create))
{
file.CopyTo(fileStream);
}
var user = (from u in Db.Users
where u.Username.Equals(loggedUser)
select u).FirstOrDefault();
user.Avatar = externalPath;
HttpContext.Session.SetString("avatar", externalPath);
Db.Update(user);
}
}
return Json(OkJson);
/*
if (file.Length > 0)
{
var fileContent = ContentDispositionHeaderValue.Parse(file.ContentDisposition);
var name = loggedUser + ".jpg";
var path = Path.Combine(("~/uploads/"), name);
var path = Path.Combine(("/uploads/"), name);
var stream = new FileStream(path, FileMode.Create);
file.CopyTo(stream);
var user = (from u in Db.Users
@@ -261,6 +308,7 @@ namespace IdentityDemo.Controllers
}
return Json(new JsonResponse());
*/
});
}
}
}

View File

@@ -7,10 +7,6 @@
<LangVersion>7.1</LangVersion>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\uploads\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="linq2db" Version="2.5.4" />
<PackageReference Include="Microsoft.AspNetCore.App" />

View File

@@ -6,6 +6,7 @@
ViewBag.Title = "Hello Razor";
var session = HttpContextAccessor.HttpContext.Session;
var username = session.GetString("username");
bool filter = HttpContextAccessor.HttpContext.Request.Query["from"] != (String)null;
bool auth = username.Equals(Model.Username);
bool isDoc = session.GetString("role").Equals("doctor");
@@ -29,6 +30,14 @@ else
<div>
<input id="hours-data" type="text" placeholder="hours" value="24" />
<button id="refresh-hours" class="fc-button">Cambia ora</button>
<input id="date-from" type="date" value="@HttpContextAccessor.HttpContext.Request.Query["from"]" />
<input id="date-to" type="date" value="@HttpContextAccessor.HttpContext.Request.Query["to"]" />
<button id="refresh-date" class="fc-button">Cambia data</button>
<label>Mostra dati sottoforma tabella</label>
<input type="checkbox" id="show-table"/>
<div id="chart-data"></div>
</div>
@if (isDoc && patient != null)
@@ -89,9 +98,20 @@ else
});
$("#refresh-hours").on("click", function () {
var hours = $("#hours-data").val();
var base_url = "@Url.Content("~/api/")";
var end_url = "/@Model.Username/last/" + hours;
kendoUpdate(end_url);
});
$("#refresh-date").on("click", function () {
var from = $("#date-from").val();
var to = $("#date-to").val();
var end_url = "/@Model.Username/"+from+"/"+to;
kendoUpdate(end_url);
});
var toRefresh = "@if (filter) { @Html.Raw("#refresh-date") } else { @Html.Raw("#refresh-hours") }";
$(toRefresh).click();
function kendoUpdate(end_url, base_url = "@Url.Content("~/api/")") {
$.getJSON(base_url + "heartbeat" + end_url, function (heartbeat) {
$.getJSON(base_url + "step" + end_url, function (steps) {
$.getJSON(base_url + "sleep" + end_url, function (sleep) {
@@ -110,7 +130,9 @@ else
&& Object.keys(steps).length == 0
&& Object.keys(sleep).length == 0)
$("#chart-data").html("Nessun dato");
else
else {
/* se checked #show-table allora crea dati come data.cshtml */
/**/
$("#chart-data").kendoChart({
title: { text: "Visualizzazione attivita' di @Model.Name @Model.LastName" },
legend: { position: "bottom" },
@@ -175,10 +197,10 @@ else
min: 0
}]
}); /* Kendo */
} /* else */
}); /* sleep */
}); /* steps */
}); /* heart */
}); /* click */
$("#refresh-hours").click();
}
</script>
}

View File

@@ -11,11 +11,11 @@
<script>
$("#login-btn").on("click", function () {
var userName = $("#username").val();
var username = $("#username").val();
var password = $("#password").val();
$.ajax({
url: "/Account/_login",
data: { UserName: userName, Password: password, RememberMe: false },
data: { Username: username, Password: password },
dataType: "json",
type: "POST",
success: function (data) {
@@ -27,9 +27,6 @@
$("#user-menu").addClass("open");
}
return false;
},
error: function (xhr, status, error) {
alert(xhr.status+" "+xhr.responseText)
}
})
});

View File

@@ -7,7 +7,7 @@
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<!-- The user image in the navbar-->
<img src="~/AdminLTE-2.4.3/dist/img/user2-160x160.jpg" class="user-image" alt="User Image">
<img src="@session.GetString("avatar")" class="user-image" alt="User Image">
<!-- hidden-xs hides the username on small devices so only the image appears. -->
<span id="user-name" class="hidden-xs">@Model</span>
</a>
@@ -47,8 +47,14 @@
$(document).ready(function () {
$("#files").kendoUpload({
async: {
saveUrl: "save",
saveUrl: "/Account/_save",
autoUpload: true
},
success: function (data) {
if (data.response.success)
window.location.reload();
else
console.log(data.response.message);
}
});
});

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 KiB