public async Task <IActionResult> Update(OeeResourceParameter resourceParameter) { if (resourceParameter == null) { return(BadRequest(new ArgumentException("Resource parameter is empty!"))); } try { var entity = await UpdateEntry(resourceParameter).ConfigureAwait(false); var oee = await _oeeService.GetOee(entity.LineId).ConfigureAwait(false); return(Ok(oee)); } catch (Exception e) { return(BadRequest(e.Message)); } }
private async Task <Oee> UpdateEntry(OeeResourceParameter resourceParameter) { if (resourceParameter == null) { throw new ArgumentNullException(nameof(resourceParameter)); } await using var transaction = await _context.Database .BeginTransactionAsync() .ConfigureAwait(false); try { var record = _context.Oee.Update( new Oee { LineId = resourceParameter.LineId, OeeId = new Guid(resourceParameter.OeeId.ToString()), Timestamp = resourceParameter.Timestamp, EndDateTime = resourceParameter.EndDateTime, DateModified = DateTime.Now } ); await _context.SaveChangesAsync().ConfigureAwait(false); if (resourceParameter.OeeId == Guid.Empty) { await AddClockNumber(record.Entity.OeeId, resourceParameter.ClockNumber) .ConfigureAwait(false); } await transaction.CommitAsync().ConfigureAwait(false); return(record.Entity); } catch (Exception e) { await transaction.RollbackAsync().ConfigureAwait(false); throw new Exception(e.Message); } }