public async Task <ActionResult> ArchiveChecklist(int id, short ver) { var checklist = await _repo.GetChecklist(id, ver); var status = checklist.Status; if (status == "Approved") { var draft = await _repo.DraftExists(id); if (draft != null) { return(BadRequest("Cannot archive when there is a Draft version")); } } else { return(BadRequest("Invalid Status")); } checklist.Status = "Archived"; _repo.EditChecklist(checklist); var history = LogHistory(checklist, "Marked as Archived", ver); _repo.Add(history); await _repo.SaveAll(); return(NoContent()); }