예제 #1
0
        private IEnumerable <Item> LoadCharacterInventoryItems(Character character, bool offline)
        {
            bool success;

            if (!offline)
            {
                statusController.DisplayMessage((string.Format("Loading {0}'s inventory...", character.Name)));
            }

            List <Item> inventory;

            try
            {
                inventory = ApplicationState.Model.GetInventory(character.Name);
                success   = true;
            }
            catch (WebException)
            {
                inventory = new List <Item>();
                success   = false;
            }

            CharacterTabInjector.Inject(character, inventory);
            updateStatus(success, offline);

            return(inventory);
        }
예제 #2
0
        private IEnumerable <Item> LoadItems(bool offline, IEnumerable <Character> chars)
        {
            bool downloadOnlyMyLeagues = (Settings.UserSettings.ContainsKey("DownloadOnlyMyLeagues") &&
                                          bool.TryParse(Settings.UserSettings["DownloadOnlyMyLeagues"],
                                                        out downloadOnlyMyLeagues) &&
                                          downloadOnlyMyLeagues &&
                                          Settings.Lists.ContainsKey("MyLeagues") &&
                                          Settings.Lists["MyLeagues"].Count > 0);

            foreach (var character in chars)
            {
                if (character.League == "Void")
                {
                    continue;
                }

                if (character.Expired)
                {
                    _statusController.DisplayMessage(Environment.NewLine + "Skipping character " + character.Name +
                                                     " because the character's name has expired." + Environment.NewLine);
                    continue;
                }

                if (downloadOnlyMyLeagues && !Settings.Lists["MyLeagues"].Contains(character.League))
                {
                    continue;
                }

                foreach (var item in LoadStashItems(character))
                {
                    yield return(item);
                }

                foreach (var item in LoadCharacterInventoryItems(character, offline).Where(i => i.InventoryId != "MainInventory"))
                {
                    yield return(item);
                }
            }

            if (downloadOnlyMyLeagues && ApplicationState.Characters.Count == 0)
            {
                throw new Exception("No characters found in the leagues specified. Check spelling or try setting " +
                                    "DownloadOnlyMyLeagues to false in the Settings.xml file.");
            }

            _characterInjector.Inject();
        }
예제 #3
0
        private IEnumerable <Item> LoadItems(bool offline, IEnumerable <Character> chars)
        {
            bool downloadOnlyMyLeagues = (Settings.UserSettings.ContainsKey("DownloadOnlyMyLeagues") &&
                                          bool.TryParse(Settings.UserSettings["DownloadOnlyMyLeagues"], out downloadOnlyMyLeagues) &&
                                          downloadOnlyMyLeagues &&
                                          Settings.Lists.ContainsKey("MyLeagues") &&
                                          Settings.Lists["MyLeagues"].Count > 0);

            foreach (var character in chars)
            {
                if (character.League == "Void")
                {
                    continue;
                }

                if (downloadOnlyMyLeagues && !Settings.Lists["MyLeagues"].Contains(character.League))
                {
                    continue;
                }

                foreach (var item in LoadStashItems(character))
                {
                    yield return(item);
                }

                foreach (var item in LoadCharacterInventoryItems(character, offline).Where(i => i.InventoryId != "MainInventory"))
                {
                    yield return(item);
                }
            }

            if (downloadOnlyMyLeagues && ApplicationState.Characters.Count == 0)
            {
                throw new Exception("No characters found in the leagues specified. Check spelling or try setting DownloadOnlyMyLeagues to false in settings.");
            }


            characterInjector.Inject();
        }