private void UpdateGroupClick(object sender, RoutedEventArgs e) { if ((GroupListView.SelectedItem as PhrasesGroup) == null) { MessageBox.Show("Select any group", "Fail", MessageBoxButton.OK, MessageBoxImage.Warning); return; } PhrasesGroup oldGroup = (PhrasesGroup)GroupListView.SelectedItem; _groupWindow = new GroupAddWindow((newGroup) => GroupAddUpdateRequirement(newGroup, oldGroup), oldGroup); bool?result = _groupWindow.ShowDialog(); if (result == null || !result.Value) { return; } oldGroup.GroupName = _groupWindow.Group.GroupName; oldGroup.GroupTheme = _groupWindow.Group.GroupTheme; oldGroup.FromLanguage = _groupWindow.Group.FromLanguage; oldGroup.ToLanguage = _groupWindow.Group.ToLanguage; UpdateGridViewColumnsSize(GroupGridViewColumns); }
public GroupAddWindow(Predicate <PhrasesGroup> requirement, PhrasesGroup group = null) { InitializeComponent(); _requirement = requirement; if (group == null) { Title = "New Group"; } else { Title = $"Edit Group {group.GroupName}"; Group = new PhrasesGroup(group.GroupName, group.GroupTheme, group.ToLanguage, group.FromLanguage); UpdateFields(); } }
private void RemovePhraseClick(object sender, RoutedEventArgs e) { PhrasesGroup phrasesGroup = (PhrasesGroup)GroupListView.SelectedItem; //Check is not necessary, because the button is not clickable while the selected one is null if (PhrasesListBox.SelectedItems.Count == 0) { MessageBox.Show("Select phrase for remove", "Fail", MessageBoxButton.OK, MessageBoxImage.Warning); return; } Phrase[] phrases = PhrasesListBox.SelectedItems.Cast <Phrase>().ToArray(); foreach (Phrase phrase in phrases) { phrasesGroup.RemovePhrase(phrase); } }
private bool GroupAddUpdateRequirement(PhrasesGroup newGroup, PhrasesGroup oldGroup = null) { if (newGroup.FromLanguage.Equals(newGroup.ToLanguage)) { MessageBox.Show("The languages are the same", "Fail", MessageBoxButton.OK, MessageBoxImage.Warning); return(false); } return(_wallpaperController.PhrasesGroups.All <PhrasesGroup>(delegate(PhrasesGroup j) { if (j.GroupName != newGroup.GroupName || j == oldGroup) { return true; } MessageBox.Show($"Group {newGroup.GroupName} already exist!", "Fail", MessageBoxButton.OK, MessageBoxImage.Warning); return false; })); }
private void SubmitButtonClick(object sender, RoutedEventArgs e) { if (!CheckFieldsOnValide()) { MessageBox.Show("Please fill in all required fields.", "Failed attempt", MessageBoxButton.OK, MessageBoxImage.Warning); return; } Language fromLanguage = (Language)groupFromLanguage.SelectedItem; Language toLanguage = (Language)groupToLanguage.SelectedItem; Group = new PhrasesGroup(groupName.Text, groupTheme.SelectedItem as string, toLanguage, fromLanguage); bool?result = _requirement?.Invoke(Group); if (result.HasValue && result.Value) { DialogResult = true; } }
private void AddPhraseClick(object sender, RoutedEventArgs e) { PhrasesGroup selectedGroup = GroupListView.SelectedItem as PhrasesGroup; if (selectedGroup == null) { return; } string phrasesFullText = new TextRange(PhrasesRichTextBox.Document.ContentStart, PhrasesRichTextBox.Document.ContentEnd) .Text; string[] phrases = phrasesFullText.Split('\n'); foreach (var phrase in phrases) { if (phrase.Trim() != String.Empty) { selectedGroup.AddPhrase(phrase.Trim()); } } PhrasesRichTextBox.Document.Blocks.Clear(); }
public async Task Start(Action <Wallpaper, Phrase> callBack = null) { if (IsRunning) { return; } _userWallpaper = WinAPI.GetWallpaper(); _userStyle = WinAPI.GetWallpaperStyle(); if (Wallpapers.Count == 0) { MessageBox.Show("List of wallpapers is empty", "Failed attempt", MessageBoxButton.OK, MessageBoxImage.Warning); return; } if (Wallpapers.All(i => i.IsFixed == false)) { MessageBox.Show("Select a phrase display point of any wallpaper", "Failed attempt", MessageBoxButton.OK, MessageBoxImage.Warning); return; } if (PhrasesGroups.Count == 0 || PhrasesGroups.All(i => i.Phrases.Count == 0) || !PhrasesGroups.Any(i => i.IsEnabled)) { MessageBox.Show("List of phrases is empty", "Failed attempt", MessageBoxButton.OK, MessageBoxImage.Warning); return; } _currentWallpaperIndex = 0; _currentPhraseIndex = 0; PhrasesGroup phrasesGroup = null; try { foreach (PhrasesGroup group in PhrasesGroups) { if (!group.IsEnabled) { continue; } phrasesGroup = group; await phrasesGroup.TranslateRequireded(_translator); } } catch (GoogleTranslateIPBannedException e) { MessageBox.Show($"You have been banned on https://translate.google.{_translator.Domain}.\n" + $"Try to use a proxy or wait a few hours.", "Oops!", MessageBoxButton.OK, MessageBoxImage.Error); Easy.Logger.Log4NetService.Instance.GetLogger <Wallpaper>().Info(e); //TODO: PROXY } catch (Exception e) { Easy.Logger.Log4NetService.Instance.GetLogger <WallpaperController>().Error(e); MessageBox.Show($"An error occurred while trying to translate a group \"{phrasesGroup.GroupName}\"\n" + "Group was disabled.", "Translation Fail", MessageBoxButton.OK, MessageBoxImage.Error); phrasesGroup.IsEnabled = false; } _tempPhrases = PhraseUpdateOrder == UpdateOrder.Randomly ? PhrasesGroups.GetShuffledPhrases() : (from grp in PhrasesGroups where grp.IsEnabled from phrase in grp.Phrases select phrase).ToArray(); if (_tempPhrases.Length == 0) { MessageBox.Show("Run is stopped", "Failed attempt", MessageBoxButton.OK, MessageBoxImage.Stop); return; } _tempWallpapers = WallpaperUpdateOrder == UpdateOrder.Randomly ? Wallpapers.OrderBy(i => _random.Next()).ToArray() : (from wallpaper in Wallpapers where wallpaper.IsFixed select wallpaper).ToArray(); _callBack = callBack; _timer.Change(TimeSpan.Zero, UpdateFrequency); IsRunning = true; }