-1
I’m mounting a monitoring system, I have a process class that gets a string NomeDoProcesso
, and a Dictionary<string,Float>Variavel
, in which the user enters the variable name in a textBox
, and a function calculates Float.
Process is an array within a Mongo document and Variable is an array within Process. Following some examples of code I’m doing as in the code below, but not saving in the bank.
///Classe que contém meus objetos
public class Processo
{
public string NomeProcesso;
public Dictionary<string, float> Variaveis;
public int QtdProcessadores;
public Processo()
{
Variaveis = new Dictionary<string, float>();
}
public void Monitorar()
{
if (Variaveis != null && Variaveis.Count > 0)
{
QtdProcessadores = Environment.ProcessorCount;
foreach (string variavel in Variaveis.Keys)
{
PerformanceCounter pc = new PerformanceCounter("Process", variavel, NomeProcesso, true);
pc.NextValue(); // Sempre primeiro valor é zero.
Thread.Sleep(100);
Variaveis[variavel] = pc.NextValue();
}
}
///Função para inserir dinamicamente as variáveis, preciso inserir o dictionary como array
/// os outros valores estão já estão sendo inseridos
public void InserirCfgMonitoramento(string nomeBD, string colecaoCfg, CfgMonitoramento cfgMonitoramento)
{
// Recupera coleção.
MongoCollection<BsonDocument> colecao = RecColecao1(nomeBD,colecaoCfg);
if (colecao != null)
{
// Seleciona configuração.
IMongoQuery selecao = Query.EQ("Estacao", cfgMonitoramento.Estacao);
MongoCursor cursor = colecao.FindAs(typeof(BsonDocument), selecao);
// Define nome da estação.
BsonDocument doc = new BsonDocument("Estacao", cfgMonitoramento.Estacao);
// Dados processo
if (cfgMonitoramento.Processos != null && cfgMonitoramento.Processos.Count > 0 )
{
List<General.Message.AgentQTS.Processo> processo = new List<General.Message.AgentQTS.Processo>();
List<BsonDocument> processosBD = new List<BsonDocument>();
BsonDocument docProcessos;
foreach (General.Message.AgentQTS.Processo proc in processo)
{
docProcessos = new BsonDocument("NomeProcesso", proc.NomeProcesso);
BsonArray variaveis = new BsonArray();
if (variaveis != null && variaveis.Count > 0)
{
foreach (KeyValuePair<string, float> variavel in proc.Variaveis)
variaveis.Add(Convert.ToString(variavel.Key));
}
docProcessos.Add("Variaveis",new BsonArray(variaveis));
docProcessos.Add("TmoMonProcesso", cfgMonitoramento.TmoMonProcessos);
docProcessos.Add("UltimoMonProcessos", DateTime.Now);
processosBD.Add(docProcessos);
}
doc.Add("Processo", new BsonArray(processosBD));
}
doc.Add("Habilitado", cfgMonitoramento.Habilitado);
colecao.Insert(doc);
}
else
throw new Exception(String.Format("Coleção {0} não encontrada!", colecaoCfg));
}
Hello, you had the opportunity to check the answer? What should I do if someone answers my question?
– tvdias
Hi, thanks for the help, I’m using. net 3.5 so I had to create Bsondocument manually, I couldn’t do otherwise.But I was able to solve my problem
– Matheus Andrade
Then add this information to the question and write an answer to indicate how it was resolved and mark the answer itself as accepted. So other people with the same problem can find the solution.
– tvdias