public IHttpActionResult GetInvoiceFromFinalizedProject(int id)
{
var currentUserId = User.Identity.GetUserId();
var project = this.data.Projects.Find(x => x.Id == id).FirstOrDefault();
if (project == null)
{
return this.BadRequest("No project with that id is present.");
}
if (!project.IsComplete)
{
return this.BadRequest("Project is not finished yet.");
}
if (project.ClientId != currentUserId)
{
return this.BadRequest("You are not authorized to meddle in other people's business... begone!");
}
var result = project.Client.Invoices.FirstOrDefault(x => x.ProjectId == project.Id);
if (result == null)
{
return this.BadRequest("No invoice for this project.");
}
var mappedResult = Mapper.Map<InvoiceResponseModel>(result);
return this.Ok(mappedResult);
}