Example #1
0
        /// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            ListTestsResponse response = new ListTestsResponse();

            context.Read();
            int targetDepth = context.CurrentDepth;

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.TestExpression("nextToken", targetDepth))
                {
                    var unmarshaller = StringUnmarshaller.Instance;
                    response.NextToken = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("tests", targetDepth))
                {
                    var unmarshaller = new ListUnmarshaller <Test, TestUnmarshaller>(TestUnmarshaller.Instance);
                    response.Tests = unmarshaller.Unmarshall(context);
                    continue;
                }
            }

            return(response);
        }
Example #2
0
        public async Task <ListTestsResponse> ListTests(ListTestsRequest request)
        {
            var lstRequest = new ListTestsDataRequest(request.FilteringOrders, request.Range, false, request.ReturnNotSaved);
            var tests      = await TestsStorage.ListTestsDataAsync(lstRequest);

            var testsIds  = tests.Tests.Select(c => c.TestId).ToArray();
            var getInfosR = new RunnerService.API.Models.GetTestsInfoRequest(testsIds);

            RunnerService.API.Models.GetTestsInfoResponse getInfosResp = request.ReturnNotSaved
                ? (RunnerService.API.Models.GetTestsInfoResponse)null
                : (RunnerService.API.Models.GetTestsInfoResponse) await RunnerService.GetTestsInfoAsync(getInfosR);

            var fullInfos = tests.Tests.Select(c => (Case: c, RunInfo: getInfosResp == null ? (RunnerService.API.Models.TestRunInfo)null : getInfosResp.RunInfos.FirstOrDefault(r => r.TestId == c.TestId)));
            //var fullInfos = tests.Tests.Zip(getInfosResp?.RunInfos ?? ((RunnerService.API.Models.TestRunInfo)null).Repeat(tests.Tests.Length).ToArray() , (Case, RunInfo) => (Case, RunInfo));

            var response = new ListTestsResponse(ddd().ToArray(), tests.TotalCount);

            return(response);

            IEnumerable <TestInfo> ddd()
            {
                foreach (var info in fullInfos)
                {
                    yield return(new TestInfo()
                    {
                        TestId = info.Case.TestId,
                        TestName = info.Case.TestName,
                        Author = info.Case.AuthorName == null
                            ? null
                            : new GetUserInfoResponse(info.Case.AuthorName, null, null),
                        Target = new TestCaseInfo()
                        {
                            DisplayName = info.Case.TestDescription,
                            TargetType = info.Case?.Data?.Type,
                            Parameters = info.Case?.Data?.Parameters,
                            CreateDate = info.Case?.CreationDate ?? default,
                            KeyParameters = info.Case?.Data?.KeyParameters.Select(p => p.Key + "###" + p.Value).Aggregate(Environment.NewLine) // Someone, pls, rewrite :D
                        },