public async Task Should_return_list_of_court_rooms_accounts_with_status_ok()
        {
            var accounts  = UserResponseBuilder.BuildData();
            var usernames = new VhoConferenceFilterQuery {
                UserNames = new List <string> {
                    "Manual01", "Manual03"
                }
            };

            _mocker.Mock <IUserApiClient>().Setup(x => x.GetJudgesAsync()).ReturnsAsync(accounts);

            var result = await _sut.GetCourtRoomsAccounts(usernames);

            var typedResult = (OkObjectResult)result.Result;

            typedResult.Should().NotBeNull();
            var judgeList = typedResult.Value as List <CourtRoomsAccountResponse>;

            judgeList.Should().NotBeNull();
            judgeList.Count.Should().Be(2);
            judgeList[0].CourtRooms.Count.Should().Be(3);
            judgeList[1].CourtRooms.Count.Should().Be(1);

            judgeList[0].Venue.Should().Be("Manual01");
            judgeList[1].Venue.Should().Be("Manual03");

            judgeList[0].CourtRooms[0].Should().Be("Court room 01");
            judgeList[0].CourtRooms[1].Should().Be("Court room 02");
            judgeList[0].CourtRooms[2].Should().Be("Court room 03");

            judgeList[1].CourtRooms[0].Should().Be("Court room 01");
        }
        public async Task Should_return_error_when_unable_to_retrieve_court_rooms_accounts()
        {
            var usernames = new VhoConferenceFilterQuery {
                UserNames = new List <string> {
                    "Manual01", "Manual03"
                }
            };

            var apiException = new UserApiException("Court rooms accounts not found", (int)HttpStatusCode.BadRequest,
                                                    "Error", null, null);

            _mocker.Mock <IUserApiClient>()
            .Setup(x => x.GetJudgesAsync())
            .ThrowsAsync(apiException);

            var result = await _sut.GetCourtRoomsAccounts(usernames);

            var typedResult = (ObjectResult)result.Result;

            typedResult.Should().NotBeNull();
            typedResult.StatusCode.Should().Be(apiException.StatusCode);
        }
예제 #3
0
        public async Task <ActionResult <IList <CourtRoomsAccountResponse> > > GetCourtRoomsAccounts([FromQuery] VhoConferenceFilterQuery query)
        {
            try
            {
                var response = await _userApiClient.GetJudgesAsync();

                var courtRoomsAccountResponsesMapper = _mapperFactory.Get <IEnumerable <UserResponse>, IEnumerable <string>, List <CourtRoomsAccountResponse> >();
                var accountList = courtRoomsAccountResponsesMapper.Map(response, query.UserNames);

                return(Ok(accountList));
            }
            catch (UserApiException e)
            {
                _logger.LogError(e, "Unable to get list of court rooms accounts");
                return(StatusCode(e.StatusCode, e.Response));
            }
        }
예제 #4
0
        public async Task <ActionResult <List <ConferenceForVhOfficerResponse> > > GetConferencesForVhOfficerAsync([FromQuery] VhoConferenceFilterQuery query)
        {
            _logger.LogDebug("GetConferencesForVhOfficer");
            try
            {
                var conferences = await _videoApiClient.GetConferencesTodayForAdminAsync(query.UserNames);

                var conferenceForVhOfficerResponseMapper = _mapperFactory.Get <ConferenceForAdminResponse, ConferenceForVhOfficerResponse>();
                var responses = conferences
                                .Where(c => ConferenceHelper.HasNotPassed(c.Status, c.ClosedDateTime))
                                .OrderBy(x => x.ClosedDateTime)
                                .Select(conferenceForVhOfficerResponseMapper.Map)
                                .ToList();

                return(Ok(responses));
            }
            catch (VideoApiException e)
            {
                _logger.LogError(e, "Unable to get conferences for vh officer");
                return(StatusCode(e.StatusCode, e.Response));
            }
        }
예제 #5
0
        public async Task <ActionResult <List <ConferenceForVhOfficerResponse> > > GetConferencesForVhOfficerAsync([FromQuery] VhoConferenceFilterQuery query)
        {
            _logger.LogDebug("GetConferencesForVhOfficer");
            try
            {
                var conferences = await _videoApiClient.GetConferencesTodayForAdminAsync(query.UserNames);

                conferences = conferences.Where(c => ConferenceHelper.HasNotPassed(c.Status, c.Closed_date_time))
                              .ToList();
                conferences = conferences.OrderBy(x => x.Closed_date_time).ToList();

                var responses = conferences.Select(ConferenceForVhOfficerResponseMapper
                                                   .MapConferenceSummaryToResponseModel).ToList();

                return(Ok(responses));
            }
            catch (VideoApiException e)
            {
                return(StatusCode(e.StatusCode, e.Response));
            }
        }