示例#1
0
        /// <summary>
        /// Вспомогательный метод для актуализации информации о рекордах и обновлении данных
        /// </summary>
        /// <param name="parNoSort">Флаг отсутствия необходимости сортировки</param>
        private void ActualizeRecordsInfo(bool parNoSort = false)
        {
            if (PlayerRecordsInfo == null)
            {
                PlayerRecordsInfo = new List <RecordPlayerInfo>();
            }
            else
            {
                if (!parNoSort)
                {
                    PlayerRecordsInfo = PlayerRecordsInfo.OrderByDescending(parInfo => parInfo.PointsEarned).ToList();
                }

                while (PlayerRecordsInfo.Count > MAXIMUM_PLAYERS_INFOS)
                {
                    PlayerRecordsInfo.RemoveAt(MAXIMUM_PLAYERS_INFOS);
                }
            }
        }
示例#2
0
        /// <summary>
        /// Попробовать осуществить добавление информации о рекорде
        /// </summary>
        /// <param name="parPlayerInfo">Информация о рекорде игрока</param>
        /// <returns>True если добавление было произведено успешно</returns>
        public bool TryAddRecord(RecordPlayerInfo parPlayerInfo)
        {
            ActualizeRecordsInfo();
            int insertIndex = GetInsertIndex(parPlayerInfo.PointsEarned);

            if (insertIndex >= MAXIMUM_PLAYERS_INFOS)
            {
                return(false);
            }
            else
            {
                if (insertIndex > PlayerRecordsInfo.Count)
                {
                    PlayerRecordsInfo.Add(parPlayerInfo);
                }
                else
                {
                    PlayerRecordsInfo.Insert(insertIndex, parPlayerInfo);
                    ActualizeRecordsInfo(true);
                }

                return(true);
            }
        }