コード例 #1
0
        private async Task ProcessNag(NagEx nag, NagResponseInfo responseInfo)
        {
            var response = await ShowNag(nag);

            if (response == NagResponse.Accept)
            {
                nag.NagAction();
            }
            else if (response == NagResponse.Defer)
            {
                responseInfo.LaunchCount           = 0;
                responseInfo.RegistrationTimeStamp = DateTimeOffset.UtcNow;
            }

            responseInfo.LastResponse = response;
            responseInfo.LastNag      = DateTimeOffset.UtcNow;

            await PersistAsync(responseInfo, nag.Id, nag.Location);
        }
コード例 #2
0
        public async Task Register(NagEx nag, int launches)
        {
            if (nag == null)
            {
                throw new ArgumentNullException("nag");
            }

            var responseInfo = await Load(nag.Id, nag.Location);

            responseInfo.LaunchCount++;

            if (responseInfo.ShouldNag(launches))
            {
                await ProcessNag(nag, responseInfo);
            }
            else if (responseInfo.IsAwaitingResponse)
            {
                await PersistAsync(responseInfo, nag.Id, nag.Location);
            }
        }
コード例 #3
0
        private async Task <NagResponse> ShowNag(NagEx nag)
        {
            var result = MessageBoxResult.Cancel;

            if (nag.AllowDefer)
            {
                result = await _dialogService.PromptAsync(nag.Message, MessageBoxType.YesNoCancel, NagSettings.CustomResolver);
            }
            else
            {
                result = await _dialogService.PromptAsync(nag.Message, MessageBoxType.YesNo, NagSettings.CustomResolver);
            }
            switch (result)
            {
            case MessageBoxResult.Cancel: return(NagResponse.Defer);

            case MessageBoxResult.No: return(NagResponse.Decline);

            case MessageBoxResult.Yes: return(NagResponse.Accept);

            default: return(NagResponse.NoResponse);
            }
        }
コード例 #4
0
ファイル: NagService.cs プロジェクト: zombie302/Template10
 public async Task Register(NagEx nag, int launches, TimeSpan duration)
 => await _nagHelper.Register(nag, launches, duration);
コード例 #5
0
ファイル: NagService.cs プロジェクト: zombie302/Template10
 public async Task Register(NagEx nag, int launches)
 => await _nagHelper.Register(nag, launches);
コード例 #6
0
ファイル: NagService.cs プロジェクト: zombie302/Template10
 public async Task Register(NagEx nag, TimeSpan duration)
 => await _nagHelper.Register(nag, duration);