public IActionResult ReplaceLine(string timecardId, string lineId, [FromBody] TimecardLine timecardLine, [ModelBinder] int resource) { Timecard timecard = Database.Find(timecardId); if (timecard == null || !timecard.DoesLineExist(Guid.Parse(lineId))) { return(NotFound()); } if (timecard.Status != TimecardStatus.Draft) { return(StatusCode(409, new InvalidStateError() { })); } if (resource != timecard.Resource) { return(StatusCode(409, new InvalidResourceError() { })); } timecard.RemoveLine(Guid.Parse(lineId)); var newLine = timecard.AddLine(timecardLine); return(Ok(newLine)); }
public IActionResult ReplaceLine(Guid id, [FromBody] DocumentLine newLine, Guid lineId) { logger.LogInformation($"Looking for timesheet {id} , line {lineId} "); Timecard timecard = repository.Find(id); if (timecard == null) { return(NotFound()); } if (timecard != null) { if (timecard.Status != TimecardStatus.Draft) { return(StatusCode(409, new InvalidStateError() { })); } timecard.RemoveLine(lineId); var replaceLine = timecard.AddLine(newLine); repository.Update(timecard); return(Ok(replaceLine)); } else { return(NotFound()); } }
public IActionResult ReplaceLine(Guid id, [FromBody] DocumentLine documentLine, Guid lineId) { logger.LogInformation($"Looking for timesheet {id} and line {lineId}"); Timecard timecard = repository.Find(id); if (timecard != null) { if (timecard.Status != TimecardStatus.Draft) { return(StatusCode(409, new InvalidStateError() { })); } //replace line if (timecard.HasLine(lineId)) { //remove the line if (timecard.RemoveLine(lineId)) { repository.Update(timecard); //add the new line return(AddLine(id, documentLine)); } else { //unable to remove line return(StatusCode(409, new RemoveLineError() { })); } } } return(NotFound()); }