Пример #1
0
 void VisualizeStatsAboutEvent(CEvent Event)
 {
     //Кол-во трасс с выбранным событием
     int Count = 0;
     foreach (var Trace in NowView.Traces)
         if (Trace.Events.FindIndex(x => x.Name == Event.Name) != -1)
             Count++;
     CaseEventCount.Text = Count.ToString("F2");
     CaseEventPercent.Text = ((double)Count/(double)NowView.TraceCount).ToString();
 }
Пример #2
0
 public static CEvent GenerateEvent(CLog log, ref Random rand)
 {
     CEvent evt = new CEvent(log);
     evt.Name = GenerateString(ref rand);
     evt.Date = GenerateDateTimeOffset(ref rand);
     int paramsCount = rand.Next(0, 15);
     for (int i = 0; i < paramsCount; i++)
         try { evt[GenerateString(ref rand, 7)] = evt.Name; }
         catch (ArgumentException) { File.AppendAllText(@"C:\Users\Fedor\Документы ВШЭ\Программирование\Курсовая\Log ver 2 Test Results\Error Log.txt", "Попытка присвоить значение другого типа\r\n"); }
     paramsCount = rand.Next(0, 15);
     for (int i = 0; i < paramsCount;i++ )
         try { evt[GenerateString(ref rand, 10)] = rand.Next(); }
         catch (ArgumentException) { File.AppendAllText(@"C:\Users\Fedor\Документы ВШЭ\Программирование\Курсовая\Log ver 2 Test Results\Error Log.txt", "Попытка присвоить значение другого типа\r\n"); }
     paramsCount = rand.Next(0, 15);
     for (int i = 0; i < paramsCount;i++ )
         try { evt[GenerateString(ref rand)] = rand.NextDouble() + rand.Next(); }
         catch (ArgumentException) { File.AppendAllText(@"C:\Users\Fedor\Документы ВШЭ\Программирование\Курсовая\Log ver 2 Test Results\Error Log.txt", "Попытка присвоить значение другого типа\r\n"); }
     return evt;
 }
Пример #3
0
 /// <summary>
 /// Удаляет событие
 /// </summary>
 public void Remove(CEvent evt)
 {
     Events.Remove(evt);
 }
Пример #4
0
 /// <summary>
 /// Добавляет событие в трассу
 /// </summary>
 public void Add(CEvent evt)
 {
     Events.Add(evt);
 }
Пример #5
0
        // Открывает XES в класс Log
        private static void open_xml_to_class(XmlDocument doc, out CLog log, out  List<XmlNode> trash)
        {
            int ErrorCount = 0;
            DateTimeOffset? date = null;
            XmlNodeList listoftraces = doc.DocumentElement.ChildNodes;
            XmlNodeList listofevents;
            XmlNodeList listofnames;
            CultureInfo a = new CultureInfo(CultureInfo.CurrentCulture.Name);
            a.NumberFormat.NumberDecimalSeparator = ".";
            log = new CLog();
            trash = new List<XmlNode>();
            foreach (XmlNode trace in listoftraces)
            {
                if (trace.Name == "trace")
                {
                    CTrace tr = new CTrace();
                    listofevents = trace.ChildNodes;
                    foreach (XmlNode node in listofevents)
                    {
                        switch (node.Name)
                        {
                            case "string":
                                if (node.Attributes[0].Value == "concept:name")
                                    tr.Name = node.Attributes[1].Value;
                                else
                                    tr.Text_Parameters.Add(node.Attributes[0].Value, node.Attributes[1].Value);
                                break;
                            case "int":
                                try
                                {
                                    tr.Int_Parameters.Add(node.Attributes[0].Value, int.Parse(node.Attributes[1].Value)); //TODO Это
                                }
                                catch
                                {
                                    ErrorCount++;
                                }
                                break;
                            case "float":
                                try
                                {
                                    tr.Double_Parameters.Add(node.Attributes[0].Value, double.Parse(node.Attributes[1].Value));
                                }
                                catch
                                {
                                    ErrorCount++;
                                }
                                break;
                            case "boolean":
                                try
                                {
                                    tr.Bool_Parameters.Add(node.Attributes[0].Value, bool.Parse(node.Attributes[1].Value));
                                }
                                catch
                                {
                                    ErrorCount++;
                                }
                                break;
                            case "event":
                                CEvent ev = new CEvent(log);
                                listofnames = node.ChildNodes;
                                foreach (XmlNode name in listofnames)
                                    switch (name.Name)
                                    {
                                        case "date":
                                            DateTimeOffset dat = new DateTimeOffset();
                                            DateTimeOffset.TryParse(name.Attributes[1].Value, out dat);
                                            date = dat;
                                            ev.Date = date;
                                            break;
                                        case "string":
                                            if (name.Attributes[0].Value != "concept:name")
                                                ev.Text_Parameters.Add(name.Attributes[0].Value, name.Attributes[1].Value);
                                            else
                                                ev.Name = name.Attributes[1].Value;
                                            break;
                                        case "int":
                                            try
                                            {
                                                ev.Int_Parameters.Add(name.Attributes[0].Value, int.Parse(name.Attributes[1].Value));
                                            }
                                            catch
                                            {
                                                ErrorCount++;
                                            }
                                            break;
                                        case "float":
                                            try
                                            {
                                                ev.Double_Parameters.Add(name.Attributes[0].Value, double.Parse(name.Attributes[1].Value, a));
                                            }
                                            catch
                                            {
                                                ErrorCount++;
                                            }
                                            //TODO Создать логгирующую ошибки системы
                                            break;
                                        case "boolean":
                                            try
                                            {
                                                ev.Bool_Parameters.Add(name.Attributes[0].Value, bool.Parse(name.Attributes[1].Value));
                                            }
                                            catch
                                            {
                                                ErrorCount++;
                                            }
                                            break;
                                    }

                                tr.Add(ev);

                                break;
                        }
                    }
                    log.Add(tr);
                }
                else
                    trash.Add(trace);
            }
            listofevents = null;
            listofnames = null;
            listoftraces = null;
            if ((ErrorCountEvent != null) && (ErrorCount > 0))
                ErrorCountEvent(ErrorCount);
        }
Пример #6
0
 public void TestMethod4()
 {
     CLog log = new CLog();
     CEvent evt;
     for (int i=0;i<100;i++)
         evt = new CEvent(log);
     for (int i=0;i<100;i++)
         Assert.AreEqual(i,log[i,-1].EventID);
 }
Пример #7
0
 public void TestMethod3()
 {
     CLog log = new CLog();
     CEvent evt = new CEvent(log);
     log[0,-1].Name = "test1";
     Assert.AreEqual("test1", evt.Name);
 }
Пример #8
0
 public void CLogEventNamesTest()
 {
     CLog log = new CLog();
     string name = "";
     for (int i=1;i<15;i++)
     {
         name += "a";
         for (int j = 0; j < i; j++)
         {
             CEvent evt = new CEvent(log);
             evt.Name = name;
         }
     }
     Assert.AreEqual(14, log.EventNamesCount);
     name = "";
     foreach (string key in log.EventNames)
         name += key + "\r\n";
     File.WriteAllText(String.Format(@"C:\Users\Fedor\Документы ВШЭ\Программирование\Курсовая\Log ver 2 Test Results\CLogEventNamesTest{3}_{4}_{0}_{1}_{2}.txt",
         DateTime.Now.Day.ToString(),DateTime.Now.Month.ToString(),DateTime.Now.Year.ToString(),DateTime.Now.Hour.ToString(),DateTime.Now.Minute.ToString()), name);
 }