public async Task <IActionResult> RecordMeasurement(List <DataPointRecord> records, string urNumber, [FromQuery(Name = "categoryIdList")] List <int> categoryId) { try { await _context.Database.BeginTransactionAsync(); var recordedDate = DateTime.Now; foreach (int catId in categoryId) { var measurementRecord = new MeasurementRecord { DateTimeRecorded = recordedDate, MeasurementId = records.FirstOrDefault().MeasurementId, CategoryId = catId, Urnumber = urNumber }; _context.MeasurementRecord.Add(measurementRecord); await _context.SaveChangesAsync(); foreach (DataPointRecord record in records) { record.MeasurementRecordId = measurementRecord.MeasurementRecordId; _context.DataPointRecord.Add(record); } await _context.SaveChangesAsync(); } _context.Database.CommitTransaction(); } catch (Exception ex) { _context.Database.RollbackTransaction(); return(BadRequest(ex.Message)); } return(Ok()); }