public void OnNext(T value) { if (ReferenceEquals(value, null)) { throw new ArgumentNullException(nameof(T)); } var item = new FlashObservationWrapper((FlashObservation)(object)value); if (ReferenceEquals(item, null)) { throw new ArgumentNullException(nameof(item)); } try { var coordinatesWrapper = new CoordinatesWrapper(item.ObservationPoint); AddCoordinatesToDatabase(coordinatesWrapper); var coordinatesFromDb = GetLastFromDatabase(coordinatesWrapper).Result; item.CoordinatesId = coordinatesFromDb.Id; AddObservationToDatabase(item); } catch (Exception ex) { OnError(ex); } }
private async Task <CoordinatesWrapper> GetLastFromDatabase(CoordinatesWrapper coordinates) { var item = await _dbContext.CoordinatesWrapper.LastOrDefaultAsync(x => x.X == coordinates.X && x.Y == coordinates.Y); if (item == null) { throw new ArgumentNullException(nameof(item)); } return(item); }
private void InsertToDatabaseTable() { using (_dbContext) { foreach (var flash in _observations) { var coordinatesWrapper = new CoordinatesWrapper(flash.ObservationPoint); AddCoordinatesToDatabase(coordinatesWrapper); var coordinatesFromDb = GetLastFromDatabase(coordinatesWrapper).Result; var coordinatesId = flash.CoordinatesId; coordinatesId = coordinatesFromDb.Id; AddObservationToDatabase(flash); } } }
private void AddCoordinatesToDatabase(CoordinatesWrapper coordinates) { _dbContext.CoordinatesWrapper.Add(coordinates); _dbContext.SaveChanges(); }