yavsc/Yavsc/ApiControllers/PerformersApiController.cs

55 lines
1.6 KiB
C#

8 years ago
using Microsoft.AspNet.Mvc;
using System.Linq;
8 years ago
using System.Security.Claims;
using Microsoft.AspNet.Authorization;
8 years ago
using Microsoft.Data.Entity;
8 years ago
namespace Yavsc.Controllers
{
using Models;
8 years ago
[Produces("application/json")]
[Route("api/performers")]
public class PerformersApiController : Controller
{
ApplicationDbContext dbContext;
public PerformersApiController(ApplicationDbContext context)
{
dbContext = context;
}
8 years ago
/// <summary>
/// Lists profiles on an activity code
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
8 years ago
[Authorize(Roles="Performer"),HttpGet("{id}")]
8 years ago
public IActionResult Get(string id)
8 years ago
{
8 years ago
var pfr = dbContext.Performers.Include(
p=>p.OrganizationAddress
).Include(
p=>p.Performer
).Include(
p=>p.Performer.Posts
).SingleOrDefault(p=> p.PerformerId == id);
8 years ago
if (id==null)
{
8 years ago
ModelState.AddModelError("id","Specifier un identifiant de prestataire valide");
8 years ago
}
8 years ago
else {
var uid = User.GetUserId();
if (!User.IsInRole("Administrator"))
if (uid != id) return new ChallengeResult();
if (!pfr.Active)
{
ModelState.AddModelError("id","Prestataire désactivé.");
}
}
if (ModelState.IsValid) return Ok(pfr);
return new BadRequestObjectResult(ModelState);
8 years ago
}
}
8 years ago
}