Esempio n. 1
0
        public async Task RefreshProofRequests()
        {
            try
            {
                RefreshingProofRequests = true;
                ProofRequests.Clear();

                var agentContext = await _agentContextProvider.GetContextAsync();

                IEnumerable <ProofRecord> proofRequests = (await _proofService.ListRequestedAsync(agentContext));

                IList <ProofRequestViewModel> proofRequestVms = new List <ProofRequestViewModel>();
                foreach (var proofReq in proofRequests)
                {
                    var connection = await _connectionService.GetAsync(agentContext, proofReq.ConnectionId);

                    var proofRequestViewModel = _scope.Resolve <ProofRequestViewModel>(new NamedParameter("proofRecord", proofReq), new NamedParameter("connection", connection));
                    proofRequestVms.Add(proofRequestViewModel);
                }

                ProofRequests.InsertRange(proofRequestVms);
                HasRequests = ProofRequests.Any();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                RefreshingProofRequests = false;
            }
        }
        public async Task RefreshProofRequests(string tab = null)
        {
            try
            {
                RefreshingProofRequests = true;
                ProofRequests.Clear();

                var agentContext = await _agentContextProvider.GetContextAsync();

                IEnumerable <ProofRecord> proofRequests = null;
                if (tab == null || tab.Equals(nameof(ProofState.Requested)))
                {
                    proofRequests = await _proofService.ListRequestedAsync(agentContext);
                }
                else if (tab.Equals(nameof(ProofState.Accepted)))
                {
                    proofRequests = await _proofService.ListAcceptedAsync(agentContext);
                }
                else if (tab.Equals(nameof(ProofState.Proposed)))
                {
                    proofRequests = await _proofService.ListProposedAsync(agentContext);
                }

                IList <ProofRequestViewModel> proofRequestVms = new List <ProofRequestViewModel>();
                foreach (var proofReq in proofRequests)
                {
                    var connection = (proofReq.ConnectionId == null) ? null : await _connectionService.GetAsync(agentContext, proofReq.ConnectionId);

                    var proofRequestViewModel = _scope.Resolve <ProofRequestViewModel>(new NamedParameter("proofRecord", proofReq), new NamedParameter("connection", connection));
                    proofRequestVms.Add(proofRequestViewModel);
                }

                ProofRequests.InsertRange(proofRequestVms);
                HasRequests = ProofRequests.Any();
            }
            catch (Exception xx)
            {
                await UserDialogs.Instance.AlertAsync(xx.Message);

                Debug.WriteLine(xx.StackTrace);
            }
            finally
            {
                RefreshingProofRequests = false;
            }
        }
        private async Task GetRequiredRecord()
        {
            IsRefreshing = true;
            var agentContext = await _agentProvider.GetContextAsync();

            //ISearchQuery credentialsQuery = ListOffersAsync
            var listCredentials = await _credentialService.ListOffersAsync(agentContext);

            var listProofRequests = await _proofService.ListRequestedAsync(agentContext);

            IList <NotificationItem> notificationItemList = new List <NotificationItem>();

            //old version of notification
            //IList<CredOfferViewModel> credOfferViewModels = new List<CredOfferViewModel>();
            foreach (var item in listCredentials)
            {
                CredOfferViewModel credOfferViewModel = _scope.Resolve <CredOfferViewModel>(new NamedParameter("credentialOffer", item));
                NotificationItem   notificationItem   = new NotificationItem()
                {
                    NotificationType    = "Credential Offer",
                    NotificationTitle   = credOfferViewModel.CredentialName,
                    NotificationContent = "You've received a credentital offer.",
                    ItemViewModel       = credOfferViewModel,
                    IssuedDate          = credOfferViewModel.IssuedDate
                };

                var connection = await _connectionService.GetAsync(agentContext, item.ConnectionId);

                notificationItem.OrganizeAlias = connection.Alias;

                //old version of notification
                //credOfferViewModels.Add(credOfferViewModel);
                notificationItemList.Add(notificationItem);
            }

            //old version of notification
            //IList<ProofRequestViewModel> proofRequestViewModels = new List<ProofRequestViewModel>();
            foreach (var item in listProofRequests)
            {
                ProofRequestViewModel proofRequestVm   = _scope.Resolve <ProofRequestViewModel>(new NamedParameter("proofRequestRecord", item));
                NotificationItem      notificationItem = new NotificationItem()
                {
                    NotificationType    = "Proof Request",
                    NotificationTitle   = proofRequestVm.ProofRequestObject.Name,
                    NotificationContent = "You've received a request for proof of credential.",
                    ItemViewModel       = proofRequestVm,
                    IssuedDate          = proofRequestVm.IssuedDate
                };

                var connection = await _connectionService.GetAsync(agentContext, item.ConnectionId);

                notificationItem.OrganizeAlias = connection.Alias;

                //old version of notification
                //proofRequestViewModels.Add(proofRequestVm);
                notificationItemList.Add(notificationItem);
            }
            //old version of notification
            //_proofRequestVms.Clear();
            //_proofRequestVms.InsertRange(proofRequestViewModels);

            //_credentialOfferVms.Clear();
            //_credentialOfferVms.InsertRange(credOfferViewModels);
            //--end old version of notification
            var orderList = notificationItemList.OrderBy(item => item.IssuedDate);

            NotificationItems.Clear();
            NotificationItems.InsertRange(orderList);
            IsRefreshing = false;
        }