public async Task <IEnumerable <TreeNode> > GetCharacterRosterTreeNode(frmCharacterRoster frmCharRoster, bool forceUpdate)
 {
     try
     {
         using (new CursorWait(true, frmCharRoster))
         {
             return(await ChummerHub.Client.Backend.Utils.GetCharacterRosterTreeNode(frmCharRoster.MyCharacterCacheDic, forceUpdate));
         }
     }
     catch (Microsoft.Rest.SerializationException e)
     {
         if (e.Content.Contains("Log in - ChummerHub"))
         {
             TreeNode node = new TreeNode("Online, but not logged in!")
             {
                 ToolTipText = "Please log in (Options -> Plugins -> Sinners (Cloud) -> Login", Tag = e
             };
             return(new List <TreeNode>()
             {
                 node
             });
         }
         else
         {
             TreeNode node = new TreeNode("Error: " + e.Message)
             {
                 ToolTipText = e.ToString(), Tag = e
             };
             return(new List <TreeNode>()
             {
                 node
             });
         }
     }
     catch (Exception e)
     {
         TreeNode node = new TreeNode("SINners Error: please log in")
         {
             ToolTipText = e.ToString(), Tag = e
         };
         return(new List <TreeNode>()
         {
             node
         });
     }
 }
Beispiel #2
0
        public async Task <IEnumerable <TreeNode> > GetCharacterRosterTreeNode(frmCharacterRoster frmCharRoster, bool forceUpdate)
        {
            try
            {
                using (new CursorWait(true, frmCharRoster))
                {
                    Func <Task <HttpOperationResponse <ResultAccountGetSinnersByAuthorization> > > myMethodName = async() =>
                    {
                        var client = StaticUtils.GetClient();
                        var ret    = await client.GetSINnersByAuthorizationWithHttpMessagesAsync();

                        return(ret);
                    };
                    var res = await ChummerHub.Client.Backend.Utils.GetCharacterRosterTreeNode(forceUpdate, myMethodName);

                    if (res == null)
                    {
                        throw new ArgumentException("Could not load owned SINners from WebService.");
                    }
                    var list      = res.ToList();
                    var myadd     = MyTreeNodes2Add.ToList();
                    var mysortadd = (from a in myadd orderby a.Value.Text select a).ToList();
                    foreach (var addme in mysortadd)
                    {
                        list.Add(addme.Value);
                    }
                    return(list);
                }
            }
            catch (Microsoft.Rest.SerializationException e)
            {
                if (e.Content.Contains("Log in - ChummerHub"))
                {
                    TreeNode node = new TreeNode("Online, but not logged in!")
                    {
                        ToolTipText = "Please log in (Options -> Plugins -> Sinners (Cloud) -> Login", Tag = e
                    };
                    return(new List <TreeNode>()
                    {
                        node
                    });
                }
                else
                {
                    TreeNode node = new TreeNode("Error: " + e.Message)
                    {
                        ToolTipText = e.ToString(), Tag = e
                    };
                    return(new List <TreeNode>()
                    {
                        node
                    });
                }
            }
            catch (Exception e)
            {
                TreeNode node = new TreeNode("SINners Error: please log in")
                {
                    ToolTipText = e.ToString(), Tag = e
                };
                var objCache = new frmCharacterRoster.CharacterCache
                {
                    ErrorText = e.ToString()
                };
                node.Tag = objCache;
                return(new List <TreeNode>()
                {
                    node
                });
            }
        }
 public async Task <ICollection <System.Windows.Forms.TreeNode> > GetCharacterRosterTreeNode(frmCharacterRoster frmCharRoster, bool forceUpdate)
 {
     //here you can add nodes to the character roster.
     return(null);
 }
Beispiel #4
0
        public async Task <IEnumerable <TreeNode> > GetCharacterRosterTreeNode(frmCharacterRoster frmCharRoster, bool forceUpdate)
        {
            try
            {
                ContextMenuStrip myContextMenuStrip = null;
                List <TreeNode>  list = new List <TreeNode>();
                using (new CursorWait(true, frmCharRoster))
                {
                    frmCharRoster.DoThreadSafe(() =>
                    {
                        myContextMenuStrip = frmCharRoster.CreateContextMenuStrip();
                        var menulist       = myContextMenuStrip.Items.Cast <ToolStripMenuItem>().ToList();
                        foreach (var item in menulist)
                        {
                            switch (item.Name)
                            {
                            case "tsToggleFav":
                                myContextMenuStrip.Items.Remove(item);
                                break;

                            case "tsCloseOpenCharacter":
                                myContextMenuStrip.Items.Remove(item);
                                break;

                            case "tsSort":
                                myContextMenuStrip.Items.Remove(item);
                                break;

                            case "tsDelete":
                                ToolStripMenuItem newDelete = new ToolStripMenuItem(item.Text, item.Image);
                                newDelete.Click            += frmCharRoster.tsDelete_Click;
                                myContextMenuStrip.Items.Add(newDelete);
                                break;

                            default:
                                break;
                            }
                        }
                        ToolStripMenuItem newShare = new ToolStripMenuItem("Share")
                        {
                            Name  = "tsShareChummer",
                            Tag   = "Menu_ShareChummer",
                            Text  = "Share chummer",
                            Size  = new System.Drawing.Size(177, 22),
                            Image = global::Chummer.Properties.Resources.link_add
                        };
                        newShare.Click += NewShareOnClick;
                        myContextMenuStrip.Items.Add(newShare);
                        LanguageManager.TranslateWinForm(GlobalOptions.Language, myContextMenuStrip);
                    });
                    if (ChummerHub.Client.Properties.Settings.Default.UserModeRegistered == true)
                    {
                        Log.Info("Loading CharacterRoster from SINners...");
                        Func <Task <HttpOperationResponse <ResultAccountGetSinnersByAuthorization> > > myMethodName = async() =>
                        {
                            try
                            {
                                var client = StaticUtils.GetClient();
                                var ret    = await client.GetSINnersByAuthorizationWithHttpMessagesAsync();

                                return(ret);
                            }
                            catch (Exception e)
                            {
                                Log.Error(e);
                                throw;
                            }
                        };
                        var res = await ChummerHub.Client.Backend.Utils.GetCharacterRosterTreeNode(forceUpdate, myMethodName);

                        if (res == null)
                        {
                            throw new ArgumentException("Could not load owned SINners from WebService.");
                        }
                        list = res.ToList();
                    }
                    var myadd     = MyTreeNodes2Add.ToList();
                    var mysortadd = (from a in myadd orderby a.Value.Text select a).ToList();
                    foreach (var addme in mysortadd)
                    {
                        list.Add(addme.Value);
                    }
                    AddContextMenuStripRecursive(list, myContextMenuStrip);
                    return(list);
                }
            }
            catch (Microsoft.Rest.SerializationException e)
            {
                if (e.Content.Contains("Log in - ChummerHub"))
                {
                    TreeNode node = new TreeNode("Online, but not logged in!")
                    {
                        ToolTipText = "Please log in (Options -> Plugins -> Sinners (Cloud) -> Login", Tag = e
                    };
                    Log.Warn(e, "Online, but not logged in!");
                    return(new List <TreeNode>()
                    {
                        node
                    });
                }
                else
                {
                    Log.Error(e);
                    TreeNode node = new TreeNode("Error: " + e.Message)
                    {
                        ToolTipText = e.ToString(), Tag = e
                    };
                    return(new List <TreeNode>()
                    {
                        node
                    });
                }
            }
            catch (Exception e)
            {
                Log.Error(e);
                TreeNode node = new TreeNode("SINners Error: please log in")
                {
                    ToolTipText = e.ToString(), Tag = e
                };
                var objCache = new frmCharacterRoster.CharacterCache
                {
                    ErrorText = e.ToString()
                };
                node.Tag = objCache;
                return(new List <TreeNode>()
                {
                    node
                });
            }
        }