コード例 #1
0
        public override T GetPanel <T>(params object[] parameters)
        {
            try
            {
                var skypePanel   = new SkypePanel();
                var skypeContext = skypePanel.DataContext as SkypeContext;
                if (skypeContext != null)
                {
                    var settingsManager = VA.SettingsManager;
                    foreach (var item in Settings["Skype-Users"].GetTuples <string, string>())
                    {
                        var skypeUser = new SkypeUser(item.Item1, item.Item2);
                        skypeContext.Users.Add(skypeUser);
                    }
                    var settingsWindow = VA.Components.Get <SettingsWindow>();
                    skypeContext.AddAction = async() =>
                    {
                        try
                        {
                            var selectedName = await settingsWindow.GetInput(StringResource.SkypePlugin_AddNameTitle, StringResource.SkypePlugin_AddNameDescription);

                            if (!string.IsNullOrEmpty(selectedName))
                            {
                                var selectedId = await settingsWindow.GetInput(StringResource.SkypePlugin_AddIdTitle, StringResource.SkypePlugin_AddIdDescription);

                                if (!string.IsNullOrEmpty(selectedId))
                                {
                                    Settings["Skype-users"].Add(new Tuple <string, string>(selectedName, selectedId));
                                    skypeContext.Users.Add(new SkypeUser(selectedName, selectedId));
                                    settingsManager.Save(Settings);
                                    settingsWindow.DisplayMessage(Name, StringResource.SkypePlugin_UserAdded);
                                }
                            }
                        }
                        catch (Exception exception)
                        {
                            VA.Logger.Error(exception);
                        }
                    };

                    skypeContext.RemoveAction = () =>
                    {
                        try
                        {
                            var skypeUser = skypePanel.UserGrid.SelectedItem as SkypeUser;
                            if (skypeUser != null)
                            {
                                Settings["Skype-Users"].Remove(new Tuple <string, string>(skypeUser.Name, skypeUser.Id));
                                skypeContext.Users.Remove(skypeUser);
                                settingsManager.Save(Settings);
                                settingsWindow.DisplayMessage(Name, StringResource.SkypePlugin_UserRemoved);
                            }
                        }
                        catch (Exception exception)
                        {
                            VA.Logger.Error(exception);
                        }
                    };
                }
                return(skypePanel as T);
            }
            catch (Exception exception)
            {
                VA.Logger.Error(exception);
            }
            return(null);
        }
コード例 #2
0
        // Runs when "Skype Convo" is clicked
        private void SkypeClick(object sender, RoutedEventArgs e)
        {
            SkypePanel _SkypePanel = new SkypePanel(this);

            ContentBox.Content = _SkypePanel;
        }