public virtual DatabaseActionResult<Iteration> AddIteration(int reviewId, int currentUserId)
{
Requires.InRange(reviewId >= 0, "reviewId");
Requires.InRange(currentUserId >= 0, "currentUserId");
Review review = Data.Reviews
.Include("Iterations")
.Where(r => r.Id == reviewId)
.FirstOrDefault();
if (review == null)
{
return DatabaseActionResult<Iteration>.NotFound();
}
else if (review.UserId != currentUserId)
{
return DatabaseActionResult<Iteration>.Forbidden();
}
Iteration i = new Iteration()
{
Published = false,
StartedOn = DateTime.UtcNow,
};
review.Iterations.Add(i);
Data.SaveChanges();
return DatabaseActionResult<Iteration>.Success(i);
}