Exemple #1
0
        public override async void OnNavigatedTo(INavigationParameters parameters)
        {
            LoadingData = true;

            _restService           = new RestService();
            _getMeetingLabelsParam = new GetMeetingLabelsParam();
            _getMeetingParam       = new GetMeetingParam();

            //項目追加から戻ってきたときの更新処理
            //対象の会議データ取得
            GetMeetingParam = await _restService.GetMeetingDataAsync(MeetingConstants.OpenMeetingEndPoint, (int)parameters["mid"]);

            TargetMeetingData = GetMeetingParam.MeetingData;

            //UserDataを取得
            GetUserParam = await _restService.GetUserDataAsync(UserConstants.OpenUserEndPoint, _applicationProperties.GetFromProperties <string>("userId"));

            var uid = GetUserParam.User.Id;

            //会議のラベルを取得
            GetMeetingLabelsParam = await _restService.GetMeetingLabelsDataAsync(MeetingConstants.OPENMeetingLabelEndPoint, (int)parameters["mid"], uid);

            TargetMeetingLabels = new ObservableCollection <MeetingLabelData>(GetMeetingLabelsParam.MeetingLabelDatas);

            LoadingData = false;
        }
Exemple #2
0
        /// <summary>
        /// 会議情報単一取得のAPIコール
        /// </summary>
        /// <param name="uri">コールするURL</param>
        /// <param name="mid">会議ID</param>
        /// <returns>GetMeetingParam</returns>
        public async Task <GetMeetingParam> GetMeetingDataAsync(string uri, int mid)
        {
            var getMeetingParam = new GetMeetingParam();

            uri = uri + "?mid=" + mid;
            try
            {
                HttpResponseMessage response = await _client.GetAsync(uri);

                if (response.IsSuccessStatusCode)
                {
                    string content = await response.Content.ReadAsStringAsync();

                    //[]を除去する処理
                    content = _jsonProcessing.RemoveOuterBrackets(content);

                    //jsonからオブジェクト化
                    getMeetingParam.MeetingData = JsonConvert.DeserializeObject <MeetingData>(content);

                    getMeetingParam.MeetingData.StartTime = getMeetingParam.MeetingData.StartDatetime.ToShortTimeString();
                    getMeetingParam.MeetingData.EndTime   = getMeetingParam.MeetingData.EndDatetime.ToShortTimeString();
                    getMeetingParam.MeetingData.Date      = getMeetingParam.MeetingData.StartDatetime.ToShortDateString();

                    getMeetingParam.IsSuccessed = true;
                    return(getMeetingParam);
                }
                else
                {
                    getMeetingParam.HasError = true;
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("\tERROR {0}", ex.Message);
                getMeetingParam.HasError = true;
            }

            return(getMeetingParam);
        }
        public MeetingExecuteTopPageViewModel(INavigationService navigationService) : base(navigationService)
        {
            _navigationService = navigationService;
            _restService       = new RestService();

            IsOwner   = false;
            IsGeneral = false;


            //会議から退出するコマンド
            MeetingExitCommand = new DelegateCommand(async() =>
            {
                //参加情報をparticipantDBから削除するAPIのコール
                CheckParticipantParam.Participant.isDeleted = true;
                var updateParticipant = CheckParticipantParam.Participant;

                UpdateParticipantParam = await _restService.UpdateParticipantDataAsync(MeetingConstants.OPENMeetingParticipantEndPoint, updateParticipant);

                if (UpdateParticipantParam.IsSuccessed == true)
                {
                    await _navigationService.NavigateAsync("/NavigationPage/MeetingDataTopPage");
                }
            });

            MeetingEndCommand = new DelegateCommand(async() =>
            {
                //管理者が操作する会議終了処理
                var select = await Application.Current.MainPage.DisplayAlert("警告", "本当に会議を終了してもよろしいでしょうか?", "OK", "キャンセル");

                if (select)
                {
                    //会議情報を取得
                    GetMeetingParam getMeetingParam = new GetMeetingParam();
                    getMeetingParam       = await _restService.GetMeetingDataAsync(MeetingConstants.OpenMeetingEndPoint, TargetMeetingId);
                    var updateMeetingData = getMeetingParam.MeetingData;
                    //会議の状態を終了状態に変更
                    updateMeetingData.IsVisible = false;
                    UpdateMeetingParam          = await _restService.UpdateMeetingDataAsync(MeetingConstants.OpenMeetingEndPoint, updateMeetingData);

                    //退室済も含めすべてのParticipants情報を取得
                    var p = new NavigationParameters
                    {
                        { "mid", TargetMeetingId }
                    };
                    await _navigationService.NavigateAsync("/NavigationPage/MeetingFinishTopPage", p);
                }
                else
                {
                    return;
                }
            });

            NavigateMeetingExecuteUserPage = new DelegateCommand <object>((participant) =>
            {
                var targetParticipantData = (ParticipantData)participant;

                var p = new NavigationParameters
                {
                    { "participantData", targetParticipantData },
                };

                _navigationService.NavigateAsync("MeetingExecuteUserPage", p);
            });

            UpdateParticipantsCommand = new DelegateCommand(async() =>
            {
                //更新処理
                Reload();
                Participants = await GetParticipants();
            });
        }
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="navigationService"></param>
        public MeetingDataTopPageViewModel(INavigationService navigationService) : base(navigationService)
        {
            _navigationService = navigationService;

            _restService           = new RestService();
            _applicationProperties = new ApplicationProperties();
            _operateDateTime       = new OperateDateTime();

            _tokenCheckParam = new TokenCheckParam();


            //アプリ使用者のユーザーIDの取得
            MyUserId = _applicationProperties.GetFromProperties <string>("userId");


            //会議の削除ボタンが押されたときの処理
            DeleteMeetingCommand = new DelegateCommand <object>(async id =>
            {
                //管理者が操作する会議終了処理
                var select = await Application.Current.MainPage.DisplayAlert("警告", "会議を削除してもよろしいでしょうか?", "OK", "キャンセル");

                if (select)
                {
                    var mid = Convert.ToInt32(id);

                    //対象となる会議情報を1件取得
                    var getMeetingParam   = new GetMeetingParam();
                    getMeetingParam       = await _restService.GetMeetingDataAsync(MeetingConstants.OpenMeetingEndPoint, mid);
                    var updateMeetingData = getMeetingParam.MeetingData;

                    //フラグをfalseに変更
                    updateMeetingData.IsVisible = false;
                    await _restService.UpdateMeetingDataAsync(MeetingConstants.OpenMeetingEndPoint, updateMeetingData);

                    //会議情報再取得
                    GetMeetingsParam = await _restService.GetMeetingsDataAsync(MeetingConstants.OpenMeetingEndPoint, MyUserId);
                    Meetings         = GetMeetingsParam.Meetings;
                }
                else
                {
                    return;
                }
            });

            //会議新規作成ページに遷移するコマンド
            NavigateMeetingCreatePage = new DelegateCommand(async() =>
            {
                //会議情報トップページに遷移する
                await _navigationService.NavigateAsync("/NavigationPage/MeetingDataCreatePage");
            });

            //会議出席ページに遷移するコマンド
            NavigateMeetingAttendPage = new DelegateCommand <object>(async id =>
            {
                var mid = Convert.ToInt32(id);

                //指定の会議の情報をCommandParameterで受け取り、会議id(mid)を取得する
                var getMeetingParam = new GetMeetingParam();
                getMeetingParam     = await _restService.GetMeetingDataAsync(MeetingConstants.OpenMeetingEndPoint, mid);

                var p = new NavigationParameters
                {
                    { "mid", getMeetingParam.MeetingData.Id }
                };

                //会議情報トップページに遷移する
                await _navigationService.NavigateAsync("MeetingAttendPage", p);
            });
        }