private void DeleteUser(AvitoUser user) { var d = MessageBox.Show( "Удаление пользователя приведет к очистке всех его объявлений из программы, продолжить?", "Удаление пользователя", MessageBoxButton.YesNo, MessageBoxImage.Question); if (d == MessageBoxResult.Yes) { _serviceProxy.DeleteUser(user); AvitoUsers.Remove(user); } }
private void DropCredentials(AvitoUser user) { //Разлогиниваемся в браузере BrowserClientEx.DownloadStringWithNotification(new Uri("https://www.avito.ru/profile/exit")); //Удаление пароля и кук у Attached Entity для указаного user user.UserCookie = null; user.UserPassword = null; _serviceProxy.SaveContext(); //Получение обновленой инфы по всем пользователям включая user (окно управления пользователями) AvitoUsers = _serviceProxy.GetUsers; RaisePropertyChanged("AvitoUsers"); //Текущему пользователю проставляем пустой пароль (для формы авторизации) CurrentDetachedUser = _serviceProxy.GetDetachedEntity(AvitoUsers.FirstOrDefault(x => x.UserName == user.UserName)); }
/// <summary> /// Initializes a new instance of the MainViewModel class. /// </summary> public MainViewModel(IDataAccessService servPxy) { try { _serviceProxy = servPxy; Database.SetInitializer(new AvitoModelInitializer()); //ID приложения: 2355847 //Создание браузерной группы BrowserClientEx = new WebClientEx(); BrowserClientEx.Encoding = new UTF8Encoding(); BrowserClientEx.DefaultHeaders[HttpRequestHeader.UserAgent] = Settings.Default.WebClientAgent; BrowserClientEx.RequestTimeOut = Settings.Default.WebClientTimeOut * 1000; //Настройки CefSharp CefSharp.Wpf.CefSettings cfsettings = new CefSharp.Wpf.CefSettings { CachePath = Environment.CurrentDirectory + @"\browserCache", UserAgent = Settings.Default.WebClientAgent, }; Cef.Initialize(cfsettings); ChBrowser = new CefSharpWrapper(); _requestHandler = new RequestHandler(); ChBrowser.RequestHandler = _requestHandler; BrowserClientEx.CHW = ChBrowser; AvitoUsers = servPxy.GetUsers; CurrentDetachedUser = (AvitoUsers.LastOrDefault() != null) ? _serviceProxy.GetDetachedEntity(AvitoUsers.LastOrDefault()) : new AvitoUser(); } catch (Exception exception) { Console.WriteLine(exception); MessageBox.Show(exception.Message, "Ошибка инициализации приложения", MessageBoxButton.OK, MessageBoxImage.Error); } // WINDOW COMMANDS WindowClosing = new RelayCommand <CancelEventArgs>((s) => { Cef.Shutdown(); }); AuthenticateCommand = new RelayCommand(DoAvitoLogin); CallUserListCommand = new RelayCommand(OpenUserListWindow); CallProfileNavigateCommand = new RelayCommand(() => { ChBrowser.Address = "https://www.avito.ru/profile"; }); CallProfileRegisterCommand = new RelayCommand(AddNewProfile); CallAvitoTechnicalCommand = new RelayCommand(() => { ChBrowser.Address = "https://www.avito.ru/info/show_technical"; }); CallHidePanelCommand = new RelayCommand(HideLeftPanel); CallViewPhotosCommand = new RelayCommand(() => { Process.Start(Environment.CurrentDirectory + @"\images"); }); CallLicenseInfoCommand = new RelayCommand(OpenLicenseInfo); CallDebugInfoCommand = new RelayCommand(OpenDebugWindow); CallReloadBrowserCommand = new RelayCommand(() => CefSharp.WebBrowserExtensions.Reload(ChBrowser, true)); //TODO: вынести в отдельную viewmodel LogInAsUserCommand = new RelayCommand <AvitoUser>(LogInAsUser); RefreshUserInformationCommand = new RelayCommand <AvitoUser>(RefreshUserInformation); DropCredentialsCommand = new RelayCommand <AvitoUser>(DropCredentials); DeleteUserCommand = new RelayCommand <AvitoUser>(DeleteUser); SetDefaultPhoneCommand = new RelayCommand <AvitoUser>(SetDefaultPhone); }