public Domain.Car.Car Add(Domain.Car.Car car)
        {
            var addedCar = _context.Cars.Add(car).Entity;

            AddDomainEntityEvents(addedCar);
            return(addedCar);
        }
        private void AddDomainEntityEvents(Domain.Car.Car car)
        {
            var carEvents = car.DomainEvents?.Select(e => (e as CarEvent));

            if (carEvents != null && carEvents.Any())
            {
                _context.CarEvents.AddRange(carEvents.Select(e => e.ToEntity()));
            }

            var tireEvents = car.Tires.Where(t => t.DomainEvents != null)
                             .SelectMany(t => t.DomainEvents?.Select(e => (e as TireEvent)));

            if (tireEvents != null && tireEvents.Any())
            {
                _context.TireEvents.AddRange(tireEvents.Select(t => t.ToEntity()));
            }
        }
 public async Task AddCar(Domain.Car.Car car)
 {
     string query = "INSERT INTO car(model, typename) VALUES(@Model, @TypeName)";
     await _dbConnection.ExecuteAsync(query, car);
 }
 public void Update(Domain.Car.Car car)
 {
     AddDomainEntityEvents(car);
     _context.Entry(car).State = EntityState.Modified;
 }
 public TireAdded(int tireId, Domain.Car.Car car, string createdBy)
     : base(() => GetCarId(car), createdBy)
 {
     TireId = tireId;
 }