public async Task DeleteAsync(string id, string userId)
        {
            ProductVehicle productVehicle = new ProductVehicle()
            {
                Id        = id,
                Deleted   = true,
                DeletedAt = DateTime.Now,
            };

            await UpdateAsync(productVehicle, userId);
        }
        public async Task UpdateAsync(ProductVehicle entity, string userId)
        {
            var db = _databaseLocator.GetProductCenterManagementDatabase();

            var tran = _databaseLocator.GetDbTransaction(db);

            StringBuilder updated_params = new StringBuilder();

            if (entity.DeletedAt.HasValue)
            {
                updated_params.Append(" Deleted=@Deleted, ");
            }

            if (!string.IsNullOrEmpty(userId))
            {
                updated_params.Append(" DeletedById=@DeletedById, ");
            }

            if (entity.DeletedAt.HasValue)
            {
                updated_params.Append(" DeletedAt=@DeletedAt, ");
            }

            if (!string.IsNullOrWhiteSpace(updated_params.ToString()))
            {
                updated_params.Append(" UpdatedAt=NOW(), ");
                updated_params.Append(" UpdatedById=@UpdatedById ");
                await db.ExecuteAsync(
                    $" UPDATE {_TABLE} SET {updated_params.ToString()}  WHERE Id=@Id ",
                    new
                {
                    entity.Id,
                    entity.Deleted,
                    entity.DeletedAt,
                    DeletedById = userId,
                    UpdatedById = userId,
                });
            }
        }