public IActionResult ReplaceLine(string timecardId, string lineId, [FromBody] TimecardLine timecardLine) { Timecard timecard = Database.Find(timecardId); if (timecard == null) { return(NotFound()); } else { if (timecard.Status != TimecardStatus.Draft) { return(StatusCode(409, new InvalidStateError() { })); } int index = timecard.searchLine(lineId); if (index < 0) { return(NotFound()); } return(Ok(timecard.replace(index, timecardLine))); } }