Example #1
0
        public void CreateMeeting_InputValidate_Success()
        {
            var createMeetingValidation = new CreateMeetingValidation();
            var testMeetingLabels       = new ObservableCollection <MeetingLabelData>();
            var testMeetingLabel        = new MeetingLabelData(1, "test");

            testMeetingLabels.Add(testMeetingLabel);

            var testMeetingDate      = DateTime.UtcNow;
            var testMeetingStartTime = new TimeSpan(10, 0, 0);
            var testMeetingEndTime   = new TimeSpan(11, 0, 0);

            var result = createMeetingValidation.InputValidate("testMeeting", testMeetingDate, testMeetingStartTime, testMeetingEndTime, "MeetingSpace", testMeetingLabels);

            Assert.IsTrue(result.IsSuccessed);
            Assert.IsFalse(result.HasError);
        }
Example #2
0
        public void AttendMeeting_ButtonPushedValidate_Success()
        {
            var testMeetingLabels = new List <MeetingLabelData>();

            var testMeetingLabel = new MeetingLabelData(1, "testLabel");

            testMeetingLabel.MeetingLabelItemDatas.Add(new MeetingLabelItemData(1, 2, "testMeetignLabelItem"));
            testMeetingLabel.MeetingLabelItemDatas.Add(new MeetingLabelItemData(2, 3, "testMeetignLabelItem2"));

            var testMeetingLabel2 = new MeetingLabelData(2, "testLabel2");

            testMeetingLabel2.MeetingLabelItemDatas.Add(new MeetingLabelItemData(3, 4, "testMeetignLabelItem"));
            testMeetingLabel2.MeetingLabelItemDatas.Add(new MeetingLabelItemData(4, 5, "testMeetignLabelItem2"));

            var attendMeetingValidation = new AttendMeetingValidation();
            var result = attendMeetingValidation.ButtonPushedValidate(testMeetingLabels);

            Assert.IsTrue(result.IsSuccessed);
            Assert.IsFalse(result.HasError);
        }
Example #3
0
        /// <summary>
        /// 会議に対するラベルを新規追加するAPIコール
        /// </summary>
        /// <param name="uri">コールするURL</param>
        /// <param name="labelName">追加するラベルの名前</param>
        /// <param name="mid">ラベルを追加する対象の会議ID</param>
        /// <returns>CreateMeetingLabelParam</returns>
        public async Task <CreateMeetingLabelParam> CreateMeetingLabelDataAsync(string uri, string labelName, int mid)
        {
            var meetingLabel = new MeetingLabelData(mid, labelName);
            var json         = JsonConvert.SerializeObject(meetingLabel);

            var createMeetingLabelParam = new CreateMeetingLabelParam();

            try
            {
                var content = new StringContent(json, Encoding.UTF8, "application/json");

                //入力されたカードラベル名が空かどうかチェック
                if (string.IsNullOrEmpty(labelName))
                {
                    //存在していた場合POSTを失敗で終了
                    createMeetingLabelParam.HasError       = true;
                    createMeetingLabelParam.BlankLabelName = true;
                    return(createMeetingLabelParam);
                }


                var response = await _client.PostAsync(uri, content);

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

                    Console.WriteLine(responseContent);
                    createMeetingLabelParam.IsSuccessed = response.IsSuccessStatusCode;
                    return(createMeetingLabelParam);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("\tERROR {0}", ex.Message);
            }
            return(createMeetingLabelParam);
        }
        public MeetingDataCreatePageViewModel(INavigationService navigationService) : base(navigationService)
        {
            _navigationService = navigationService;

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

            _createMeetingParam      = new CreateMeetingParam();
            _createMeetingLabelParam = new CreateMeetingLabelParam();

            _createMeetingValidation      = new CreateMeetingValidation();
            _createMeetingLabelValidation = new CreateMeetingLabelValidation();

            Labels = new ObservableCollection <MeetingLabelData>();


            //入力初期値
            InputMeetingDate = DateTime.UtcNow;

            CreateMeetingDataCommand = new DelegateCommand(async() =>

            {
                //会議情報入力値のバリデーション処理
                CreateMeetingParam = _createMeetingValidation.InputValidate(InputMeetingTitle, InputMeetingDate, InputMeetingStartTime, InputMeetingEndTime, InputMeetingLocation, Labels);

                //バリデーションエラーが存在すれば失敗で返す
                if (CreateMeetingParam.HasError == true)
                {
                    return;
                }

                //DateTimeとTimeSpanを結合
                var InputMeetingStartDateTime = InputMeetingDate + InputMeetingStartTime;
                var InputMeetingEndDateTime   = InputMeetingDate + InputMeetingEndTime;

                //userIdに対するidを取得
                var getUserParam = await _restService.GetUserDataAsync(UserConstants.OpenUserEndPoint, _applicationProperties.GetFromProperties <string>("userId"));

                //ユーザー取得時にエラーがあれば処理終了
                if (getUserParam.HasError == true)
                {
                    return;
                }

                //Json用のモデルを作成
                CreateMeetingData = new MeetingData();

                CreateMeetingData.Title         = InputMeetingTitle;
                CreateMeetingData.StartDatetime = InputMeetingStartDateTime;
                CreateMeetingData.EndDatetime   = InputMeetingEndDateTime;
                CreateMeetingData.Regular       = false;
                CreateMeetingData.Owner         = getUserParam.User.Id;
                CreateMeetingData.Location      = InputMeetingLocation;
                CreateMeetingData.IsVisible     = true;

                //会議作成APIのコール
                CreateMeetingParam = await _restService.CreateMeetingDataAsync(MeetingConstants.OpenMeetingEndPoint, CreateMeetingData, Labels);

                //会議作成が成功すればMeetingDataTopPageに遷移する
                if (CreateMeetingParam.IsSuccessed == true)
                {
                    await _navigationService.NavigateAsync("/NavigationPage/MeetingDataTopPage");
                }
            });

            //ラベル追加の際のコマンド
            CreateMeetingLabelCommand = new DelegateCommand(() =>
            {
                //作成するラベル名のバリデーション
                CreateMeetingLabelParam = _createMeetingLabelValidation.InputValidate(CreateLabelName);
                //ラベル作成に失敗すれば処理中断
                if (CreateMeetingLabelParam.HasError == true)
                {
                    return;
                }

                //リストにラベル情報を保持
                var label = new MeetingLabelData(CreateLabelName);
                Labels.Add(label);
                CreateLabelName = "";

                //ViewにおけるFrameの高さを大きくする
                LabelListViewHeight += 85;
            });

            NavigateMeetingDataTopPage = new DelegateCommand(() =>
            {
                //会議情報TOPページへ遷移
                _navigationService.NavigateAsync("/NavigationPage/MeetingDataTopPage");
            });
        }