// replace (POST) a complete line item public IActionResult Update(string timecardId, string lineId, [FromBody] TimecardLine timecardLine) { Timecard timecard = Database.Find(timecardId); if (timecard == null) { return(NotFound()); } if (timecard.Status != TimecardStatus.Draft) { return(StatusCode(409, new InvalidStateError() { })); } var Guid = new Guid(lineId); var oldLine = timecard.FindLineIndex(Guid); var annotatedLine = timecard.UpdateLine(Guid, timecardLine); return(Ok(annotatedLine)); }