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; }
/// <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); }); }