private async void ShowAddMethod()
 {
     try
     {
         SelectedRole = new Role();
         NewUser      = new UserAddDataModel();
         userAddDialog.DataContext = this;
         await currentWindow.ShowMetroDialogAsync(userAddDialog);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
     }
 }
        private async void ExecuteSaveAsync()
        {
            try
            {
                if (NewUser.Name == null || NewUser.Password == null || SelectedRole.Name == null)
                {
                    return;
                }

                using (var unitOfWork = new UnitOfWork(new GeneralDBContext()))
                {
                    var user = unitOfWork.Users.SingleOrDefault(s => s.Name == _newUser.Name);

                    if (user != null)
                    {
                        await currentWindow.ShowMessageAsync("فشل الإضافة", "هذا المستخدم موجودة مسبقاً", MessageDialogStyle.Affirmative, new MetroDialogSettings()
                        {
                            AffirmativeButtonText = "موافق",
                            DialogMessageFontSize = 25,
                            DialogTitleFontSize   = 30
                        });
                    }
                    else
                    {
                        unitOfWork.Users.Add(new User
                        {
                            IsWorked = true,
                            Name     = _newUser.Name,
                            Password = _newUser.Password,
                            RoleID   = _newUser.RoleID
                        });
                        unitOfWork.Complete();
                        NewUser = new UserAddDataModel();
                        Load();
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }