Exemple #1
0
 //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");
            }
        }