コード例 #1
0
        private void CheckNull()
        {
            if (m_datatableNames == null)
            {
                m_datatableNames = new ReorderableList(DataTableEditorConfig.GetConfig().DataTableNamesList, typeof(DataTableName), true, false, true, true);
                m_datatableNames.elementHeight       = 40;
                m_datatableNames.drawElementCallback = (rectt, index, isActive, isFocused) =>
                {
                    DataTableEditorConfig.GetConfig().DataTableNamesList[index].Name = EditorGUI.TextField(rectt, "Data Table Name", DataTableEditorConfig.GetConfig().DataTableNamesList[index].Name);

                    rectt.position = new Vector2(20, rectt.y + 20);
                    rectt.size     = new Vector2(rectt.width, 20);

                    if (DataTableEditorConfig.GetConfig().DataTableNamesList[index].IsOn)
                    {
                        DataTableEditorConfig.GetConfig().DataTableNamesList[index].IsOn = EditorGUI.ToggleLeft(rectt, "On", DataTableEditorConfig.GetConfig().DataTableNamesList[index].IsOn);
                    }
                    else
                    {
                        DataTableEditorConfig.GetConfig().DataTableNamesList[index].IsOn = EditorGUI.ToggleLeft(rectt, "Off", DataTableEditorConfig.GetConfig().DataTableNamesList[index].IsOn);
                    }
                };

                m_datatableNames.drawHeaderCallback = (rectt) =>
                                                      EditorGUI.LabelField(rectt, "Data Table");

                m_datatableNames.onAddCallback = (list) =>
                {
                    DataTableName dataTable = new DataTableName();
                    dataTable.IsOn = false;
                    dataTable.Name = "";
                    DataTableEditorConfig.GetConfig().DataTableNamesList.Add(dataTable);
                };
            }
        }
コード例 #2
0
        public async Task <VkGetStatisticsResponseModel> GetStatistics(
            DataTableName table,
            PeriodItem period,
            long accountId,
            string accessToken,
            bool onlyActive)
        {
            VkGetStatisticsResponseModel statistics;

            switch (table)
            {
            case DataTableName.Client:
                var clients = await GetAllClients(accountId, accessToken);

                break;

            case DataTableName.Ad:
                var ads = await GetAllAds(accountId, accessToken, onlyActive);

                statistics = await GetStatics(table, period, accountId, accessToken, ads.response);

                statistics.response.ForEach(s => s.name = ads.response.FirstOrDefault(a => a.id == s.id)?.name);
                return(statistics);

            case DataTableName.Campaign:
                var comps = await GetAllCampaigns(accountId, accessToken, onlyActive);

                statistics = await GetStatics(table, period, accountId, accessToken, comps.response);

                statistics.response.ForEach(s => s.name = comps.response.FirstOrDefault(a => a.id == s.id)?.name);
                return(statistics);

            default:
                statistics = await GetStatics(
                    DataTableName.Office,
                    period,
                    accountId,
                    accessToken,
                    new List <BaseTableItem> {
                    new BaseTableItem {
                        id = accountId.ToString()
                    }
                });

                statistics.response[0].name = "Рекламный кабинет";
                return(statistics);
            }

            return(null);
        }
コード例 #3
0
        private async Task <VkGetStatisticsResponseModel> GetStatics(
            DataTableName table,
            PeriodItem period,
            long accountId,
            string accessToken,
            List <BaseTableItem> items)
        {
            var parameters = new Dictionary <string, string>
            {
                { "account_id", accountId.ToString() },
                { "ids_type", table.ToString().ToLower() },
                { "ids", string.Join(",", items.Select(i => i.id)) },
                { "period", period.ToString().ToLower() },
                { "date_from", GenerateDateFrom(period) },
                { "date_to", GenerateDateFrom(period, true) },
            };

            return(await _requestHelper.MakeRequest <VkGetStatisticsResponseModel, string>(
                       "ads.getStatistics",
                       parameters,
                       accessToken));
        }
コード例 #4
0
        public MySqlPipline()
        {
            var mySqlConnection = new MySqlConnection(Crawler.MysqlConfig.ConString);

            try
            {
                mySqlConnection.Open();
            }
            catch (Exception e)
            {
                throw e;
            }


            try
            {
                mySqlConnection.ChangeDatabase(DatabaseName);
            }
            catch
            {
                Logger.Info("更改数据库到[" + DatabaseName + "]失败,开始新建数据库");
                try
                {
                    var c = new MySqlCommand("CREATE DATABASE " + DatabaseName, mySqlConnection);
                    c.ExecuteNonQuery();
                }
                catch
                {
                    throw new Exception("无法创建数据库");
                }
                mySqlConnection.ChangeDatabase(DatabaseName);
                Logger.Info("自动新建数据库完成:" + DatabaseName);
            }
            var cmd       = new MySqlCommand("show tables", mySqlConnection);
            var tabels    = cmd.ExecuteReader();
            var haveTable = false;

            while (tabels.Read())
            {
                var tablename = tabels.GetString(0);
                if (tablename.ToLower() != DataTableName.ToLower())
                {
                    continue;
                }
                haveTable = true;
                break;
            }
            tabels.Close();
            if (haveTable)
            {
                return;
            }
            try
            {
                Logger.Info("没有表[" + DataTableName + "]新建中...");
                if (Config.Fields == null || Config.Fields.Length == 0)
                {
                    Logger.Warn("没有抽取项,没有新建表");
                    return;
                }
                var cols = Config.Fields.Aggregate(string.Empty, (current, field) => current + $"{field.Name} {field.SqlType} ,");

                cmd = new MySqlCommand($"CREATE TABLE {DataTableName} (id INT NOT NULL AUTO_INCREMENT,timestamp TIMESTAMP,cname text,{cols}  PRIMARY KEY (id))", mySqlConnection);
                cmd.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                throw new Exception("表[" + DataTableName + "]新建失败:\r\n" + e);
            }

            Logger.Info("表[" + DataTableName + "]新建成功");
        }