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); }; } }
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); }
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)); }
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 + "]新建成功"); }