public override void Prepare(NavigateRequestParameters parameter)
 {
     _chat            = parameter.Chat;
     _navigateRequest = parameter.NavigateRequest;
     _navigateRequest.NavigationDeclined += NavigateRequest_NavigationDeclined;
     _navigateRequest.NavigationAccepted += NavigateRequest_NavigationAccepted;
 }
示例#2
0
        public async Task AcceptNavigationRequest(NavigateRequest navigateRequest)
        {
            navigateRequest.IsRequestAccepted = true;
            navigateRequest.IsRequestDeclined = false;

            await _navigationRequestRepository.UpdateNavigationRequest(navigateRequest);
        }
 private void NavigateHome(NavigateRequest obj)
 {
     try
     {
         Dispatcher.Invoke(new Action(() => { this.NavigationService.Navigate(new Home()); }));
     }
     catch { }
 }
示例#4
0
        public async Task InitiatNavigationRequest(NavigateRequest navigateRequest)
        {
            navigateRequest.InitiatorEmail     = navigateRequest.ActiveUser.EmailAddress;
            navigateRequest.IsNavigationActive = true;
            navigateRequest.IsRequestAccepted  = false;
            navigateRequest.IsRequestDeclined  = false;

            await _navigationRequestRepository.UpdateNavigationRequest(navigateRequest);
        }
示例#5
0
        public async Task DeclineNavigationRequest(NavigateRequest navigateRequest)
        {
            navigateRequest.InitiatorEmail     = string.Empty;
            navigateRequest.IsNavigationActive = false;
            navigateRequest.IsRequestAccepted  = false;
            navigateRequest.IsRequestDeclined  = true;

            await _navigationRequestRepository.UpdateNavigationRequest(navigateRequest);
        }
        private async Task SetupModel()
        {
            _chat.Messages.CollectionChanged += Messages_CollectionChanged;
            await _messageRepository.GetMessages(_chat);

            if (_navigateRequest == null)
            {
                _navigateRequest = await _navigateRequestRepository.GetNavigationRequest(_chat);
            }

            _navigateRequest.NavigationReqest += NavigateRequest_NavigationReqest;
        }
        public async Task UpdateNavigationRequest(NavigateRequest navigateRequest)
        {
            var client = _firebaseClientService.CreateFirebaseClient();

            await client
            .Child("BasicChat")
            .Child(navigateRequest.ChatFirebaseKey)
            .Child("meetRequest")
            .PutAsync(new NavigateRequestDto
            {
                InitiatorEmail      = navigateRequest.InitiatorEmail,
                CallActive          = navigateRequest.IsNavigationActive,
                IsRequestedAccepted = navigateRequest.IsRequestAccepted,
                IsRequestDeclined   = navigateRequest.IsRequestDeclined
            });
        }
        public async Task <NavigateRequest> GetNavigationRequest(Chat chat)
        {
            var navigateRequest = new NavigateRequest
            {
                ActiveUser      = chat.ActiveUser,
                ChatFirebaseKey = chat.FirebaseKey
            };

            var client = _firebaseClientService.CreateFirebaseClient();

            var navigateRequestDto = await client
                                     .Child("BasicChat")
                                     .Child(chat.FirebaseKey)
                                     .Child("meetRequest")
                                     .OnceSingleAsync <NavigateRequestDto>();

            if (navigateRequestDto == null)
            {
                navigateRequestDto = new NavigateRequestDto
                {
                    InitiatorEmail = string.Empty,
                };

                await client
                .Child("BasicChat")
                .Child(chat.FirebaseKey)
                .Child("meetRequest")
                .PutAsync(navigateRequestDto);
            }

            navigateRequest.InitiatorEmail     = navigateRequestDto.InitiatorEmail;
            navigateRequest.IsNavigationActive = navigateRequestDto.CallActive;
            navigateRequest.IsRequestAccepted  = navigateRequestDto.IsRequestedAccepted;
            navigateRequest.IsRequestDeclined  = navigateRequestDto.IsRequestDeclined;

            var disposable = client
                             .Child("BasicChat")
                             .Child(chat.FirebaseKey)
                             .Child("meetRequest")
                             .AsObservable <NavigateRequestDto>(elementRoot: "meetRequest")
                             .Subscribe(navigateRequest.IncomingNavigationRequest);

            _disposable.Add(disposable);

            return(navigateRequest);
        }
 public async Task PrepareAsync(ChatParameters parameter)
 {
     _chat            = parameter.Chat;
     _navigateRequest = parameter.NavigateRequest;
     await SetupModel();
 }