Ejemplo n.º 1
0
        public void Test_GetResultsMock()
        {
            // arrange
            DscQDataQuery   query       = new DscQDataQuery();
            DscQColumnQuery columnQuery = new DscQColumnQuery();

            // act
            DscQData[]   result  = _channelMock.Object.GetResults(query);
            DscQColumn[] columns = _channelMock.Object.GetColumns(columnQuery);

            // assert
            Assert.IsNotNull(result);
            Assert.AreEqual(result.Length, 1);
            Assert.AreEqual(result.FirstOrDefault()?.DynamicProperties?.Count, columns.Length);

            _channelMock.Verify(c => c.GetResults(query), Times.Once());
        }
Ejemplo n.º 2
0
        // GET: odata/Data
        public IQueryable <DscQData> Get(string datasource, string path)
        {
            ClaimsPrincipal cp = (ClaimsPrincipal)User;

            string user = cp.FindFirst(ClaimTypes.Name)?.Value;
            string pswd = cp.FindFirst(BasicClaimTypes.Password)?.Value;

            // DscQParameters (из кеша)
            DscQParameterQuery parameterQuery = new DscQParameterQuery()
            {
                Path       = path.Replace(DscQRouteHandler.RandomWord, "\\"),
                DataSource = datasource,
                UserId     = user,
                Password   = pswd
            };

            DscQParameterQueryResult parameterResult = _queryDispatcher.Dispatch <DscQParameterQuery, DscQParameterQueryResult>(parameterQuery);

            DscQDataQuery dataQuery = new DscQDataQuery()
            {
                Path       = path.Replace(DscQRouteHandler.RandomWord, "\\"),
                DataSource = datasource,
                UserId     = user,
                Password   = pswd,
                Parameters = Request.GetQueryNameValuePairs()
                             .Where(p => !p.Key.StartsWith("$"))
                             .Select((p, i) => new DscQParameter()
                {
                    // заполнение ключа [No] для вычисления хеша
                    No        = i + 1,
                    FieldCode = p.Key,
                    Value     = p.Value,
                    // FlexField из списка DscQParameter's
                    FlexField = parameterResult
                                .Items
                                .FirstOrDefault(item => item.FieldCode.Equals(p.Key, StringComparison.OrdinalIgnoreCase))
                                ?.FlexField
                })
                             .ToList()
            };

            DscQDataQueryResult result = _queryDispatcher.Dispatch <DscQDataQuery, DscQDataQueryResult>(dataQuery);

            return(result.Items);
        }
Ejemplo n.º 3
0
        public DscQData[] GetResults(DscQDataQuery query)
        {
            // DscQParameters (из кеша)
            DscQParameterQuery parameterQuery = new DscQParameterQuery()
            {
                Path       = query.Path,
                DataSource = query.DataSource,
                UserId     = _securityToken.UserName,
                Password   = _securityToken.Password
            };

            DscQParameterQueryResult parameterResult = _queryDispatcher.Dispatch <DscQParameterQuery, DscQParameterQueryResult>(parameterQuery);

            query.UserId   = _securityToken.UserName;
            query.Password = _securityToken.Password;

            if (query.DynamicParameters != null)
            {
                query.Parameters = query.DynamicParameters
                                   .Select((p, i) => new DscQParameter()
                {
                    // заполнение ключа [No] для вычисления хеша
                    No        = i + 1,
                    FieldCode = p.Key,
                    Value     = p.Value,
                    // FlexField из списка DscQParameter's
                    FlexField = parameterResult
                                .Items
                                .FirstOrDefault(item => item.FieldCode.Equals(p.Key, StringComparison.OrdinalIgnoreCase))
                                ?.FlexField
                })
                                   .ToList();
            }

            DscQDataQueryResult result = _queryDispatcher.Dispatch <DscQDataQuery, DscQDataQueryResult>(query);

            return(result.Items.ToArray());
        }
Ejemplo n.º 4
0
        public void Test_GetResults()
        {
            // arrange
            DscQDataQuery query = new DscQDataQuery()
            {
                DataSource = "aql.eco",
                Path       = "Аварийные скважины/Скважины на которых были аварии"
            };

            DscQColumnQuery columnQuery = new DscQColumnQuery()
            {
                DataSource = "aql.eco",
                Path       = "Аварийные скважины/Скважины на которых были аварии"
            };

            // act
            DscQData[]   result  = _client.GetResults(query);
            DscQColumn[] columns = _client.GetColumns(columnQuery);

            // assert
            Assert.IsNotNull(result);
            Assert.AreEqual(result.Length, 1);
            Assert.AreEqual(result.FirstOrDefault()?.DynamicProperties?.Count, columns.Length);
        }