private void SetDefaultPhone(AvitoUser user) { if (user != null) { _serviceProxy.SaveContext(); MessageBox.Show(String.Format("Для публикации объявлений на сайте будет использован телефонный номер: {0}", user.SplitedCompanyPhones.FirstOrDefault()), "Изменения номера для публикации", MessageBoxButton.OK, MessageBoxImage.Information); } }
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 RefreshUserInformation(AvitoUser user) { if (IsAuthorized && user.UserName == CurrentDetachedUser.UserName) { _authenticator.UpdateUserInformation(user); _serviceProxy.SaveContext(); MessageBox.Show("Профиль пользователя обновлен, откройте окно заново!", "Обновление", MessageBoxButton.OK, MessageBoxImage.Information); } else { MessageBox.Show("Для обновления информации о пользователе необходимо быть авторизованным в системе", "Ошибка обновления", MessageBoxButton.OK, MessageBoxImage.Warning); } }
public Authenticator(AvitoUser usr) { if (usr.UserName != null) { usr.UserName = usr.UserName.Trim(); } if (usr.UserPassword != null) { usr.UserPassword = usr.UserPassword.Trim(); } _user = usr; _userCredentials.Set("login", usr.UserName); _userCredentials.Set("password", usr.UserPassword); }
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)); }
private void LogInAsUser(AvitoUser user) { CurrentDetachedUser = _serviceProxy.GetDetachedEntity(user); DoAvitoLogin(); Messenger.Default.Send <NotificationMessage>(new NotificationMessage(this, "CloseWindowUserList")); }
private void AddNewProfile() { CurrentDetachedUser = new AvitoUser(); IsAuthorized = false; }
public AvitoUser SaveUser(AvitoUser user) { context.AvitoUsers.Add(user); context.SaveChanges(); return(GetDetachedEntity(user)); }
public void DeleteUser(AvitoUser user) { context.AvitoUsers.Remove(user); context.SaveChanges(); }
public void UpdateUserFrom(AvitoUser userFrom, AvitoUser userTo) { context.Entry(userTo).CurrentValues.SetValues(userFrom); context.SaveChanges(); }
/// <summary> /// Заполнение информации о пользователе из настроек профиля avito /// </summary> /// <param name="user"></param> /// <returns></returns> public AvitoUser UpdateUserInformation(AvitoUser user) { Logger.Trace("Получение контактных данных пользователя"); var htmlPage = new HtmlDocument(); var phones = new List <string>(); var profileHtml = Client.DownloadString("https://www.avito.ru/profile/settings"); if (Client.ResponseUri == new Uri("https://www.avito.ru/profile/settings")) { try { htmlPage.LoadHtml(profileHtml); var id = htmlPage.DocumentNode.SelectSingleNode( "//span[contains(@class, 'profile-settings-header-descr')]"); user.ProfileId = int.Parse(Regex.Match(id.InnerText, @"\d+").Value); user.CompanyName = HtmlEntity.DeEntitize(htmlPage.GetElementbyId("fld_name").GetAttributeValue("value", "")); var cm = htmlPage.GetElementbyId("fld_manager"); user.CompanyManager = cm != null?HtmlEntity.DeEntitize(cm.GetAttributeValue("value", "")) : null; //регион может отсутствовать в профиле var regionCode = htmlPage.DocumentNode.SelectSingleNode( "//select[@name = 'locationId']/option[@selected='selected']") .GetAttributeValue("value", null); //user.TRegion_Id = String.IsNullOrEmpty(regionCode) ? null : (int?)int.Parse(regionCode); user.CompanyEmail = htmlPage.DocumentNode .SelectSingleNode("//span[contains(@class, 'profile-settings-header__name')]") .InnerText.Trim(); var phoneNodes = htmlPage.DocumentNode.SelectNodes("//tr[@class='settings-phones-item']/@data-phone"); foreach (var link in phoneNodes) { phones.Add(link.GetAttributeValue("data-phone", "")); } user.CompanyPhones = string.Join(";", phones); return(user); } catch (Exception ex) { Logger.Error("Ошибка получения данных о пользователе со страницы профиля: ", ex); MessageBox.Show( "При попытке получения контактной информации с сайта произошла ошибка, попробуйте обновить программу.", "Ошибка чтения профиля", MessageBoxButton.OK, MessageBoxImage.Error); } } else { MessageBox.Show("Нельзя обновить информацию о пользователе, который не авторизирован в системе", "Ошибка обновления", MessageBoxButton.OK, MessageBoxImage.Error); } return(null); }
public static string GetLicenseQuery(AvitoUser usr, int action = 0) { _userCredentials.Set("login", usr.UserName); _userCredentials.Set("password", usr.UserPassword); return("http://sellavi.ru/"); }