public HttpResponseMessage Get(int id)
{
Requires.InRange(id >= 0, "id");
Review review = Reviews.GetReview(id);
if (review == null)
{
return NotFound();
}
// Filter iterations if this user isn't the owner
bool owner = review.UserId == User.Identity.UserId;
IEnumerable<Iteration> iters = review.Iterations;
if (!owner)
{
iters = review.Iterations.Where(i => i.Published);
}
return Ok(new ReviewDetailModel()
{
Id = review.Id,
Title = review.Name,
Author = UserModel.FromUser(review.Creator),
Description = review.Description,
Iterations = iters.OrderBy(i => i.StartedOn).Select((i, idx) => new IterationModel()
{
Id = i.Id,
Order = idx,
Published = i.Published,
Description = i.Description
}),
Owner = owner
});
}