コード例 #1
0
 public void Create(CpuMetric item)
 {
     using (var connection = new SQLiteConnection(ConnectionString))
     {
         connection.Execute("INSERT INTO cpumetrics(Value, Time) VALUES(@value, @time)",
                            new { value = item.Value, time = item.Time });
     }
 }
コード例 #2
0
        // инжектируем соединение с базой данных в наш репозиторий через конструктор
        public void Create(CpuMetric item)
        {
            using var connection = new SQLiteConnection(Startup.ConnectionString);

            connection.Execute(string.Concat("INSERT INTO ", MetricsType.metricsList[(int)MetricsTypeEnum.CpuMetrics], "(value, time) VALUES(@value, @time)"),
                               new
            {
                value = item.Value,
                time  = item.Time.ToUnixTimeSeconds()
            });;
        }
コード例 #3
0
 public void Update(CpuMetric item)
 {
     using var connection = new SQLiteConnection(_connection);
     connection.Execute("UPDATE cpumetrics SET value = @value, time = @time WHERE id = @id",
                        new
     {
         value = item.Value,
         time  = item.Time,
         id    = item.Id
     });
 }
コード例 #4
0
        public void Create(CpuMetric item)
        {
            var connectionString = ConnectionManager.CreateOpenedConnection();

            connectionString.Execute("INSERT INTO CpuMetrics(value, Time) VALUES(@Value, @Time)",
                                     new
            {
                item.Value,
                item.Time
            });
        }
コード例 #5
0
 public void Update(CpuMetric item)
 {
     using var connection = new SQLiteConnection(Startup.ConnectionString);
     connection.Execute(string.Concat("UPDATE ", MetricsType.metricsList[(int)MetricsTypeEnum.CpuMetrics], " SET value = @value, time = @time WHERE id=@id"),
                        new
     {
         id    = item.Id,
         value = item.Value,
         time  = item.Time.ToUnixTimeSeconds()
     });
 }
コード例 #6
0
 public void Create(CpuMetric item)
 {
     using (var connection = new SQLiteConnection(SqlConnect.connectionString))
     {
         connection.Execute("INSERT INTO cpumetrics(value, time) VALUES(@value, @time)",
                            new
         {
             value = item.Value,
             time  = item.Time.ToUnixTimeSeconds()
         });
     }
 }
コード例 #7
0
 public void Create(CpuMetric item)
 {
     using var connection = new SQLiteConnection(DataBaseConnectionSettings.ConnectionString);
     {
         connection.Execute("INSERT INTO cpumetrics(value, time) VALUES(@value, @time)",
                            new
         {
             value = item.Value,
             time  = item.Time.ToUniversalTime().ToUnixTimeSeconds()
         });
     }
 }
コード例 #8
0
        public void Update(CpuMetric item)
        {
            using var cmd = new SQLiteCommand(connection);
            // прописываем в команду SQL запрос на обновление данных
            cmd.CommandText = "UPDATE cpumetrics SET value = @value, time = @time WHERE id=@id;";
            cmd.Parameters.AddWithValue("@id", item.Id);
            cmd.Parameters.AddWithValue("@value", item.Value);
            cmd.Parameters.AddWithValue("@time", item.Time.TotalSeconds);
            cmd.Prepare();

            cmd.ExecuteNonQuery();
        }
コード例 #9
0
 public void Update(CpuMetric item)
 {
     using (var connection = new SQLiteConnection(_connectionString))
     {
         connection.Execute("UPDATE " + _tablename + " SET value = @value, time = @time WHERE id = @id",
                            new
         {
             value = item.Value,
             time  = item.Time,
             id    = item.Id
         });
     }
 }
コード例 #10
0
 public void Create(CpuMetric item)
 {
     using (var connection = new SQLiteConnection(_connectionString))
     {
         connection.Execute("INSERT INTO " + _tablename + "(agentid, value, time) VALUES(@agentid, @value, @time)",
                            new
         {
             agentid = item.AgentId,
             value   = item.Value,
             time    = item.Time
         });
     }
 }
コード例 #11
0
        public void Create(CpuMetric item)
        {
            using var connection = new SQLiteConnection(_connectionString);
            //  запрос на вставку данных с плейсхолдерами для параметров
            connection.Execute("INSERT INTO cpumetrics(value, time) VALUES(@value, @time)",
                               // анонимный объект с параметрами запроса
                               new {
                // value подставится на место "@value" в строке запроса
                // значение запишется из поля Value объекта item
                value = item.Value,

                // записываем в поле time количество секунд
                time = item.Time.ToUnixTimeSeconds()
            });
        }
コード例 #12
0
 /// <summary>
 /// Записывает метрику в базу данных
 /// </summary>
 /// <param name="metric">Метрика для записи</param>
 public void Create(CpuMetric metric)
 {
     using (var connection = new SQLiteConnection(mySql.ConnectionString))
     {
         connection.ExecuteAsync(
             $"INSERT INTO {mySql[Tables.CpuMetric]}" +
             $"({mySql[Columns.Value]}, {mySql[Columns.Time]})" +
             $"VALUES (@value, @time);",
             new
         {
             value = metric.Value,
             time  = metric.Time.ToUnixTimeSeconds(),
         });
     }
 }
コード例 #13
0
ファイル: CpuCommand.cs プロジェクト: nhh/cstat
        public void Execute()
        {
            var startTime     = DateTime.UtcNow;
            var startCpuUsage = Process.GetCurrentProcess().TotalProcessorTime;

            var endTime = DateTime.UtcNow;

            var endCpuUsage = Process.GetCurrentProcess().TotalProcessorTime;

            var cpuUsedMs     = (endCpuUsage - startCpuUsage).TotalMilliseconds;
            var totalMsPassed = (endTime - startTime).TotalMilliseconds;
            var cpuUsageTotal = cpuUsedMs / (Environment.ProcessorCount * totalMsPassed);

            var cpuStatistic = new CpuMetric(cpuUsageTotal, Environment.ProcessorCount);

            Console.WriteLine(cpuStatistic.ToString());
        }
コード例 #14
0
 public void Create(CpuMetric item)
 {
     using var connection = new SQLiteConnection(_connectionString);
     try
     {
         connection.Execute("INSERT INTO cpumetrics(value, time, agentId) VALUES(@value, @time, @agentId)",
                            new
         {
             value   = item.Value,
             time    = item.Time,
             agentId = item.AgentId
         });
     }
     catch (Exception ex)
     {
         _logger.LogError(ex.Message);
     }
 }
コード例 #15
0
        public void Create(CpuMetric item)
        {
            using (var connection = new SQLiteConnection(ConnectionString))
            {
                connection.Open();
                using (var cmd = new SQLiteCommand(connection))
                {
                    cmd.CommandText = "INSERT INTO cpumetrics(value, time) VALUES(@value, @time)";

                    cmd.Parameters.AddWithValue("@value", item.Value);
                    cmd.Parameters.AddWithValue("@time", item.Time.ToUnixTimeSeconds());

                    cmd.Prepare();

                    cmd.ExecuteNonQuery();
                }
            }
        }
コード例 #16
0
        public void Create(CpuMetric item)
        {
            // создаем команду
            using var cmd = new SQLiteCommand(connection);
            // прописываем в команду SQL запрос на вставку данных
            cmd.CommandText = "INSERT INTO cpumetrics(value, time) VALUES(@value, @time)";

            // добавляем параметры в запрос из нашего объекта
            cmd.Parameters.AddWithValue("@value", item.Value);

            // в таблице будем хранить время в секундах, потому преобразуем перед записью в секунды
            // через свойство
            cmd.Parameters.AddWithValue("@time", item.Time.TotalSeconds); //
            // подготовка команды к выполнению
            cmd.Prepare();

            // выполнение команды
            cmd.ExecuteNonQuery();
        }
コード例 #17
0
        public AllCpuMetrics(ILogger <AllCpuMetrics> logger)
        {
            _logger = logger;
            AgentId = 1;

            Metrics = new List <CpuMetric>();

            //Заполнение списка метрик пустыми значениями
            var newMetric = new CpuMetric()
            {
                Time = DateTimeOffset.UtcNow, Value = 0
            };

            for (int i = 0; i < Amount; i++)
            {
                Metrics.Add(newMetric);
                newMetric.Time -= TimeSpan.FromSeconds(5);
            }
        }
コード例 #18
0
        public void GetCpuMetrics_returnsData()
        {
            DateTime now          = DateTime.Now;
            var      expectedItem = new CpuMetric {
                Time = now, Id = 1, Value = 10
            };

            var expected = new List <CpuMetric>()
            {
                expectedItem
            };

            _repositoryMock.Setup(repository => repository.GetByTimePeriod(DateTime.MinValue, DateTime.MaxValue))
            .Returns(expected);

            var actual = cpuController.GetByTimePerion(DateTime.MinValue, DateTime.MaxValue);

            Assert.NotNull(actual);

            if (actual is OkObjectResult result)
            {
                Assert.IsType <List <CpuMetricDto> >(result.Value);
            }
        }
コード例 #19
0
 public void Update(CpuMetric item)
 {
     throw new NotImplementedException();
 }
コード例 #20
0
        public IActionResult TryToInsertAndRead()
        {
            // Создаем строку подключения в виде базы данных в оперативной памяти
            string connectionString = "Data Source=:memory:";

            // создаем соединение с базой данных
            using (var connection = new SQLiteConnection(connectionString))
            {
                // открываем соединение
                connection.Open();

                // создаем объект через который будут выполняться команды к базе данных
                using (var command = new SQLiteCommand(connection))
                {
                    // задаем новый текст команды для выполнения
                    // удаляем таблицу с метриками если она существует в базе данных
                    command.CommandText = "DROP TABLE IF EXISTS cpumetrics";
                    // отправляем запрос в базу данных
                    command.ExecuteNonQuery();

                    // создаем таблицу с метриками
                    command.CommandText = @"CREATE TABLE cpumetrics(id INTEGER PRIMARY KEY,
                    value INT, time INT)";
                    command.ExecuteNonQuery();

                    // создаем запрос на вставку данных
                    command.CommandText = "INSERT INTO cpumetrics(value, time) VALUES(10,1)";
                    command.ExecuteNonQuery();
                    command.CommandText = "INSERT INTO cpumetrics(value, time) VALUES(50,2)";
                    command.ExecuteNonQuery();
                    command.CommandText = "INSERT INTO cpumetrics(value, time) VALUES(75,4)";
                    command.ExecuteNonQuery();
                    command.CommandText = "INSERT INTO cpumetrics(value, time) VALUES(90,5)";
                    command.ExecuteNonQuery();

                    // создаем строку для выборки данных из базы
                    // LIMIT 3 обозначает, что мы достанем только 3 записи
                    string readQuery = "SELECT * FROM cpumetrics LIMIT 3";

                    // создаем массив, в который запишем объекты с данными из базы данных
                    var returnArray = new CpuMetric[3];
                    // изменяем текст команды на наш запрос чтения
                    command.CommandText = readQuery;

                    // создаем читалку из базы данных
                    using (SQLiteDataReader reader = command.ExecuteReader())
                    {
                        // счетчик для того, чтобы записать объект в правильное место в массиве
                        var counter = 0;
                        // цикл будет выполняться до тех пор, пока есть что читать из базы данных
                        while (reader.Read())
                        {
                            // создаем объект и записываем его в массив
                            returnArray[counter] = new CpuMetric
                            {
                                Id    = reader.GetInt32(0), // читаем данные полученные из базы данных
                                Value = reader.GetInt32(1), // преобразуя к целочисленному типу
                                Time  = reader.GetInt64(2)
                            };
                            // увеличиваем значение счетчика
                            counter++;
                        }
                    }
                    // оборачиваем массив с данными в объект ответа и возвращаем пользователю
                    return(Ok(returnArray));
                }
            }
        }
コード例 #21
0
        public IActionResult GetMetricById([FromRoute] int id)
        {
            CpuMetric metric = _repository.GetById(id);

            return(Ok(metric));
        }