private async void ExecuteAddNewCustomerCommand()
        {
            this.CustomerDetailViewModel = new CustomerDetailViewModel
            {
                SelectedCustomer   = new KHACHHANG(),
                AgenciesCollection = this.allAgencies
            };

            var view = new CustomerDetailDialog
            {
                DataContext = this.CustomerDetailViewModel
            };

            //show the dialog
            var result = await DialogHost.Show(view, BaseMainWindowViewModel.Instance.Identifier, ExtendedOpenedEventHandler, AddNewCustomerClosingEventHandler).ConfigureAwait(false);

            //check the result...
            Console.WriteLine("Dialog was closed, the CommandParameter used to close it was: " + (result ?? "NULL"));
        }
        private async void ExecuteEditCustomerCommand(object key)
        {
            var values = (object[])key;

            this.ModifiedCustomer = KhachHangDAO.GetInstance().GetCustomerById(values);

            this.CustomerDetailViewModel = new CustomerDetailViewModel
            {
                SelectedCustomer   = this.ModifiedCustomer,
                AgenciesCollection = this.allAgencies
            };

            var view = new CustomerDetailDialog
            {
                DataContext = this.CustomerDetailViewModel
            };

            //show the dialog
            var result = await DialogHost.Show(view, BaseMainWindowViewModel.Instance.Identifier, ExtendedOpenedEventHandler, EditCustomerClosingEventHandler).ConfigureAwait(false);

            //check the result...
            Console.WriteLine("Dialog was closed, the CommandParameter used to close it was: " + (result ?? "NULL"));
        }