public async Task <CheckSheetEntry> AddInitialReCheck(ReCheck data) { var hasInitial = await _reCheckService.HasInitialReCheck(data.CheckSheetEntryId); if (hasInitial) { return(null); } await _reCheckService.Update(data); return(await GetById(data.CheckSheetEntryId)); }
public async Task <IActionResult> Post(ReCheck data) { if (data == null) { return(BadRequest()); } try { ReCheck latestRecheck; CheckSheetEntry checkSheetEntry; int controlId; switch (data.Value) { case null when data.ValueBool == null && data.ReCheckId == 0: return(Ok( new CheckSheetResultDto { Status = 0, StatusText = "Null entry", Result = null } )); case null when data.ValueBool == null && data.ReCheckId > 0: //get the recheck object as readonly var reCheck = await _service.GetByIdNoTracking(data.ReCheckId); //delete object await _service.Delete(data.ReCheckId); //get the latest rechecks after delete, if null get the initial recheck object latestRecheck = await _service.GetLatestRecheck(reCheck.CheckSheetEntryId) ?? reCheck; //get the control id controlId = reCheck.CheckSheetEntry.CheckSheet.ControlMethodId; checkSheetEntry = await GetCheckSheetEntry(controlId, latestRecheck); return(Ok( new CheckSheetResultDto { Status = 1, StatusText = "Delete", Result = new { reCheck = data, checkSheetEntry } } )); default: await _service.Update(data); latestRecheck = await _service.GetLatestRecheck(data.CheckSheetEntryId); controlId = latestRecheck.CheckSheetEntry.CheckSheet.ControlMethodId; checkSheetEntry = await GetCheckSheetEntry(controlId, latestRecheck); return(Ok( new CheckSheetResultDto { Status = 2, StatusText = "Add/Update", Result = new { reCheck = data, checkSheetEntry } } )); } } catch (Exception e) { return(BadRequest(e.Message)); } }