예제 #1
0
 public override void onQueryAction(QueryAction queryAction)
 {
     for (int i = queryAction.nTerms - 1; i >= 0; i--)
     {
         currentList.Add(queryAction.terms[i]);
     }
 }
예제 #2
0
        public override void onQueryAction(QueryAction queryAction)
        {
            bool process = !processedQueries.Contains(queryAction.queryId);

            if (process)
            {
                processedQueries.Add(queryAction.queryId);
            }

            if (!process)
            {
                return;
            }

            writer.Write(queryAction.queryId);
            writer.Write(queryAction.sessionId);
            writer.Write(queryAction.serpid);

            writer.Write(queryAction.nTerms);
            for (int i = queryAction.nTerms - 1; i >= 0; i--)
            {
                writer.Write(queryAction.terms[i]);
            }

            writer.Write(queryAction.nUrls);
            for (int i = queryAction.nUrls - 1; i >= 0; i--)
            {
                writer.Write(queryAction.urls[i]);
                writer.Write(queryAction.domains[i]);
            }
        }
예제 #3
0
        public override void onQueryAction(QueryAction queryAction)
        {
            if (processedQueries.Contains(queryAction.queryId))
            {
                return;
            }

            processedQueries.Add(queryAction.queryId);

            for (int i = queryAction.nUrls - 1; i >= 0; i--)
            {
                currentUrls.Add(queryAction.urls[i]);
            }

            foreach (int term in currentUrls)
            {
                if (termsCount.ContainsKey(term))
                {
                    termsCount[term]++;
                }
                else
                {
                    termsCount.Add(term, 1);
                }
            }

            currentUrls.Clear();
        }
예제 #4
0
        public override void onQueryAction(QueryAction queryAction)
        {
            if (_processedQueries.Contains(queryAction.queryId))
            {
                return;
            }

            _processedQueries.Add(queryAction.queryId);

            for (int i = queryAction.nTerms - 1; i >= 0; i--)
            {
                _currentTerms.Add(queryAction.terms[i]);
            }

            foreach (int term in _currentTerms)
            {
                if (_termsCount.ContainsKey(term))
                {
                    _termsCount[term]++;
                }
                else
                {
                    _termsCount.Add(term, 1);
                }
            }

            _currentTerms.Clear();
        }
예제 #5
0
파일: Bot.cs 프로젝트: JohnSutray/BotCore
 private void CheckDisplayClearing(IServiceProvider provider, QueryAction action, IBotInputChat chat)
 {
     if (action.Metadata.ClearDisplayBeforeHandle)
     {
         provider.GetRequiredService <IBotMessageService>().ClearMessages(chat);
     }
 }
예제 #6
0
        public override void onQueryAction(QueryAction queryAction)
        {
            if (processedQueries.Contains(queryAction.queryId))
            {
                return;
            }

            processedQueries.Add(queryAction.queryId);

            for (int i = queryAction.nUrls - 1; i >= 0; i--)
            {
                currentDomains.Add(queryAction.domains[i]);
            }

            foreach (int domain in currentDomains)
            {
                if (domainsCount.ContainsKey(domain))
                {
                    domainsCount[domain]++;
                }
                else
                {
                    domainsCount.Add(domain, 1);
                }
            }

            currentDomains.Clear();
        }
예제 #7
0
 public override void onQueryAction(QueryAction queryAction)
 {
     if (queryAction.type == 2)
     {
         for (int i = 0; i < queryAction.nUrls - 1; i++)
         {
             _writer.WriteLine(_sessionId + "," + queryAction.urls[i]);
         }
     }
 }
예제 #8
0
 public override void onQueryAction(QueryAction queryAction)
 {
     for (int i = 0; i < queryAction.nUrls; i++)
     {
         if (queryAction.urls[i] > maxUrlIndex)
         {
             maxUrlIndex = queryAction.urls[i];
         }
     }
 }
예제 #9
0
        public ApiResult <QueryResult> Query(params Query[] queries)
        {
            var queryAction = new QueryAction();

            foreach (var query in queries)
            {
                queryAction.AddQuery(query);
            }

            return(Execute(queryAction));
        }
예제 #10
0
        public override void onQueryAction(QueryAction queryAction)
        {
            //have statistics for current user
            if (_userGroupId > 0)
            {
                //if it is T type query which we are requested to rearrange
                if (queryAction.type == 2)
                {
                    var         ourFinalRanking  = new List <Tuple <int, float> >();
                    const float defFactor        = 1;
                    const float statisticsFactor = 5;

                    for (int i = 0; i < queryAction.nUrls; i++)
                    {
                        float statisticsValue = -1;
                        //generally - factors from 1 to 10 inclusively
                        float ourRank = (queryAction.nUrls - i) * defFactor;

                        var currUserGroup = _statistics[_userGroupId];
                        int indexOf       = _statistics[_userGroupId].urlsStats.IndexOf(new Tuple <int, float>(queryAction.urls[i], 0.0f));
                        if (indexOf >= 0)
                        {
                            var elem = currUserGroup.urlsStats.ElementAt(indexOf);
                            statisticsValue = elem.Item2;
                        }

                        /*int kTresh = _statistics[_userGroupId].urlsStats.Count;
                         * for (int k = 0; k < kTresh; k++)
                         * {
                         *  var elem = currUserGroup.urlsStats.ElementAt(k);
                         *  if (elem.Item1 == queryAction.urls[i])
                         *  {
                         *      statisticsValue = elem.Item2;
                         *      break;
                         *  }
                         * }*/

                        if (statisticsValue > 0)
                        {
                            ourRank += statisticsValue * statisticsFactor;
                        }
                        ourFinalRanking.Add(new Tuple <int, float>(queryAction.urls[i], ourRank));
                    }
                    ourFinalRanking.Sort((x1, x2) => x2.Item2.CompareTo(x1.Item2));

                    for (int i = 0; i < queryAction.nUrls; i++)
                    {
                        queryAction.urls[i] = ourFinalRanking.ElementAt(i).Item1;
                    }
                }
            }
            queryAction.WriteToStream(_writer);
        }
예제 #11
0
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public ReResult to_Login(string data)
        {
            var rec = new Record(data);

            if (rec.GetString("user_name").IsBlank())
            {
                re.Code    = 500;
                re.Message = "账号未输入";
            }
            else if (rec.GetString("user_pass").IsBlank())
            {
                re.Code    = 500;
                re.Message = "密码未输入";
            }
            else if (rec.GetString("pic").IsBlank())
            {
                re.Code    = 500;
                re.Message = "验证码未输入";
            }
            else if (rec.GetString("pic1").IsBlank())
            {
                re.Code    = 500;
                re.Message = "验证码已过时,请刷新";
            }
            else if (!rec.GetString("pic").Equals(rec.GetString("pic1")))
            {
                re.Code    = 500;
                re.Message = "验证码错误";
            }
            else if (rec.GetString("user_name").IsBlank() || rec.GetString("user_pass").IsBlank())
            {
                re.Code    = 500;
                re.Message = "登陆信息不全";
            }
            else
            {
                rec["password"] = MD5Helper.GenerateMD5(rec.GetString("user_pass"));
                rec.Remove("pic");
                rec.Remove("pic1");
                var t = QueryAction.GetRecord("user_table", rec);
                if (t.IsBlank())
                {
                    re.Code    = 500;
                    re.Message = "登陆信息错误";
                }
                else
                {
                    re.Message = LoginCurrent.Login(t).token;
                }
            }
            return(re);
        }
예제 #12
0
            public void HandlesBoolQueryParameters()
            {
                var queryAction = new QueryAction();

                queryAction.AddQuery(new SiteInfoMetaQuery
                {
                    ShowAllDb = true,
                });

                var parameters = queryAction.BuildParameterList();

                Assert.Equal(parameters["sishowalldb"], "true");
            }
예제 #13
0
            public void HandlesStringQueryParameters()
            {
                var queryAction = new QueryAction();

                queryAction.AddQuery(new SiteInfoMetaQuery
                {
                    LanguageCode = "es",
                });

                var parameters = queryAction.BuildParameterList();

                Assert.Equal(parameters["siinlanguagecode"], "es");
            }
예제 #14
0
            public void HandlesFlagEnumQueryParameters()
            {
                var queryAction = new QueryAction();

                queryAction.AddQuery(new SiteInfoMetaQuery
                {
                    Properties = SiteInfoProperties.DbReplicationLag | SiteInfoProperties.Extensions,
                });

                var parameters = queryAction.BuildParameterList();

                Assert.Equal(parameters["siprop"], "dbrepllag|extensions");
            }
예제 #15
0
            public void HasProperModuleParameters()
            {
                var queryAction = new QueryAction();
                queryAction.AddQuery(new AllPagesListQuery());
                queryAction.AddQuery(new AllUsersListQuery());
                queryAction.AddQuery(new SiteInfoMetaQuery());

                var parameters = queryAction.BuildParameterList();

                Assert.Equal(parameters["list"], "allpages|allusers");
                Assert.Equal(parameters["meta"], "siteinfo");
                Assert.False(parameters.ContainsKey("prop"));
            }
예제 #16
0
            public void HandlesFlagEnumQueryParameters()
            {

                var queryAction = new QueryAction();
                queryAction.AddQuery(new SiteInfoMetaQuery
                {
                    Properties = SiteInfoProperties.DbReplicationLag | SiteInfoProperties.Extensions,
                });

                var parameters = queryAction.BuildParameterList();

                Assert.Equal(parameters["siprop"], "dbrepllag|extensions");
            }
예제 #17
0
            public void HandlesBoolQueryParameters()
            {

                var queryAction = new QueryAction();
                queryAction.AddQuery(new SiteInfoMetaQuery
                {
                    ShowAllDb = true,
                });

                var parameters = queryAction.BuildParameterList();

                Assert.Equal(parameters["sishowalldb"], "true");
            }
예제 #18
0
            public void HandlesStringQueryParameters()
            {

                var queryAction = new QueryAction();
                queryAction.AddQuery(new SiteInfoMetaQuery
                {
                    LanguageCode = "es",
                });

                var parameters = queryAction.BuildParameterList();

                Assert.Equal(parameters["siinlanguagecode"], "es");
            }
예제 #19
0
        private void _Query(string queryString, QueryAction queryAction, ResultAction resultAction, Delegate postDelegate, bool query)
        {
            MySqlConnection connection = null;
            MySqlCommand    command    = null;
            MySqlDataReader reader     = null;

            try
            {
                connection = GetConnection();

                command = new MySqlCommand(
                    queryString,
                    connection
                    );

                queryAction?.Invoke(command);

                if (query)
                {
                    reader = command.ExecuteReader();

                    while (reader.Read())
                    {
                        resultAction?.Invoke(reader);
                    }
                }
                else
                {
                    command.ExecuteNonQuery();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            finally
            {
                reader?.Dispose();
                command?.Dispose();
                connection?.Dispose();

                try
                {
                    postDelegate?.DynamicInvoke();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }
        }
예제 #20
0
            public void HasProperModuleParameters()
            {
                var queryAction = new QueryAction();

                queryAction.AddQuery(new AllPagesListQuery());
                queryAction.AddQuery(new AllUsersListQuery());
                queryAction.AddQuery(new SiteInfoMetaQuery());

                var parameters = queryAction.BuildParameterList();

                Assert.Equal(parameters["list"], "allpages|allusers");
                Assert.Equal(parameters["meta"], "siteinfo");
                Assert.False(parameters.ContainsKey("prop"));
            }
예제 #21
0
        public override void onQueryAction(QueryAction queryAction)
        {
            if (_groupId == -1)
            {
                return;
            }

            _isLastActionClick = false;
            _currentDwellTime  = queryAction.time;
            for (int i = 0; i < queryAction.nUrls; i++)
            {
                _occurences[_groupId][queryAction.urls[i]]++;
            }
        }
예제 #22
0
 public override void onQueryAction(QueryAction queryAction)
 {
     if (queryAction.type == TestQuery)
     {
         //swap for 50% of data
         if (_random.Next(100) < 67)
         {
             var type = _swapTypes[_random.Next(_swapTypes.Length)];
             int p    = queryAction.urls[type.Item1];
             queryAction.urls[type.Item1] = queryAction.urls[type.Item2];
             queryAction.urls[type.Item2] = p;
         }
         for (int i = 0; i < queryAction.nUrls - 1; i++)
         {
             _writer.WriteLine(_sessionId + "," + queryAction.urls[i]);
         }
     }
 }
        private IList <T> Query <T>(QueryAction <T> executeAction, Action <Exception> notifyAction)
        {
            IList <T> result = new List <T>();

            if (ExceptionHandled)
            {
                try
                {
                    result = executeAction.Invoke();
                }
                catch (Exception ex)
                {
                    notifyAction.Invoke(ex);
                }
            }
            else
            {
                result = executeAction.Invoke();
                notifyAction.Invoke(null);
            }
            return(result);
        }
예제 #24
0
        public override void onQueryAction(QueryAction queryAction)
        {
            for (int i = queryAction.nUrls - 1; i >= 0; i--)
            {
                if (!currentDomains.Add(queryAction.domains[i]))
                {
                    continue;
                }

                if (!domainsTerms.ContainsKey(queryAction.domains[i]))
                {
                    domainsTerms.Add(queryAction.domains[i], new BinarySearchSet <int>(Comparer <int> .Default));
                }

                BinarySearchSet <int> domainSet = domainsTerms[queryAction.domains[i]];

                for (int term = queryAction.nTerms - 1; term >= 0; term--)
                {
                    domainSet.Add(queryAction.terms[term]);
                }
            }

            currentDomains.Clear();
        }
예제 #25
0
 public QueryService(ConfigService configService, RegistryService registryService, ClientFactory clientFactory, UnknownAction unknownAction, DescribeAction describeAction, CommandAction commandAction, QueryAction queryAction)
 {
     this.config         = configService ?? throw new ArgumentNullException(nameof(configService));
     this.registry       = registryService ?? throw new ArgumentNullException(nameof(registryService));
     this.clients        = clientFactory ?? throw new ArgumentNullException(nameof(clientFactory));
     this.unknownAction  = unknownAction ?? throw new ArgumentNullException(nameof(unknownAction));
     this.describeAction = describeAction ?? throw new ArgumentNullException(nameof(describeAction));
     this.commandAction  = commandAction ?? throw new ArgumentNullException(nameof(commandAction));
     this.queryAction    = queryAction ?? throw new ArgumentNullException(nameof(queryAction));
 }
예제 #26
0
        /// <summary>
        /// Recursive function - save control events
        /// </summary>
        /// <param name="currentControl"></param>
        /// <param name="db"></param>
        /// <param name="transaction"></param>
        /// <returns></returns>
        private void SaveControlEvents(Dictionary <int, OperandInstance> controlIDuniqueIDDictionary, ControlInstance currentControl, WebBuilderEFContext db, DbContextTransaction transaction)
        {
            if (currentControl == null)
            {
                return;
            }

            // Save all the control properties
            if (currentControl.Events != null)
            {
                foreach (ControlEventInstance currentEvent in currentControl.Events)
                {
                    currentEvent.Event.ControlID = currentControl.Control.ControlID;

                    // Event actions
                    if (currentEvent.EventActions != null && currentEvent.EventActions.Count > 0)
                    {
                        db.Events.Add(currentEvent.Event);
                        db.SaveChanges();

                        foreach (ControlEventActionInstance currentEventAction in currentEvent.EventActions)
                        {
                            currentEventAction.EventAction.EventID = currentEvent.Event.EventID;
                            db.EventActions.Add(currentEventAction.EventAction);
                            db.SaveChanges();

                            int actionID = currentEventAction.EventAction.ActionID;
                            switch (currentEventAction.ActionTypeID)
                            {
                            // Client action
                            case 1:
                                if (currentEventAction.ClientAction != null)
                                {
                                    currentEventAction.ClientAction.ActionID  = actionID;
                                    currentEventAction.ClientAction.ControlID = controlIDuniqueIDDictionary[currentEventAction.ClientAction.ControlUniqueID].ObjectID;
                                    db.ClientActions.Add(currentEventAction.ClientAction);
                                    db.SaveChanges();
                                }
                                break;

                            case 2:
                                if (currentEventAction.OpenFormAction != null)
                                {
                                    currentEventAction.OpenFormAction.OpenFormAction.ActionID = actionID;
                                    db.OpenFormActions.Add(currentEventAction.OpenFormAction.OpenFormAction);
                                    db.SaveChanges();

                                    if (currentEventAction.OpenFormAction.OpenFormActionParameters != null)
                                    {
                                        foreach (OpenFormActionParameter parameter in currentEventAction.OpenFormAction.OpenFormActionParameters)
                                        {
                                            parameter.OpenFormActionID = actionID;
                                            parameter.OperandIDValue   = controlIDuniqueIDDictionary[parameter.OperandUniqueID].OperandID;
                                            db.OpenFormActionParameters.Add(parameter);
                                            db.SaveChanges();
                                        }
                                    }
                                }
                                break;

                            case 3:
                                if (currentEventAction.PredicateAction != null)
                                {
                                    PredicateAction predicateAction = currentEventAction.PredicateAction.PredicateAction;
                                    predicateAction.ActionID        = actionID;
                                    predicateAction.OperandIDFirst  = controlIDuniqueIDDictionary[predicateAction.FirstOperandUniqueID].OperandID;
                                    predicateAction.OperandIDSecond = controlIDuniqueIDDictionary[predicateAction.SecondOperandUniqueID].OperandID;
                                    db.PredicateActions.Add(predicateAction);
                                    db.SaveChanges();
                                }
                                break;

                            case 5:
                                if (currentEventAction.QueryType != null)
                                {
                                    // Query Type
                                    db.QueryTypes.Add(currentEventAction.QueryType.QueryType);
                                    db.SaveChanges();

                                    // Query Action
                                    QueryAction queryAction = new QueryAction()
                                    {
                                        QueryTypeID = currentEventAction.QueryType.QueryType.QueryTypeID,
                                        ActionID    = actionID
                                    };
                                    db.QueryActions.Add(queryAction);
                                    db.SaveChanges();

                                    // Query Type Tables
                                    if (currentEventAction.QueryType.QueryTypeTables != null)
                                    {
                                        foreach (QueryTypeTableInstance queryTypeTable in currentEventAction.QueryType.QueryTypeTables)
                                        {
                                            queryTypeTable.QueryTypeTable.QueryTypeID = currentEventAction.QueryType.QueryType.QueryTypeID;
                                            db.QueryTypeTables.Add(queryTypeTable.QueryTypeTable);
                                            db.SaveChanges();
                                        }
                                    }

                                    // Query Type Column
                                    if (currentEventAction.QueryType.QueryTypeColumns != null)
                                    {
                                        foreach (QueryTypeColumnInstance queryTypeColumn in currentEventAction.QueryType.QueryTypeColumns)
                                        {
                                            queryTypeColumn.QueryTypeColumn.QueryTypeID = currentEventAction.QueryType.QueryType.QueryTypeID;
                                            db.QueryTypeColumns.Add(queryTypeColumn.QueryTypeColumn);
                                            db.SaveChanges();
                                        }
                                    }

                                    // QueryTypeIn
                                    if (currentEventAction.QueryType.QueryTypeIns != null)
                                    {
                                        foreach (QueryTypeInInstance queryTypeIn in currentEventAction.QueryType.QueryTypeIns)
                                        {
                                            queryTypeIn.QueryTypeIn.QueryTypeID = currentEventAction.QueryType.QueryType.QueryTypeID;
                                            db.QueryTypeIns.Add(queryTypeIn.QueryTypeIn);
                                            db.SaveChanges();

                                            QueryActionIn queryActionIn = new QueryActionIn()
                                            {
                                                QueryActionID  = actionID,
                                                QueryTypeInID  = queryTypeIn.QueryTypeIn.QueryTypeInID,
                                                OperandIDValue = controlIDuniqueIDDictionary[queryTypeIn.QueryTypeIn.UniqueID].OperandID
                                            };
                                            db.QueryActionIns.Add(queryActionIn);
                                            db.SaveChanges();
                                        }
                                    }

                                    // Query Type Out
                                    if (currentEventAction.QueryType.QueryTypeOuts != null)
                                    {
                                        foreach (QueryTypeOutInstance queryTypeOut in currentEventAction.QueryType.QueryTypeOuts)
                                        {
                                            queryTypeOut.QueryTypeOut.QueryTypeID = currentEventAction.QueryType.QueryType.QueryTypeID;
                                            db.QueryTypeOuts.Add(queryTypeOut.QueryTypeOut);
                                            db.SaveChanges();

                                            QueryActionOut queryActionOut = new QueryActionOut()
                                            {
                                                QueryActionID  = actionID,
                                                QueryTypeOutID = queryTypeOut.QueryTypeOut.QueryTypeOutID,
                                                OperandIDValue = controlIDuniqueIDDictionary[queryTypeOut.QueryTypeOut.UniqueID].OperandID
                                            };
                                            db.QueryActionOuts.Add(queryActionOut);
                                            db.SaveChanges();
                                        }
                                    }
                                }
                                break;
                            }
                        }
                    }
                }
            }

            if (currentControl.ChildControls != null)
            {
                foreach (ControlInstance childControl in currentControl.ChildControls)
                {
                    SaveControlEvents(controlIDuniqueIDDictionary, childControl, db, transaction);
                }
            }
        }
        public static T ParseXml <T>(T structure, XElement actionQuery, QueryAction queryAction)
        {
            Type type       = typeof(T);
            T    obj        = default(T);
            var  properties = type.GetProperties();


            switch (queryAction)
            {
            case QueryAction.SubmitActiveOrder:
            {
                SubmitOrderStructure template = new SubmitOrderStructure();
                SubmitOrderStructure results  = null;
                var result = actionQuery.Elements("SubmitOrder")
                             .Elements()
                             .ToList();
                results = GetObject <SubmitOrderStructure>(template, result);
                obj     = (T)Convert.ChangeType(results, type);
                break;
            }

            case QueryAction.SubmitBulkOrder:
            {
                SubmitOrderStructure template = new SubmitOrderStructure();
                SubmitOrderStructure results  = null;
                var result = actionQuery.Elements()
                             .ToList();

                results = GetObject <SubmitOrderStructure>(template, result);
                obj     = (T)Convert.ChangeType(results, type);

                break;
            }

            case QueryAction.CancelAllOrders:
            {
                CancelAllOrdersStructure template = new CancelAllOrdersStructure();
                CancelAllOrdersStructure results  = null;
                var result = actionQuery.Elements("CancelAllOrders")
                             .Elements()
                             .ToList();
                results = GetObject <CancelAllOrdersStructure>(template, result);
                obj     = (T)Convert.ChangeType(results, type);
                break;
            }

            case QueryAction.SuspendActiveOrder:
            {
                CancelOrSuspendOrderStructure template = new CancelOrSuspendOrderStructure();
                CancelOrSuspendOrderStructure results  = null;
                var result = actionQuery.Elements("SuspendActiveOrder")
                             .Elements()
                             .ToList();
                results = GetObject <CancelOrSuspendOrderStructure>(template, result);
                obj     = (T)Convert.ChangeType(results, type);
                break;
            }

            case QueryAction.DeleteActiveOrder:
            {
                DeleteOrderStructure template = new DeleteOrderStructure();
                DeleteOrderStructure results  = null;
                var result = actionQuery.Elements("DeleteActiveOrder")
                             .Elements()
                             .ToList();
                results = GetObject <DeleteOrderStructure>(template, result);
                obj     = (T)Convert.ChangeType(results, type);
                break;
            }

            case QueryAction.EditSuspendedOrder:
            {
                EditSuspendedOrderStructure template = new EditSuspendedOrderStructure();
                EditSuspendedOrderStructure results  = null;
                var result = actionQuery.Elements("EditSuspendedOrder")
                             .Elements()
                             .ToList();
                results = GetObject <EditSuspendedOrderStructure>(template, result);
                obj     = (T)Convert.ChangeType(results, type);
                break;
            }

            case QueryAction.ReduceOrderQuantity:
            {
                ReduceOrderStructure template = new ReduceOrderStructure();
                ReduceOrderStructure results  = null;
                var result = actionQuery.Elements("ReduceOrderQuantity")
                             .Elements()
                             .ToList();
                results = GetObject <ReduceOrderStructure>(template, result);
                obj     = (T)Convert.ChangeType(results, type);
                break;
            }

            case QueryAction.InstrumentSubscription:
            {
                List <InstrumentCodeStructure> instrumentCodeStructureList = new List <InstrumentCodeStructure>();

                InstrumentSubscriptionStructure template = new InstrumentSubscriptionStructure();
                InstrumentSubscriptionStructure instrumentSubscriptionStructure = null;

                var action = actionQuery.Elements("InstrumentSubscription")
                             .Elements()
                             .ToList();

                var _instrumentcode = actionQuery.Elements("InstrumentSubscription").Elements("Instruments")
                                      .Elements()
                                      .ToList();

                foreach (var element in _instrumentcode)
                {
                    InstrumentCodeStructure instrumentCodeStructure = new InstrumentCodeStructure();
                    instrumentCodeStructure.InstrumentCode = element.Value;
                    instrumentCodeStructureList.Add(instrumentCodeStructure);
                }

                instrumentSubscriptionStructure = GetObject <InstrumentSubscriptionStructure>(template, action);
                instrumentSubscriptionStructure.InstrumentCodes = instrumentCodeStructureList;
                obj = (T)Convert.ChangeType(instrumentSubscriptionStructure, type);
                break;
            }

            case QueryAction.IndicesSubscription:
            {
                IndicesSubscriptionStructure template = new IndicesSubscriptionStructure();
                IndicesSubscriptionStructure results  = null;
                var result = actionQuery.Elements("IndicesSubscription")
                             .Elements()
                             .ToList();
                results = GetObject <IndicesSubscriptionStructure>(template, result);
                obj     = (T)Convert.ChangeType(results, type);
                break;
            }

            case QueryAction.DeleteSuspendedOrder:
            {
                break;
            }

            case QueryAction.ResubmitSuspendedOrder:
            {
                ResubmitOrderStructure template = new ResubmitOrderStructure();
                ResubmitOrderStructure results  = null;
                var result = actionQuery.Elements("ResubmitSuspendedOrder")
                             .Elements()
                             .ToList();
                results = GetObject <ResubmitOrderStructure>(template, result);
                obj     = (T)Convert.ChangeType(results, type);
                break;
            }

            case QueryAction.EditActiveOrder:
            {
                EditActiveOrderStructure template = new EditActiveOrderStructure();
                EditActiveOrderStructure results  = null;
                var result = actionQuery.Elements("EditActiveOrder")
                             .Elements()
                             .ToList();
                results = GetObject <EditActiveOrderStructure>(template, result);
                obj     = (T)Convert.ChangeType(results, type);
                break;
            }

            case QueryAction.DataDownload:
            {
                DataDownloadStructure template = new DataDownloadStructure();
                DataDownloadStructure results  = null;
                var result = actionQuery.Elements("DataDownload")
                             .Elements()
                             .ToList();
                results = GetObject <DataDownloadStructure>(template, result);
                obj     = (T)Convert.ChangeType(results, type);
                break;
            }

            default:
            {
                break;
            }
            }

            return(obj);
        }
예제 #28
0
 public void Execute(string queryString, QueryAction queryAction, Delegate postDelegate)
 {
     _Query(queryString, queryAction, null, postDelegate, false);
 }
예제 #29
0
 public override void onQueryAction(QueryAction queryAction)
 {
     queryAction.WriteToStream(_fileParts[currentDay]);
 }
예제 #30
0
 public void Query(string queryString, QueryAction queryAction, ResultAction resultAction, Delegate postDelegate)
 {
     _Query(queryString, queryAction, resultAction, postDelegate, true);
 }
예제 #31
0
파일: Query.cs 프로젝트: 2sky/Vidyano.Core
        internal Query(Client client, JObject model, PersistentObject parent = null, bool asLookup = false)
            : base(client, model)
        {
            Parent   = parent;
            AsLookup = asLookup;

            var po = (JObject)model["persistentObject"];

            if (po != null)
            {
                PersistentObject = client.Hooks.OnConstruct(client, po);
            }

            if (model.TryGetValue("columns", out var columnsToken))
            {
                var columns = (JArray)columnsToken;
                Columns = columns.Select(jCol => new QueryColumn((JObject)jCol, this)).ToArray();
            }
            else
            {
                Columns = new QueryColumn[0];
            }

            if (model.TryGetValue("actions", out var actionsToken))
            {
                var actions = ActionBase.GetActions(client, actionsToken, parent, this);
                CanFilter = actions.Any(a => a.Name == "Filter");

                Actions       = actions.Where(a => !a.IsPinned).OfType <QueryAction>().ToArray();
                PinnedActions = actions.Where(a => a.IsPinned).OfType <QueryAction>().ToArray();
            }
            else
            {
                PinnedActions = Actions = new QueryAction[0];
            }

            var newAction = Actions.OfType <New>().FirstOrDefault();
            var addAction = Actions.FirstOrDefault(a => a.Name == "AddReference");

            if (newAction != null && addAction != null)
            {
                Actions = EnumerableEx.Return(new AddAndNewAction(newAction, addAction)).Concat(Actions).ToArray();
            }

            var result = (JObject)model["result"];

            if (result != null)
            {
                SetResult(result);
                model.Remove("result");
            }

            if (model["isZoomedIn"] == null)
            {
                IsZoomedIn = true;
            }

            SelectedItems.CollectionChanged += SelectedItems_CollectionChanged;
            HasTextSearch   = !string.IsNullOrEmpty(TextSearch);
            HasNotification = !string.IsNullOrWhiteSpace(Notification);

            client.Hooks.OnConstruct(this);
        }
예제 #32
0
        private QueryActionInstance _GetQueryInstanceByQuery(WebBuilderEFContext db, EventAction action, QueryAction query)
        {
            List <QueryActionInInstance>   ins   = this._GetQueryIns(db, query.ActionID);
            List <QueryActionOutInstance>  outs  = this._GetQueryOuts(db, query.ActionID);
            List <QueryActionPartInstance> parts = this._GetQueryParts(db, query.ActionID);

            QueryActionInstance queryInstance = new QueryActionInstance(action, query, ins, outs, parts);

            return(queryInstance);
        }
예제 #33
0
 public virtual void onQueryAction(QueryAction queryAction)
 {
 }
예제 #34
0
파일: Bot.cs 프로젝트: JohnSutray/BotCore
 private void UpdateLastExecutedQuery(
     IServiceProvider provider, QueryAction action, IBotInputChat chat
     ) => provider.GetRequiredService <IBotChatService>().UpdateLastExecutedQuery(chat, action.Metadata.Template);