//Json function logic codes for streaming data// private void fetchjson() { using (RuleDBEntities1 mde = new RuleDBEntities1()) { var dataFromTable = mde.Rules.ToList(); using (StreamReader r = new StreamReader("C://Users//ASIF AHMED//documents//visual studio 2015//Projects//RuleEngineApplication//RuleEngineApplication//signal.json")) { string json = r.ReadToEnd(); List <Item> items = JsonConvert.DeserializeObject <List <Item> >(json); //var uniqueData = from dataBaseData in dataFromTable // join jsonData in items // on new { A = dataBaseData.SignalId, B = dataBaseData.ValueType } equals new { A = jsonData.signal, B = jsonData.value_type } into details // from d in details // select new { dataBaseData.SignalId, dataBaseData.ValueType, dataBaseData.Condition, dataBaseData.Value }; //dataGridView1.DataSource = uniqueData.ToList(); List <matchItem> matListFinal = new List <matchItem>(); List <matchItem> unMatchListFinal = new List <matchItem>(); dataGridView1.DataSource = matListFinal.ToList(); foreach (var list in items) { var matchData = dataFromTable.Where(x => x.SignalID == list.signal && x.valuetype == list.value_type).ToList(); if (matchData.Count == 0) { unMatchListFinal.Add(new matchItem() { signal = list.signal, value_type = list.value_type, value = list.value }); dataGridView2.DataSource = unMatchListFinal; } foreach (var matList in matchData) { if (matList.valuetype == "String") { if (matList.condition == "=") { if (matList.value.Contains(list.value)) { matListFinal.Add(new matchItem() { signal = matList.SignalID, value_type = matList.valuetype, value = matList.value }); dataGridView1.DataSource = matListFinal; break; } else { unMatchListFinal.Add(new matchItem() { signal = matList.SignalID, value_type = matList.valuetype, value = matList.value }); dataGridView2.DataSource = unMatchListFinal; } } } else if (matList.valuetype == "Datetime") { var jsonValue = Convert.ToDateTime(list.value); var databaseValue = Convert.ToDateTime(matList.value); if (matList.condition == "=") { if (databaseValue == jsonValue) { matListFinal.Add(new matchItem() { signal = matList.SignalID, value_type = matList.valuetype, value = matList.value }); dataGridView1.DataSource = matListFinal; break; } else { unMatchListFinal.Add(new matchItem() { signal = matList.SignalID, value_type = matList.valuetype, value = matList.value }); dataGridView2.DataSource = unMatchListFinal; } } else if (matList.condition == ">") { if (databaseValue > jsonValue) { matListFinal.Add(new matchItem() { signal = matList.SignalID, value_type = matList.valuetype, value = matList.value }); dataGridView1.DataSource = matListFinal; break; } else { unMatchListFinal.Add(new matchItem() { signal = matList.SignalID, value_type = matList.valuetype, value = matList.value }); dataGridView2.DataSource = unMatchListFinal; } } else if (matList.condition == "<") { if (databaseValue < jsonValue) { matListFinal.Add(new matchItem() { signal = matList.SignalID, value_type = matList.valuetype, value = matList.value }); dataGridView1.DataSource = matListFinal; break; } else { unMatchListFinal.Add(new matchItem() { signal = matList.SignalID, value_type = matList.valuetype, value = matList.value }); dataGridView2.DataSource = unMatchListFinal; } } } else if (matList.valuetype == "Integer") { var jsonValue = Convert.ToDecimal(list.value); var databaseValue = Convert.ToDecimal(matList.value); if (matList.condition == "=") { if (databaseValue == jsonValue) { matListFinal.Add(new matchItem() { signal = matList.SignalID, value_type = matList.valuetype, value = matList.value }); dataGridView1.DataSource = matListFinal; break; } else { unMatchListFinal.Add(new matchItem() { signal = matList.SignalID, value_type = matList.valuetype, value = matList.value }); dataGridView2.DataSource = unMatchListFinal; } } else if (matList.condition == ">") { if (databaseValue > jsonValue) { matListFinal.Add(new matchItem() { signal = matList.SignalID, value_type = matList.valuetype, value = matList.value }); dataGridView1.DataSource = matListFinal; break; } else { unMatchListFinal.Add(new matchItem() { signal = matList.SignalID, value_type = matList.valuetype, value = matList.value }); dataGridView2.DataSource = unMatchListFinal; } } else if (matList.condition == "<") { if (databaseValue < jsonValue) { matListFinal.Add(new matchItem() { signal = matList.SignalID, value_type = matList.valuetype, value = matList.value }); dataGridView1.DataSource = matListFinal; break; } else { unMatchListFinal.Add(new matchItem() { signal = matList.SignalID, value_type = matList.valuetype, value = matList.value }); dataGridView2.DataSource = unMatchListFinal; } } } } } } } }
//Save button click event// private void btn_savedata_Click(object sender, EventArgs e) { if (txt_signal.Text != "") { signal = txt_signal.Text.Trim().ToUpper(); if (cb_valuetype.SelectedIndex > 0) { valuetype = cb_valuetype.SelectedItem.ToString(); switch (switchvalue) { case 1: if (txt_conditionvalue.Text != "") { stringvalue = txt_conditionvalue.Text.Trim(); } else { MessageBox.Show("Enter Condition Value!"); } break; case 2: stringvalue = dateTimePicker1.Value.ToString(); break; case 3: if (txt_conditionvalue.Text != "") { stringvalue = txt_conditionvalue.Text.Trim(); } else { MessageBox.Show("Enter Condition Value!"); } break; } if (radioButton1.Checked == true) { symbolvalue = "="; } else if (radioButton2.Checked == true) { symbolvalue = "!="; } else if (radioButton3.Checked == true) { symbolvalue = ">="; } else if (radioButton4.Checked == true) { symbolvalue = "<="; } else if (radioButton5.Checked == true) { symbolvalue = ">"; } else if (radioButton6.Checked == true) { symbolvalue = "<"; } else { MessageBox.Show("Select One Condition!"); } using (RuleDBEntities1 mde = new RuleDBEntities1()) { int Result = 0; Rule re = new Rule(); //Create Object re.SignalID = signal; re.valuetype = valuetype; re.condition = symbolvalue; re.value = stringvalue; mde.Rules.Add(re); Result = mde.SaveChanges(); if (Result > 0) { MessageBox.Show("Submitted Successfully."); } else { MessageBox.Show("Submission failed"); } } } else { MessageBox.Show("Select Value Type!"); } } else { MessageBox.Show("Enter Signal Name"); } }