コード例 #1
0
        public async Task <GroupRequestConfirmResponse> GroupRequestConfirmAsync(GroupRequestConfirmDataModel dataModel, CancellationToken cancellationToken) =>
        await Task.Run(async() => {
            if (!CrossConnectivity.Current.IsConnected)
            {
                throw new InvalidOperationException(AppConsts.ERROR_INTERNET_CONNECTION);
            }

            GroupRequestConfirmRequest groupRequestConfirmRequest = new GroupRequestConfirmRequest {
                AccessToken = GlobalSettings.Instance.UserProfile.AccesToken,
                Data        = dataModel,
                Url         = GlobalSettings.Instance.Endpoints.GroupsEndpoints.GroupRequestConfirmEndPoint
            };

            GroupRequestConfirmResponse groupRequestConfirmResponse = null;

            try {
                groupRequestConfirmResponse = await _requestProvider.PostAsync <GroupRequestConfirmRequest, GroupRequestConfirmResponse>(groupRequestConfirmRequest);
            }
            catch (ServiceAuthenticationException exc) {
                _identityUtilService.RefreshToken();

                throw exc;
            }
            catch (Exception ex) {
                Crashes.TrackError(ex);
                Debug.WriteLine($"ERROR:{ex.Message}");
                throw;
            }

            return(groupRequestConfirmResponse);
        });
コード例 #2
0
        private async Task OnAccept(CancellationToken cancellationToken)
        {
            try {
                GroupRequestConfirmDataModel groupRequestConfirmDataModel = new GroupRequestConfirmDataModel {
                    GroupId = this.GroupId,
                    Id      = GlobalSettings.Instance.UserProfile.Id
                };

                GroupRequestConfirmResponse groupRequestConfirmResponse =
                    await _groupsService.GroupRequestConfirmAsync(groupRequestConfirmDataModel, cancellationToken);

                if (groupRequestConfirmResponse != null)
                {
                    MessagingCenter.Send <object, long>(this, GlobalSettings.Instance.AppMessagingEvents.GroupsEvents.InviteAccepted, GroupId);

                    await DialogService.ToastAsync($"You are joined in {GroupName}!");
                }
            }
            catch (OperationCanceledException) { }
            catch (ObjectDisposedException) { }
            catch (ServiceAuthenticationException) { }
            catch (Exception exc) {
                Crashes.TrackError(exc);

                await DialogService.ToastAsync(exc.Message);
            }
        }
コード例 #3
0
        public ChildInviteToGroupItemViewModel(
            IGroupsService groupsService)
        {
            _groupsService = groupsService;

            AcceptCommand = new Command(async() => {
                try {
                    GroupRequestConfirmDataModel groupRequestConfirmDataModel = new GroupRequestConfirmDataModel {
                        GroupId = ((GroupDTO)InviteTo).Id,
                        Id      = Child.Id,
                    };

                    GroupRequestConfirmResponse groupRequestConfirmResponse =
                        await _groupsService.GroupRequestConfirmAsync(groupRequestConfirmDataModel, default(CancellationToken));

                    if (groupRequestConfirmResponse != null)
                    {
                        MessagingCenter.Send <object, long>(this, GlobalSettings.Instance.AppMessagingEvents.GroupsEvents.InviteAccepted, ((GroupDTO)InviteTo).Id);

                        await DialogService.ToastAsync("Child joined to group");
                    }
                }
                catch (OperationCanceledException) { }
                catch (ObjectDisposedException) { }
                catch (ServiceAuthenticationException) { }
                catch (Exception exc) {
                    Crashes.TrackError(exc);

                    await DialogService.ToastAsync(exc.Message);
                }
            });

            DeclineCommand = new Command(async() => {
                try {
                    GroupRequestDeclineDataModel dataModel = new GroupRequestDeclineDataModel {
                        GroupId = ((GroupDTO)InviteTo).Id,
                        Id      = Child.Id
                    };

                    if (await _groupsService.GroupRequestDeclineAsync(dataModel, default(CancellationToken)))
                    {
                        MessagingCenter.Send <object, long>(this, GlobalSettings.Instance.AppMessagingEvents.GroupsEvents.InviteDeclined, ((GroupDTO)InviteTo).Id);

                        await DialogService.ToastAsync("Child declined invite to group");
                    }
                }
                catch (OperationCanceledException) { }
                catch (ObjectDisposedException) { }
                catch (ServiceAuthenticationException) { }
                catch (Exception exc) {
                    Crashes.TrackError(exc);

                    await DialogService.ToastAsync(exc.Message);
                }
            });
        }