public void TestSubmitCommandOther()
        {
            var peerWorkGroupEvaluationToSubmit = new PeerWorkGroupEvaluation {
                Q1 = false, Q2 = 1, Q3 = 1, Q4 = 1, Q5 = 1, Q6 = 1, Q7 = 1,
                Q8 = false, Q9 = ""
            };
            var messageToShow = "Error Message";

            var dialogShown        = false;
            var messageShown       = "";
            var stubIDialogService = new StubIDialogService();

            stubIDialogService.ShowAsync(async message => {
                dialogShown  = true;
                messageShown = message;
            });

            PeerWorkGroupEvaluation peerWorkGroupEvaluationSubmitted = null;
            var submitRequested = false;
            var stubIPeerWorkGroupEvaluationService =
                new StubIPeerWorkGroupEvaluationService();

            stubIPeerWorkGroupEvaluationService.SubmitAsync(
                async peerWorkGroupEvaluation => {
                submitRequested = true;
                peerWorkGroupEvaluationSubmitted = peerWorkGroupEvaluation;
                return(new ServiceResult {
                    Status = ServiceResultStatus.NotFound,
                    Message = messageToShow
                });
            });

            var peerWorkGroupEvaluationViewModel =
                new PeerWorkGroupEvaluationViewModel(stubIDialogService, null,
                                                     stubIPeerWorkGroupEvaluationService, null);

            peerWorkGroupEvaluationViewModel.PeerWorkGroupEvaluation =
                peerWorkGroupEvaluationToSubmit;
            peerWorkGroupEvaluationViewModel.SubmitCommand.Execute(null);

            Assert.IsTrue(dialogShown);
            Assert.AreEqual(
                UvpClient.App.HttpClientErrorMessage + messageToShow,
                messageShown);
            Assert.IsTrue(submitRequested);
        }
        public void TestSubmitCommandUnauthorized()
        {
            var peerWorkGroupEvaluationToSubmit = new PeerWorkGroupEvaluation {
                Q1 = false, Q2 = 1, Q3 = 1, Q4 = 1, Q5 = 1, Q6 = 1, Q7 = 1,
                Q8 = false, Q9 = ""
            };
            var messageToShow = "Error Message";

            var dialogShown        = false;
            var stubIDialogService = new StubIDialogService();

            stubIDialogService.ShowAsync(async message => {
                dialogShown = true;
            });

            var submitRequested = false;
            var stubIPeerWorkGroupEvaluationService =
                new StubIPeerWorkGroupEvaluationService();

            stubIPeerWorkGroupEvaluationService.SubmitAsync(
                async peerWorkGroupEvaluation => {
                submitRequested = true;
                return(new ServiceResult
                {
                    Status = ServiceResultStatus.Unauthorized
                });
            });

            var peerWorkGroupEvaluationViewModel =
                new PeerWorkGroupEvaluationViewModel(stubIDialogService, null,
                                                     stubIPeerWorkGroupEvaluationService, null);

            peerWorkGroupEvaluationViewModel.PeerWorkGroupEvaluation =
                peerWorkGroupEvaluationToSubmit;
            peerWorkGroupEvaluationViewModel.SubmitCommand.Execute(null);

            Assert.IsFalse(dialogShown);
            Assert.IsTrue(submitRequested);
        }
Ejemplo n.º 3
0
        public void TestOpenPeerWorkGroupEvaluationCommand()
        {
            var peerWorkGroupEvaluationToNavigate =
                new PeerWorkGroupEvaluation();

            var rootFrameNavigated         = false;
            var stubIRootNavigationService = new StubIRootNavigationService();

            stubIRootNavigationService.Navigate((type, parameter, transition) =>
                                                rootFrameNavigated =
                                                    type == typeof(PeerWorkGroupEvaluationPage) &&
                                                    parameter == peerWorkGroupEvaluationToNavigate &&
                                                    transition == NavigationTransition
                                                    .DrillInNavigationTransition);

            var myUvpViewModel = new MyUvpViewModel(null, null,
                                                    stubIRootNavigationService, null);

            myUvpViewModel.OpenPeerWorkGroupEvaluationCommand.Execute(
                peerWorkGroupEvaluationToNavigate);

            Assert.IsTrue(rootFrameNavigated);
        }
        public void TestSubmitCommand()
        {
            var peerWorkGroupEvaluationToSubmit = new PeerWorkGroupEvaluation {
                Q1 = false, Q2 = 1, Q3 = 1, Q4 = 1, Q5 = 1, Q6 = 1, Q7 = 1,
                Q8 = false, Q9 = ""
            };
            var messageToShow = "Error Message";

            var dialogShown        = false;
            var messageShown       = "";
            var stubIDialogService = new StubIDialogService();

            stubIDialogService.ShowAsync(async message => {
                dialogShown  = true;
                messageShown = message;
            });

            PeerWorkGroupEvaluation peerWorkGroupEvaluationSubmitted = null;
            var submitRequested = false;
            var stubIPeerWorkGroupEvaluationService =
                new StubIPeerWorkGroupEvaluationService();

            stubIPeerWorkGroupEvaluationService.SubmitAsync(
                async peerWorkGroupEvaluation => {
                submitRequested = true;
                peerWorkGroupEvaluationSubmitted = peerWorkGroupEvaluation;
                return(new ServiceResult
                {
                    Status = ServiceResultStatus.NoContent
                });
            });

            var stubIRootNavigationService = new StubIRootNavigationService();
            var backNavigated = false;

            stubIRootNavigationService.GoBack(() => backNavigated = true);

            var stubITileService = new StubITileService();
            var updateRequested  = false;

            stubITileService.ForceUpdate(() => updateRequested = true);

            var peerWorkGroupEvaluationViewModel =
                new PeerWorkGroupEvaluationViewModel(stubIDialogService,
                                                     stubIRootNavigationService,
                                                     stubIPeerWorkGroupEvaluationService, stubITileService);

            peerWorkGroupEvaluationViewModel.PeerWorkGroupEvaluation =
                peerWorkGroupEvaluationToSubmit;
            peerWorkGroupEvaluationViewModel.SubmitCommand.Execute(null);

            Assert.IsTrue(dialogShown);
            Assert.AreSame(
                PeerWorkGroupEvaluationViewModel
                .PeerWorkGroupEvaluationSubmittedMessage, messageShown);
            Assert.IsTrue(submitRequested);
            Assert.AreSame(peerWorkGroupEvaluationToSubmit,
                           peerWorkGroupEvaluationSubmitted);
            Assert.IsTrue(backNavigated);
            Assert.IsTrue(updateRequested);
        }
        /// <summary>
        ///     提交组内自评/互评表。
        /// </summary>
        /// <param name="peerWorkGroupEvaluation">组内自评互评表。</param>
        /// <returns>服务结果。</returns>
        public async Task <ServiceResult> SubmitAsync(
            PeerWorkGroupEvaluation peerWorkGroupEvaluation)
        {
            var workGroupEvaluationToSubmit = new PeerWorkGroupEvaluation {
                ID        = peerWorkGroupEvaluation.ID,
                StudentID = peerWorkGroupEvaluation.StudentID,
                TargetID  = peerWorkGroupEvaluation.TargetID,
                Finished  = peerWorkGroupEvaluation.Finished,
                Q1        = peerWorkGroupEvaluation.Q1,
                Q2        = peerWorkGroupEvaluation.Q2,
                Q3        = peerWorkGroupEvaluation.Q3,
                Q4        = peerWorkGroupEvaluation.Q4,
                Q5        = peerWorkGroupEvaluation.Q5,
                Q6        = peerWorkGroupEvaluation.Q6,
                Q7        = peerWorkGroupEvaluation.Q7,
                Q8        = peerWorkGroupEvaluation.Q8, Q9 = peerWorkGroupEvaluation.Q9
            };

            var identifiedHttpMessageHandler =
                _identityService.GetIdentifiedHttpMessageHandler();

            using (var httpClient =
                       new HttpClient(identifiedHttpMessageHandler)) {
                var json =
                    JsonConvert.SerializeObject(workGroupEvaluationToSubmit);
                HttpResponseMessage response;
                try {
                    response = await httpClient.PutAsync(
                        App.ServerEndpoint + "/api/PeerWorkGroupEvaluation/" +
                        peerWorkGroupEvaluation.TargetID,
                        new StringContent(json, Encoding.UTF8,
                                          "application/json"));
                } catch (Exception e) {
                    return(new ServiceResult {
                        Status = ServiceResultStatus.Exception,
                        Message = e.Message
                    });
                }

                var serviceResult = new ServiceResult {
                    Status =
                        ServiceResultStatusHelper.FromHttpStatusCode(
                            response.StatusCode)
                };

                switch (response.StatusCode)
                {
                case HttpStatusCode.Unauthorized:
                case HttpStatusCode.Forbidden:
                    break;

                case HttpStatusCode.NoContent:
                    break;

                case HttpStatusCode.BadRequest:
                    serviceResult.Message =
                        await response.Content.ReadAsStringAsync();

                    break;

                default:
                    serviceResult.Message = response.ReasonPhrase;
                    break;
                }

                return(serviceResult);
            }
        }