public void RefreshUserData(int game_id)
        {
            Task.Run(() =>
            {
                TitleList titleList = howLongToBeatClient.GetUserData(game_id);

                if (titleList != null)
                {
                    int index = Database.UserHltbData.TitlesList.FindIndex(x => x.Id == game_id);

                    if (index > -1)
                    {
                        Database.UserHltbData.TitlesList[index] = titleList;
                    }
                    else
                    {
                        Database.UserHltbData.TitlesList.Add(titleList);
                    }

                    try
                    {
                        string PathHltbUserStats = Path.Combine(PluginUserDataPath, "HltbUserStats.json");
                        File.WriteAllText(PathHltbUserStats, JsonConvert.SerializeObject(Database.UserHltbData));
                    }
                    catch (Exception ex)
                    {
                        Common.LogError(ex, "HowLongToBeat");
                    }
                }
            });
        }
        /// <summary>
        /// The setup.
        /// </summary>
        /// <param name="scannedSource">
        /// The scanned source.
        /// </param>
        /// <param name="srcName">
        /// The src Name.
        /// </param>
        /// <param name="addAction">
        /// The add Action.
        /// </param>
        /// <param name="preset">
        /// The preset.
        /// </param>
        public void Setup(Source scannedSource, string srcName, Action <IEnumerable <SelectionTitle> > addAction, Preset preset)
        {
            this.TitleList.Clear();
            this.addToQueue = addAction;

            if (scannedSource != null)
            {
                IEnumerable <Title> titles = orderedByTitle
                                         ? scannedSource.Titles
                                         : scannedSource.Titles.OrderByDescending(o => o.Duration).ToList();

                foreach (Title item in titles)
                {
                    SelectionTitle title = new SelectionTitle(item, srcName)
                    {
                        IsSelected = true
                    };
                    TitleList.Add(title);
                }
            }

            if (preset != null)
            {
                this.CurrentPreset = string.Format(ResourcesUI.QueueSelection_UsingPreset, preset.Name);
            }

            this.NotifyOfPropertyChange(() => this.IsAutoNamingEnabled);
        }
Exemple #3
0
        private void DV_Form_Load(object sender, EventArgs e)
        {
            titles  = TitleManager.ShowData();
            titleBS = new BindingSource(titles, "");

            publishers                = PublisherManager.ShowPublisherData();
            publisherBS               = new BindingSource(publishers, "");
            pubComboBox.DataSource    = publisherBS;
            pubComboBox.DisplayMember = "pub_name";
            pubComboBox.ValueMember   = "pub_id";

            titleID.DataBindings.Add("Text", titleBS, "title_id", true);
            title.DataBindings.Add("Text", titleBS, "title", true);
            type.DataBindings.Add("Text", titleBS, "type", true);
            pubComboBox.DataBindings.Add("SelectedValue", titleBS, "pub_id", true);
            price.DataBindings.Add("Text", titleBS, "price", true);
            advance.DataBindings.Add("Text", titleBS, "advance", true);
            royal.DataBindings.Add("Value", titleBS, "royalty", true);
            sales.DataBindings.Add("Value", titleBS, "ytd_sales", true);
            notes.DataBindings.Add("Text", titleBS, "notes", true);
            date.DataBindings.Add("Value", titleBS, "pubdate", true);

            BindNav = new BindingNavigator(true);
            this.Controls.Add(BindNav);
            BindNav.Dock          = DockStyle.Top;
            BindNav.BindingSource = titleBS;
        }
Exemple #4
0
 /// <summary>
 /// The order by duration.
 /// </summary>
 public void OrderByDuration()
 {
     TitleList = new BindingList <SelectionTitle>(TitleList.OrderByDescending(o => o.Title.Duration).ToList());
     this.NotifyOfPropertyChange(() => TitleList);
     this.OrderedByTitle    = false;
     this.OrderedByDuration = true;
 }
Exemple #5
0
        /// <summary>
        /// The create title.
        /// </summary>
        /// <param name="title">
        /// The title.
        /// </param>
        /// <returns>
        /// The <see cref="Title"/>.
        /// </returns>
        private static Title CreateTitle(TitleList title)
        {
            Title newTitle = new Title
            {
                TitleNumber        = title.Index,
                Playlist           = title.Playlist,
                Resolution         = new Size(title.Geometry.Width, title.Geometry.Height),
                ParVal             = new Size(title.Geometry.PAR.Num, title.Geometry.PAR.Den),
                Duration           = new TimeSpan(title.Duration.Hours, title.Duration.Minutes, title.Duration.Seconds),
                AutoCropDimensions = new Cropping
                {
                    Top    = title.Crop[0],
                    Bottom = title.Crop[1],
                    Left   = title.Crop[2],
                    Right  = title.Crop[3]
                },
                AngleCount           = title.AngleCount,
                VideoCodecName       = title.VideoCodec,
                Framerate            = ((double)title.FrameRate.Num) / title.FrameRate.Den,
                FramerateNumerator   = title.FrameRate.Num,
                FramerateDenominator = title.FrameRate.Den,
                Path = title.Path
            };

            switch (title.Type)
            {
            case 2:
                newTitle.InputType = InputType.Stream;
                break;

            case 0:
                newTitle.InputType = InputType.Dvd;
                break;

            case 1:
                newTitle.InputType = InputType.Bluray;
                break;

            case 3:
                newTitle.InputType = InputType.FFStream;
                break;
            }

            foreach (Subtitle subtitleTrack in CreateSubtitleTracks(title.SubtitleList))
            {
                newTitle.Subtitles.Add(subtitleTrack);
            }

            foreach (AudioTrack audioTrack in CreateAudioTracks(title.AudioList))
            {
                newTitle.AudioTracks.Add(audioTrack);
            }

            foreach (Chapter chapter in CreateChapters(title.ChapterList))
            {
                newTitle.Chapters.Add(chapter);
            }

            return(newTitle);
        }
Exemple #6
0
    public override bool Init(InitBaseData initData, Action callback = null)
    {
        var data = initData as InitOtherPlayerData;

        foreach (var item in data.TitleList)
        {
            if (TitleList.ContainsKey(item.Key))
            {
                TitleList[item.Key] = item.Value;
            }
            else
            {
                TitleList.Add(item.Key, item.Value);
            }
        }
        AllianceName = data.AllianceName;

        RobotId = data.RobotId;

        if (!base.Init(initData))
        {
            return(false);
        }
        serverId  = data.ServerId;
        AreaState = data.AreaState;

        var tbPvpRule = Table.GetPVPRule(GameLogic.Instance.Scene.TableScene.PvPRule);

        if (tbPvpRule.NameColorRule == (int)NameColorRule.FightingEachOther && GameLogic.Instance.Scene.TableScene.IsHideName == 1)
        {
            Name = GameUtils.GetDictionaryText(220697 + RoleId);
        }
        return(true);
    }
 /// <summary>
 /// The order by name.
 /// </summary>
 public void OrderByName()
 {
     TitleList = new BindingList <SelectionTitle>(TitleList.OrderBy(o => o.Title.SourceName).ToList());
     this.NotifyOfPropertyChange(() => TitleList);
     this.OrderedByTitle    = false;
     this.OrderedByDuration = false;
     this.OrderedByName     = true;
 }
Exemple #8
0
 /// <summary>
 /// Constructor
 /// </summary>
 public ConfigViewModel()
 {
     this.WindowTitle = NameTitle.Config.ToString();
     TitleList.Add(item: new EntityViewTitleHierarchy()
     {
         Title = this.WindowTitle
         ,
         NameTitle = NameTitle.Config
     });
 }
 /// <summary>
 /// Constructor
 /// </summary>
 public MainViewModel()
 {
     this.WindowTitle = NameTitle.Main.ToString();
     TitleList.Add(item: new EntityViewTitleHierarchy()
     {
         Title = this.WindowTitle
         ,
         NameTitle = NameTitle.Main
     });
 }
Exemple #10
0
 /// <summary>
 /// 获取每个表的字段名
 /// </summary>
 private void getTitleList()
 {
     foreach (String tabname in m_selectedTableList)
     {
         List <String> tempList = new List <string>();
         tempList = RealDBHelper.getTitleList(tabname + "-" + Instru);
         TitleList.Add(tempList);
         Pusher._pusher.TitleDict.Add(tabname + "-" + Instru, tempList);
     }
     Pusher._pusher.TitleList = TitleList;
 }
        // POST: odata/TitleLists
        public IHttpActionResult Post(TitleList titleList)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.TitleLists.Add(titleList);
            db.SaveChanges();

            return(Created(titleList));
        }
Exemple #12
0
 private void SetTitle(int id, int value)
 {
     if (TitleList.ContainsKey(id))
     {
         TitleList[id] = value;
     }
     else
     {
         TitleList.Add(id, value);
     }
     NameBoardUpdate();
 }
Exemple #13
0
        public static TitleList ShowData()
        {
            TitleList result = new TitleList();

            try {
                return
                    (covnertDataTableToList(dBManager.executeDataTableQuiry("ShowData")));
            }
            catch
            {
            }
            return(result);
        }
Exemple #14
0
        internal static TitleList covnertDataTableToList(DataTable dataTable)
        {
            TitleList titles = new TitleList();

            try{
                foreach (DataRow dataRow in dataTable.Rows)
                {
                    titles.Add(covnertDataRowToTitle(dataRow));
                }
            }
            catch { }
            return(titles);
        }
        // DELETE: odata/TitleLists(5)
        public IHttpActionResult Delete([FromODataUri] int key)
        {
            TitleList titleList = db.TitleLists.Find(key);

            if (titleList == null)
            {
                return(NotFound());
            }

            db.TitleLists.Remove(titleList);
            db.SaveChanges();

            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemple #16
0
 // Show Data
 private void GV_Form_Load(object sender, EventArgs e)
 {
     titles                          = TitleManager.ShowData();
     titlesBS                        = new BindingSource(titles, "");
     dgvTitle.DataSource             = titlesBS;
     publishers                      = PublisherManager.ShowPublisherData();
     publisherBS                     = new BindingSource(publishers, "");
     dgvComboBoxCol                  = new DataGridViewComboBoxColumn();
     dgvComboBoxCol.DataSource       = publisherBS;
     dgvComboBoxCol.HeaderText       = "Publisher";
     dgvComboBoxCol.DisplayMember    = "pub_name";
     dgvComboBoxCol.ValueMember      = "pub_id";
     dgvComboBoxCol.DataPropertyName = "pub_id";
     dgvTitle.Columns.Add(dgvComboBoxCol);
     dgvTitle.Columns["pub_id"].Visible = false;
     dgvTitle.Columns["State"].Visible  = false;
 }
Exemple #17
0
 /// <summary>
 /// 获取数据
 /// </summary>
 public void GetDate()
 {
     try
     {
         List <SeatManage.ClassModel.AMS_Advertisement> modelList = SeatManage.Bll.AdvertisementOperation.GetAdList(null, SeatManage.EnumType.AdType.TitleAd);
         TitleList.Clear();
         foreach (SeatManage.ClassModel.AMS_Advertisement model in modelList)
         {
             SeatManage.ClassModel.TitleAdvertInfoV2 view = SeatManage.ClassModel.TitleAdvertInfoV2.ToModel(model.AdContent);
             view.AdContent = model.AdContent;
             view.ID        = model.ID;
             TitleList.Add(view);
         }
     }
     catch (Exception ex)
     {
         ErrorMessage = ex.Message;
         SeatManage.SeatManageComm.WriteLog.Write("获取学校通知失败" + ex.Message);
     }
 }
        private void readTitles()
        {
            DBClass.openConnection();
            DBClass.sql             = "select titileBook from books";
            DBClass.cmd.CommandType = CommandType.Text;
            DBClass.cmd.CommandText = DBClass.sql;

            DBClass.da = new SqlDataAdapter(DBClass.cmd);
            DBClass.dt = new DataTable();
            DBClass.da.Fill(DBClass.dt);

            // wyciągamy dane
            int i = 0;
            int j = 0;

            TitleList.Clear();
            using (SqlDataReader reader = DBClass.cmd.ExecuteReader())
            {
                while (reader.Read())
                {
                    for (j = 0; j <= reader.FieldCount - 1; j++) // Looping throw colums
                    {
                        data[j] = reader.GetValue(j).ToString();
                        titleList.Add(data[j]);
                    }
                }
            }
            DBClass.closeConnection();

            try
            {
            }
            catch (Exception exp)
            {
                MessageBox.Show(exp.Message);
            }
            DataGrid_Loaded();
        }
Exemple #19
0
        /// <summary>
        /// The setup.
        /// </summary>
        /// <param name="scannedSource">
        /// The scanned source.
        /// </param>
        /// <param name="srcName">
        /// The src Name.
        /// </param>
        /// <param name="addAction">
        /// The add Action.
        /// </param>
        public void Setup(Source scannedSource, string srcName, Action <IEnumerable <SelectionTitle> > addAction)
        {
            this.TitleList.Clear();
            this.addToQueue = addAction;

            if (scannedSource != null)
            {
                IEnumerable <Title> titles = orderedByTitle
                                         ? scannedSource.Titles
                                         : scannedSource.Titles.OrderByDescending(o => o.Duration).ToList();

                foreach (Title item in titles)
                {
                    SelectionTitle title = new SelectionTitle(item, srcName)
                    {
                        IsSelected = true
                    };
                    TitleList.Add(title);
                }
            }

            this.NotifyOfPropertyChange(() => this.IsAutoNamingEnabled);
            this.NotifyOfPropertyChange(() => this.IsAutomaticTrackSelectionEnabled);
        }
        public IHttpActionResult Patch([FromODataUri] int key, Delta <TitleList> patch)
        {
            Validate(patch.GetEntity());

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            TitleList titleList = db.TitleLists.Find(key);

            if (titleList == null)
            {
                return(NotFound());
            }

            patch.Patch(titleList);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TitleListExists(key))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(Updated(titleList));
        }
Exemple #21
0
        public HltbUserStats GetUserData()
        {
            if (GetIsUserLoggedIn())
            {
                hltbUserStats            = new HltbUserStats();
                hltbUserStats.Login      = (UserLogin.IsNullOrEmpty()) ? HowLongToBeat.PluginDatabase.Database.UserHltbData.Login : UserLogin;
                hltbUserStats.UserId     = (UserId == 0) ? HowLongToBeat.PluginDatabase.Database.UserHltbData.UserId : UserId;
                hltbUserStats.TitlesList = new List <TitleList>();

                try
                {
                    List <HttpCookie> Cookies = webViews.GetCookies();
                    Cookies = Cookies.Where(x => x.Domain.Contains("howlongtobeat")).ToList();
#if DEBUG
                    logger.Debug($"HowLongToBeat [Ignored] - Cookies: {JsonConvert.SerializeObject(Cookies)}");
#endif

                    // Get list games
                    var formContent = new FormUrlEncodedContent(new[]
                    {
                        new KeyValuePair <string, string>("n", UserLogin),
                        new KeyValuePair <string, string>("c", "user_beat"),
                        new KeyValuePair <string, string>("p", string.Empty),
                        new KeyValuePair <string, string>("y", string.Empty)
                    });

                    string response = Web.PostStringDataCookies(UrlUserStatsGameList, formContent, Cookies).GetAwaiter().GetResult();

                    HtmlParser    parser       = new HtmlParser();
                    IHtmlDocument htmlDocument = parser.Parse(response);

                    foreach (var ListGame in htmlDocument.QuerySelectorAll("table.user_game_list tbody"))
                    {
                        TitleList titleList = new TitleList();

                        var tr = ListGame.QuerySelectorAll("tr");
                        var td = tr[0].QuerySelectorAll("td");

                        titleList.UserGameId = ListGame.GetAttribute("id").Replace("user_sel_", string.Empty).Trim();
                        titleList.GameName   = td[0].QuerySelector("a").InnerHtml.Trim();
                        titleList.Platform   = td[0].QuerySelector("span").InnerHtml.Trim();
                        titleList.Id         = int.Parse(td[0].QuerySelector("a").GetAttribute("href").Replace("game?id=", string.Empty));

                        // Get game details
                        formContent = new FormUrlEncodedContent(new[]
                        {
                            new KeyValuePair <string, string>("option", titleList.UserGameId),
                            new KeyValuePair <string, string>("option_b", "comp_all")
                        });

                        response = Web.PostStringDataCookies(UrlUserStatsGameDetails, formContent, Cookies).GetAwaiter().GetResult();

                        parser       = new HtmlParser();
                        htmlDocument = parser.Parse(response);

                        var GameDetails = htmlDocument.QuerySelectorAll("div.user_game_detail > div");

                        // Game status type
                        titleList.GameStatuses = new List <GameStatus>();
                        foreach (var GameStatus in GameDetails[0].QuerySelectorAll("span"))
                        {
                            switch (GameStatus.InnerHtml.ToLower())
                            {
                            case "playing":
                                titleList.GameStatuses.Add(new GameStatus {
                                    Status = StatusType.Playing
                                });
                                break;

                            case "backlog":
                                titleList.GameStatuses.Add(new GameStatus {
                                    Status = StatusType.Backlog
                                });
                                break;

                            case "replays":
                                titleList.GameStatuses.Add(new GameStatus {
                                    Status = StatusType.Replays
                                });
                                break;

                            case "custom tab":
                                titleList.GameStatuses.Add(new GameStatus {
                                    Status = StatusType.CustomTab
                                });
                                break;

                            case "completed":
                                titleList.GameStatuses.Add(new GameStatus {
                                    Status = StatusType.Completed
                                });
                                break;

                            case "retired":
                                titleList.GameStatuses.Add(new GameStatus {
                                    Status = StatusType.Retired
                                });
                                break;
                            }
                        }

                        // Game status time
                        int iPosUserData = 1;
                        if (GameDetails[1].InnerHtml.ToLower().Contains("<h5>progress</h5>"))
                        {
                            List <string> ListTime = GameDetails[1].QuerySelector("span").InnerHtml
                                                     .Replace("<strong>", string.Empty).Replace("</strong>", string.Empty)
                                                     .Split('/').ToList();

                            for (int i = 0; i < titleList.GameStatuses.Count; i++)
                            {
                                titleList.GameStatuses[i].Time = ConvertStringToLongUser(ListTime[i]);
                            }

                            iPosUserData = 2;
                        }

                        // User data
                        titleList.HltbUserData = new HltbData();
                        for (int i = 0; i < GameDetails[iPosUserData].Children.Count(); i++)
                        {
                            string tempTime = string.Empty;

                            // Completion date
                            if (GameDetails[iPosUserData].Children[i].InnerHtml.ToLower().Contains("completion"))
                            {
                                if (GameDetails[iPosUserData].Children[i].QuerySelectorAll("p").FirstOrDefault() != null)
                                {
                                    tempTime             = GameDetails[iPosUserData].Children[i].QuerySelectorAll("p").FirstOrDefault().InnerHtml;
                                    titleList.Completion = Convert.ToDateTime(tempTime);
                                }
                            }


                            if (GameDetails[iPosUserData].Children[i].InnerHtml.ToLower().Contains("main story"))
                            {
                                i++;
                                tempTime = GameDetails[iPosUserData].Children[i].QuerySelector("span").InnerHtml;
                                titleList.HltbUserData.MainStory = ConvertStringToLongUser(tempTime);
                            }

                            if (GameDetails[iPosUserData].Children[i].InnerHtml.ToLower().Contains("main+extras"))
                            {
                                i++;
                                tempTime = GameDetails[iPosUserData].Children[i].QuerySelector("span").InnerHtml;
                                titleList.HltbUserData.MainExtra = ConvertStringToLongUser(tempTime);
                            }

                            if (GameDetails[iPosUserData].Children[i].InnerHtml.ToLower().Contains("completionist"))
                            {
                                i++;
                                tempTime = GameDetails[iPosUserData].Children[i].QuerySelector("span").InnerHtml;
                                titleList.HltbUserData.Completionist = ConvertStringToLongUser(tempTime);
                            }


                            if (GameDetails[iPosUserData].Children[i].InnerHtml.ToLower().Contains("solo"))
                            {
                                i++;
                                tempTime = GameDetails[iPosUserData].Children[i].QuerySelector("span").InnerHtml;
                                titleList.HltbUserData.Solo = ConvertStringToLongUser(tempTime);
                            }

                            if (GameDetails[iPosUserData].Children[i].InnerHtml.ToLower().Contains("co-op"))
                            {
                                i++;
                                tempTime = GameDetails[iPosUserData].Children[i].QuerySelector("span").InnerHtml;
                                titleList.HltbUserData.CoOp = ConvertStringToLongUser(tempTime);
                            }

                            if (GameDetails[iPosUserData].Children[i].InnerHtml.ToLower().Contains("vs"))
                            {
                                i++;
                                tempTime = GameDetails[iPosUserData].Children[i].QuerySelector("span").InnerHtml;
                                titleList.HltbUserData.Vs = ConvertStringToLongUser(tempTime);
                            }
                        }
#if DEBUG
                        logger.Debug($"HowLongToBeat [Ignored] - titleList: {JsonConvert.SerializeObject(titleList)}");
#endif

                        hltbUserStats.TitlesList.Add(titleList);
                    }
                }
                catch (Exception ex)
                {
                    Common.LogError(ex, "HowLongToBeat");

                    _PlayniteApi.Notifications.Add(new NotificationMessage(
                                                       "HowLongToBeat-Import-Error",
                                                       "HowLongToBeat" + System.Environment.NewLine +
                                                       ex.Message,
                                                       NotificationType.Error,
                                                       () => _plugin.OpenSettingsView()));

                    return(null);
                }

                return(hltbUserStats);
            }
            else
            {
                _PlayniteApi.Notifications.Add(new NotificationMessage(
                                                   "HowLongToBeat-Import-Error",
                                                   "HowLongToBeat" + System.Environment.NewLine +
                                                   resources.GetString("LOCNotLoggedIn"),
                                                   NotificationType.Error,
                                                   () => _plugin.OpenSettingsView()));

                return(null);
            }
        }
        public HowLongToBeatView(IPlayniteAPI PlayniteApi, HowLongToBeatSettings settings, GameHowLongToBeat gameHowLongToBeat)
        {
            _gameHowLongToBeat = gameHowLongToBeat;

            InitializeComponent();


            HltbDataUser gameData = _gameHowLongToBeat.Items.FirstOrDefault();

            if (gameData == null)
            {
                return;
            }

            if (_gameHowLongToBeat.HasData || _gameHowLongToBeat.HasDataEmpty)
            {
                CoverImage = gameData.UrlImg;

                if (!settings.ShowHltbImg)
                {
                    if (!_gameHowLongToBeat.CoverImage.IsNullOrEmpty())
                    {
                        CoverImage = PlayniteApi.Database.GetFullFilePath(_gameHowLongToBeat.CoverImage);
                    }
                }

                GameName = _gameHowLongToBeat.Name;
                HltbName = resources.GetString("LOCSourceLabel") + ": " + gameData.Name;
            }

            if (_gameHowLongToBeat.HasData)
            {
                int ElIndicator = 0;

                Hltb_El1.Visibility       = Visibility.Hidden;
                Hltb_El1_Color.Visibility = Visibility.Hidden;
                Hltb_El2.Visibility       = Visibility.Hidden;
                Hltb_El2_Color.Visibility = Visibility.Hidden;
                Hltb_El3.Visibility       = Visibility.Hidden;
                Hltb_El3_Color.Visibility = Visibility.Hidden;

                TitleList titleList = PluginDatabase.GetUserHltbData(_gameHowLongToBeat.GetData().Id);

                if (gameData.GameHltbData.MainStory != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatMainStory"), gameData.GameHltbData.MainStoryFormat, (titleList != null) ? titleList.HltbUserData.MainStoryFormat : string.Empty);
                    SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorFirst);
                }

                if (gameData.GameHltbData.MainExtra != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatMainExtra"), gameData.GameHltbData.MainExtraFormat, (titleList != null) ? titleList.HltbUserData.MainExtraFormat : string.Empty);
                    SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorSecond);
                }

                if (gameData.GameHltbData.Completionist != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatCompletionist"), gameData.GameHltbData.CompletionistFormat, (titleList != null) ? titleList.HltbUserData.CompletionistFormat : string.Empty);
                    SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorThird);
                }

                if (gameData.GameHltbData.Solo != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatSolo"), gameData.GameHltbData.SoloFormat, (titleList != null) ? titleList.HltbUserData.SoloFormat : string.Empty);
                    SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorFirstMulti);
                }

                if (gameData.GameHltbData.CoOp != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatCoOp"), gameData.GameHltbData.CoOpFormat, (titleList != null) ? titleList.HltbUserData.CoOpFormat : string.Empty);
                    SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorSecondMulti);
                }

                if (gameData.GameHltbData.Vs != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatVs"), gameData.GameHltbData.VsFormat, (titleList != null) ? titleList.HltbUserData.VsFormat : string.Empty);
                    SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorThirdMulti);
                }


                LongToTimePlayedConverter converter = new LongToTimePlayedConverter();
                PlaytimeFormat = (string)converter.Convert((long)_gameHowLongToBeat.Playtime, null, null, CultureInfo.CurrentCulture);

                hltbProgressBar = new HltbProgressBar();
                PART_HltbProgressBar.Children.Add(hltbProgressBar);
            }

            // Set Binding data
            DataContext = this;
        }
Exemple #23
0
        private void LoadData()
        {
            try
            {
                // Definied data value in different component.
                int  ElIndicator = 0;
                long MaxValue    = 0;
                long MaxHltb     = 0;
                List <ListProgressBar> listProgressBars = new List <ListProgressBar>();
                if (_gameHowLongToBeat.HasData)
                {
                    var HltbData = _gameHowLongToBeat.GetData();

                    if (HltbData.GameHltbData.MainStory != 0)
                    {
                        ElIndicator += 1;
                        listProgressBars.Add(new ListProgressBar {
                            Indicator = ElIndicator, Value = HltbData.GameHltbData.MainStory, Format = HltbData.GameHltbData.MainStoryFormat
                        });
                        if (MaxValue < HltbData.GameHltbData.MainStory)
                        {
                            MaxValue = HltbData.GameHltbData.MainStory;
                        }
                        SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorFirst);
                    }

                    if (HltbData.GameHltbData.MainExtra != 0)
                    {
                        ElIndicator += 1;
                        listProgressBars.Add(new ListProgressBar {
                            Indicator = ElIndicator, Value = HltbData.GameHltbData.MainExtra, Format = HltbData.GameHltbData.MainExtraFormat
                        });
                        if (MaxValue < HltbData.GameHltbData.MainExtra)
                        {
                            MaxValue = HltbData.GameHltbData.MainExtra;
                        }
                        SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorSecond);
                    }

                    if (HltbData.GameHltbData.Completionist != 0)
                    {
                        ElIndicator += 1;
                        listProgressBars.Add(new ListProgressBar {
                            Indicator = ElIndicator, Value = HltbData.GameHltbData.Completionist, Format = HltbData.GameHltbData.CompletionistFormat
                        });
                        if (MaxValue < HltbData.GameHltbData.Completionist)
                        {
                            MaxValue = HltbData.GameHltbData.Completionist;
                        }
                        SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorThird);
                    }

                    if (HltbData.GameHltbData.Solo != 0)
                    {
                        ElIndicator += 1;
                        listProgressBars.Add(new ListProgressBar {
                            Indicator = ElIndicator, Value = HltbData.GameHltbData.Solo, Format = HltbData.GameHltbData.SoloFormat
                        });
                        if (MaxValue < HltbData.GameHltbData.Solo)
                        {
                            MaxValue = HltbData.GameHltbData.Solo;
                        }
                        SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorFirstMulti);
                    }

                    if (HltbData.GameHltbData.CoOp != 0)
                    {
                        ElIndicator += 1;
                        listProgressBars.Add(new ListProgressBar {
                            Indicator = ElIndicator, Value = HltbData.GameHltbData.CoOp, Format = HltbData.GameHltbData.CoOpFormat
                        });
                        if (MaxValue < HltbData.GameHltbData.CoOp)
                        {
                            MaxValue = HltbData.GameHltbData.CoOp;
                        }
                        SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorSecondMulti);
                    }

                    if (HltbData.GameHltbData.Vs != 0)
                    {
                        ElIndicator += 1;
                        listProgressBars.Add(new ListProgressBar {
                            Indicator = ElIndicator, Value = HltbData.GameHltbData.Vs, Format = HltbData.GameHltbData.VsFormat
                        });
                        if (MaxValue < HltbData.GameHltbData.Vs)
                        {
                            MaxValue = HltbData.GameHltbData.Vs;
                        }
                        SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorThirdMulti);
                    }
                }

                // Define the maxvalue for progressbar & slider
                MaxHltb = MaxValue;
                if (_Playtime > MaxValue)
                {
                    MaxValue = _Playtime;
                }

                // Adjust position tracker
                if (_Playtime > 69)
                {
                    SliderPlaytime.Margin = new Thickness(-8, 0, -3, 0);
                }

                // Limit MaxValue when playtime is more than MaxHltb
                long MaxPercent = (long)Math.Ceiling((double)(10 * MaxHltb / 100));
                if (MaxValue > MaxHltb + MaxPercent)
                {
                    MaxValue = MaxHltb + MaxPercent;
                }


                // Add data
                ProgressHltb_El1.Maximum = MaxValue;
                ProgressHltb_El2.Maximum = MaxValue;
                ProgressHltb_El3.Maximum = MaxValue;

                SliderPlaytime.Value   = _Playtime;
                SliderPlaytime.Maximum = MaxValue;

#if DEBUG
                logger.Debug($"HowLongToBeat [Ignored] - listProgressBars: {JsonConvert.SerializeObject(listProgressBars)}");
#endif

                ProgressHltb_El1.Visibility = Visibility.Hidden;
                spHltb_El1.Visibility       = Visibility.Hidden;
                spHltbTime_El1.Visibility   = Visibility.Hidden;

                ProgressHltb_El2.Visibility = Visibility.Hidden;
                spHltb_El2.Visibility       = Visibility.Hidden;
                spHltbTime_El2.Visibility   = Visibility.Hidden;

                ProgressHltb_El3.Visibility = Visibility.Hidden;
                spHltb_El3.Visibility       = Visibility.Hidden;
                spHltbTime_El3.Visibility   = Visibility.Hidden;

                foreach (var listProgressBar in listProgressBars)
                {
                    SetDataInView(listProgressBar.Indicator, listProgressBar.Value, listProgressBar.Format);
                }


                SliderPlaytime.UpdateLayout();



                // Show user hltb datas
                PartSliderFirst.Maximum     = MaxValue;
                PartSliderFirst.Visibility  = Visibility.Hidden;
                PartSliderSecond.Maximum    = MaxValue;
                PartSliderSecond.Visibility = Visibility.Hidden;
                PartSliderThird.Maximum     = MaxValue;
                PartSliderThird.Visibility  = Visibility.Hidden;

                if (_gameHowLongToBeat.HasData && PluginDatabase.PluginSettings.ProgressBarShowTimeUser)
                {
                    TitleList titleList = PluginDatabase.GetUserHltbData(_gameHowLongToBeat.GetData().Id);
#if DEBUG
                    logger.Debug($"HowLongToBeat [Ignored] - titleList: {JsonConvert.SerializeObject(titleList)}");
#endif
                    if (titleList != null)
                    {
                        ElIndicator = 0;

                        if (titleList.HltbUserData.MainStory != 0)
                        {
                            ElIndicator++;
                            SetUserData(ElIndicator, titleList.HltbUserData.MainStory, PluginDatabase.PluginSettings.ColorFirst);
                        }

                        if (titleList.HltbUserData.MainExtra != 0)
                        {
                            ElIndicator++;
                            SetUserData(ElIndicator, titleList.HltbUserData.MainExtra, PluginDatabase.PluginSettings.ColorSecond);
                        }

                        if (titleList.HltbUserData.Completionist != 0)
                        {
                            ElIndicator++;
                            SetUserData(ElIndicator, titleList.HltbUserData.Completionist, PluginDatabase.PluginSettings.ColorThird);
                        }

                        if (titleList.HltbUserData.Solo != 0)
                        {
                            ElIndicator++;
                            SetUserData(ElIndicator, titleList.HltbUserData.Solo, PluginDatabase.PluginSettings.ColorFirstMulti);
                        }

                        if (titleList.HltbUserData.CoOp != 0)
                        {
                            ElIndicator++;
                            SetUserData(ElIndicator, titleList.HltbUserData.CoOp, PluginDatabase.PluginSettings.ColorSecondMulti);
                        }

                        if (titleList.HltbUserData.Vs != 0)
                        {
                            ElIndicator++;
                            SetUserData(ElIndicator, titleList.HltbUserData.Vs, PluginDatabase.PluginSettings.ColorThirdMulti);
                        }

                        this.DataContext = new
                        {
                            ThumbFirst  = solidColorBrushFirst,
                            ThumbSecond = solidColorBrushSecond,
                            ThumbThird  = solidColorBrushThird,

                            ThumbPoint = ThumbPoint
                        };
                    }
                }
            }
            catch (Exception ex)
            {
                Common.LogError(ex, "HowLongToBeat", "Error on LoadData()");
            }
        }
Exemple #24
0
 private void LoadTitles()
 {
     TitleList.DataSource = Enum.GetNames(typeof(Titles));
     TitleList.DataBind();
 }
Exemple #25
0
 /// <summary>
 /// Check if the dog qualifies for the requested title
 /// </summary>
 /// <param name="titleName"></param>
 /// <returns></returns>
 public bool QualifiesForTitle(string titleName)
 {
     // REVIEW: Should we affirm all the dog's qualifying legs have been assessed and the title list is current?
     return(null == TitleList.FirstOrDefault(t => t.Name == titleName));
 }