示例#1
0
        private void DeleteUser(AvitoUser user)
        {
            var d =
                MessageBox.Show(
                    "Удаление пользователя приведет к очистке всех его объявлений из программы, продолжить?",
                    "Удаление пользователя", MessageBoxButton.YesNo, MessageBoxImage.Question);

            if (d == MessageBoxResult.Yes)
            {
                _serviceProxy.DeleteUser(user);
                AvitoUsers.Remove(user);
            }
        }
示例#2
0
        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));
        }
示例#3
0
        /// <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);
        }