예제 #1
0
        private void GetHistoryRankingListBySubRaceId(string subRaceId)
        {
            var dialogManager   = _context.GetDialogManager();
            var task            = _context.GetTaskManager();
            var historyRaceData = GetHistoryRaceData(subRaceId);

            if (historyRaceData != null)
            {
                var rankingList = historyRaceData.rankingList;
                if (rankingList != null)
                {
                    _historyRankingList = rankingList.ToList();
                    _historyRankingList.Sort((x, y) => x.rank.CompareTo(y.rank));
                    Refresh();
                    return;
                }
            }

            dialogManager.ShowWaitingDialog(true);
            _historyRaceRankResult.ClearNotInvalidate();
            task.ExecuteTask(CheckRankingListResult, () => dialogManager.ShowWaitingDialog(false));
            GetRankingListResult();
        }
예제 #2
0
        public void AutoShowCheckinDialog(AutoShowDialogData dialogData)
        {
            var remoteAPI      = _context.GetRemoteAPI();
            var task           = _context.GetTaskManager();
            var dataRepository = _context.GetDataRepository();
            var checkinConfigResultContainer =
                dataRepository.GetContainer <CheckinConfigResult>(DataKey.CheckinConfigResult);

            checkinConfigResultContainer.ClearNotInvalidate();
            remoteAPI.RequestCheckinConfig();
            task.ExecuteTask(
                () =>
            {
                var data = checkinConfigResultContainer.Read();
                dialogData.SetDialogDataState(DialogDataState.Wait);
                return(data != null);
            },
                () =>
            {
                var data = checkinConfigResultContainer.Read();
                if (data == null)
                {
                    dialogData.SetDialogDataState(DialogDataState.Failed);
                    return;
                }
                var config = data.checkin_config;
                if (config == null)
                {
                    dialogData.SetDialogDataState(DialogDataState.Failed);
                    return;
                }
                var checkinItems = config.checkin_item;
                var todayChecked = false;

                if (checkinItems != null)
                {
                    for (int i = 0; i < checkinItems.Count; i++)
                    {
                        var c = checkinItems[i];
                        if (config.current_day == c.day)
                        {
                            todayChecked = c.status == CheckinStatus.Checked;
                            break;
                        }
                    }
                }

                if (todayChecked)
                {
                    dialogData.SetDialogDataState(DialogDataState.Failed);
                    return;
                }

                ShowDialog <UIWindow>(DialogName.CheckinDialog, true, true,
                                      (dialog) =>
                {
                    dialogData.SetDialogDataState(DialogDataState.Ok);
                    dialogData.SetCurrentShowDialog(dialog);
                });
            }, null);
        }
예제 #3
0
 public ITaskManager GetTaskManager()
 {
     return(_context.GetTaskManager());
 }