Files
upo-senior-assistant/SeniorAssistant/Views/Home/Message.cshtml
Giacomo Bertolazzi b7460cfd78 Refactoring
* refactoring
* fixes
* messages
* new interface
2019-01-18 23:22:03 +01:00

88 lines
3.0 KiB
Plaintext

@model string
@inject IHttpContextAccessor HttpContextAccessor
@inject IDataContextFactory<SeniorDataContext> dbFactory
@using LinqToDB;
@{
ViewBag.Title = "Hello Razor";
string username = HttpContextAccessor.HttpContext.Session.GetString("username");
var db = dbFactory.Create();
var user = (from u in db.Users
where u.Username.Equals(Model)
select u).FirstOrDefault();
var messages = (from m in db.Messages
where (m.Username.Equals(Model) && m.Receiver.Equals(username))
||(m.Receiver.Equals(Model) && m.Username.Equals(username))
orderby m.Time ascending
select m).ToArray();
}
<div class="content">
@if (messages.Count() == 0)
{
<p class="text-red">Non hai messaggi</p>
}
else
{
<h3 class="text-bold">Messaggi con @user.Name @user.LastName</h3>
foreach (var message in messages)
{
if (message.Seen == default && message.Receiver.Equals(username))
{
message.Seen = DateTime.Now;
db.Update(message);
}
<div>
@if (message.Receiver.Equals(username))
{
<div class="pull-left"></div>
<div class="pull-right-container bg-light-blue">
<span style="white-space: pre-line" class="">@message.Body</span>
<p class="text-aqua">@message.Seen</p>
</div>
}
else
{
<div class="pull-right-container bg-green-gradient">
<div style="white-space: pre-line" class="">@message.Body</div>
<p class="text-aqua">@message.Seen</p>
</div>
<div class="pull-right"></div>
}
</div>
}
}
<div class="pull-right">
<textarea id="res-message" class="progress-text" placeholder="Scrivi qui per scrivere un messaggio"></textarea>
<button id="btn-send-message">Invia</button>
<p id="message-error" class="text-red"></p>
</div>
<script>
$("#btn-send-message").on("click", function () {
var min = 10;
var body = $("#res-message").val().trim();
var endMessage = $("#message-error");
if (body.length < min) {
endMessage.html("Messaggio non valido (minimo " + min + " caratteri)");
return false;
}
$.ajax({
url: "/Account/_sendMessage",
type: "POST",
data: {
Receiver: "@Model",
Body: body
},
success: function (data) {
console.log(data);
$("#res-message").val("");
endMessage.html("Messaggio inviato");
window.location.reload();
}
});
});
</script>
</div>