Added various

- Added DOC
- Added Patient
- Added Notifications
- Added Messages
- Various Refactoring
This commit is contained in:
2019-01-04 15:52:13 +01:00
parent e98b0ee6ce
commit 3751680fd3
23 changed files with 831 additions and 265 deletions

View File

@@ -1,5 +1,6 @@
using Microsoft.AspNetCore.Mvc;
using SeniorAssistant.Models;
using SeniorAssistant.Models.Users;
namespace SeniorAssistant.Controllers.Services
{
@@ -18,4 +19,12 @@ namespace SeniorAssistant.Controllers.Services
[Route("api/[controller]")]
public class UserController : CrudController<User>
{ }
[Route("api/[controller]")]
public class PatientController : CrudController<Patient>
{ }
[Route("api/[controller]")]
public class DoctorController : CrudController<Doctor>
{ }
}

View File

@@ -1,11 +1,16 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using SeniorAssistant.Data;
using System.Linq;
using System;
namespace SeniorAssistant.Controllers
{
public abstract class BaseController : Controller
{
protected static readonly string MustBeLogged = "Devi essere loggato per vedere/modificare questo dato";
protected static readonly string InvalidModel = "Modello non valido";
protected static readonly string NoAuthorized = "Non sei autorizzato a vedere questi dati";
protected static readonly string Username = "username";
IDataContextFactory<SeniorDataContext> dbFactory;
@@ -28,5 +33,63 @@ namespace SeniorAssistant.Controllers
{
return HttpContext.Session.GetString(Username) != null;
}
protected ActionResult Action(Func<ActionResult> success)
{
return ModelState.IsValid ?
success.Invoke() :
Json(new JsonResponse()
{
Success = false,
Message = InvalidModel
});
}
protected ActionResult LoggedAction(Func<ActionResult> success)
{
return Action(() =>
{
return IsLogged() ?
success.Invoke() :
Json(new JsonResponse()
{
Success = false,
Message = MustBeLogged
});
});
}
protected ActionResult LoggedAccessDataOf(string username, Func<ActionResult> success)
{
return LoggedAction(() =>
{
var loggedUser = HttpContext.Session.GetString(Username);
var condition = username.Equals(loggedUser);
condition = condition || (from patient in Db.Patients
where patient.Doctor.Equals(loggedUser) && patient.Username.Equals(username)
select patient).ToArray().FirstOrDefault() != null;
return condition ?
success.Invoke() :
Json(new JsonResponse()
{
Success = false,
Message = NoAuthorized
});
});
}
}
public class JsonResponse
{
public JsonResponse(bool success=true, string message="")
{
Success = success;
Message = message;
}
public bool Success { get; set; }
public string Message { get; set; }
}
}