Chain of Responsibility Pattern and Aspect Oriented Programming

Each class contains only the business logic code, while the aspects will be responsible of intercepting the code in order to inject the cross-cutting concerns.

This is first version of example code.

This is second version. You can find MethodInfo and parameter values in the aspect classes.

Uninstall Vagrang on Ubuntu

Uninstall just vagrant

This will remove just the vagrant package itself.

sudo apt-get remove vagrant

Uninstall vagrant and its dependencies

To remove the vagrant package and any other dependant package which are no longer needed from Ubuntu.

sudo apt-get remove --auto-remove vagrant

Purging vagrant (your config/data too)

If you also want to delete your local/config files for vagrant then this will work.

sudo apt-get purge vagrant

To delete configuration and/or data files of vagrant and it’s dependencies from Ubuntu then execute.

sudo apt-get purge --auto-remove vagrant

Bash Shortcuts



Command Description
ctrl + a Move to the start of the line.
ctrl + e Move to the end of the line.
ctrl + b Move back one character.
ctrl + f Move forward one character.
Ctrl-u Delete from the cursor to the beginning of the line.
Ctrl-k Delete from the cursor to the end of the line.
Ctrl-w Delete from the cursor to the start of the word.
Ctrl-y Pastes text from the clipboard.
Ctrl-l Clear the screen leaving the current line at the top of the screen.
!! Execute last command in history.
!n Execute nth command in history.
!$ Last argument of last command.
!^ First argument of last command.

C# and RabbitMQ PubSub Example

Before you run the following C# code, run the below docker code to have a RabbitMQ applicaton locally.

docker run -d –hostname my-rabbit –name some-rabbit -p 8080:15672 -p 5672:5672 rabbitmq:3-management

After run Docker RabbitMQ container, you can reach from http://localhost:8080/ as shown in following picture.