예제 #1
0
        void timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            App.meetingList = new LinkedList <MeetingNode>();
            App.fileList    = new LinkedList <FileNode>();
            App.UpdateGoogleList();
            App.UpdateMeetingList();
            App.UpdateFileList();
            App.InitializeCalendar();
            XMLProcessor p = new XMLProcessor();

            App.fetchFromGoogle(p.GetLastUpdateTime());

            if (App.meetingList.Count > 0)
            {
                App.UpdateCore();
                App.InitializeMeetingTab();
                App.InitializeFileTab();
            }

            this.Dispatcher.Invoke(() =>
            {
                initializeGoogleInfo();
                initializeFileInfo();
                initializeMeetingInfo();
            });
        }
예제 #2
0
        private void btnOpenFile_Click(object sender, RoutedEventArgs e)
        {
            FolderBrowserDialog fbd = new FolderBrowserDialog();

            fbd.ShowDialog();
            logger = new FileLogger();
            XMLProcessor  xmlProObj = new XMLProcessor();
            StringBuilder jsonText  = new StringBuilder();

            if (!String.IsNullOrWhiteSpace(fbd.SelectedPath))
            {
                var filePaths = xmlProObj.getXmlFiles(fbd.SelectedPath);

                string xmlContent = string.Empty;
                var    json       = new object();

                foreach (var item in filePaths)
                {
                    try
                    {
                        xmlContent = string.Empty;
                        xmlContent = File.ReadAllText(item.ToString());

                        json = new JavaScriptSerializer().Serialize(xmlProObj.GetXmlData(XElement.Parse(xmlContent)));
                    }
                    catch (Exception ex)
                    {
                        logger.log("\n" + ex.StackTrace.ToString());
                    }
                    jsonText.AppendLine(json.ToString());
                }
            }
            txtEditor.Text = jsonText.ToString();
        }
예제 #3
0
        private void Search(object sender, RoutedEventArgs e)
        {
            processor = new XMLProcessor();
            searcher  = new XMLSearcher(processor.GetWorkingPath());
            string keyword = textBox.Text;

            if (tabControl.SelectedIndex == 0)
            {
                LinkedList <FileNode> fileList = searcher.FindFilesByFileNameKeywords(keyword);
                if (fileList.Count != 0)
                {
                    initializeFileInfo(fileList);
                    Debug.Print(tabControl.SelectedIndex.ToString());
                }
                else
                {
                    MessageBox.Show("No Results");
                }
            }
            else if (tabControl.SelectedIndex == 1)
            {
                LinkedList <MeetingNode> meetingList = searcher.FindMeetingsByMeetingTitleKeywords(keyword);
                if (meetingList.Count != 0)
                {
                    initializeMeetingInfo(meetingList);
                    Debug.Print(tabControl.SelectedIndex.ToString());
                }
                else
                {
                    MessageBox.Show("No Results");
                }
            }
        }
        public clickFileShowMeeting(string fileID)
        {
            InitializeComponent();
            XMLProcessor processor = new XMLProcessor();
            XMLSearcher  searcher  = new XMLSearcher(processor.GetWorkingPath());


            LinkedList <MeetingNode> meetingList = searcher.FindMeetingsByFileID(fileID);

            FileName.Text = searcher.FindFilesByFileIDs(fileID).Last().GetFileName();
            try
            {
                FileLink.NavigateUri = new System.Uri(searcher.FindFilesByFileIDs(fileID).Last().GetFilePath());
            }
            catch (System.UriFormatException ex)
            {
                whetherThrows = true;
            }
            ObservableCollection <clickFile> items = new ObservableCollection <clickFile>();

            foreach (MeetingNode meeting in meetingList)
            {
                //Debug.Print(meeting.GetMeetingID()+""+ meeting.GetStartTimeS());
                items.Add(new clickFile()
                {
                    Time = meeting.GetStartTimeS(), Name = meeting.GetMeetingTitle(), Attendee = meeting.GetAttendents()
                });
                MeetingList.ItemsSource = items;
            }
        }
예제 #5
0
        public void WhenGettingWeatherXML_ThenMaxTempIsOk()
        {
            XDocument xdoc = new XDocument(
                new XElement("weatherdata",
                             new XElement("datapoint",
                                          new XElement("date", 111111),
                                          new XElement("temperature", 10),
                                          new XElement("location", "Budapest"),
                                          new XElement("rainfall", 12)),
                             new XElement("datapoint",
                                          new XElement("date", 111111),
                                          new XElement("temperature", 6),
                                          new XElement("location", "Budapest"),
                                          new XElement("rainfall", 6)),
                             new XElement("datapoint",
                                          new XElement("date", 111111),
                                          new XElement("temperature", 4),
                                          new XElement("location", "Kalocsa"),
                                          new XElement("rainfall", 10)),
                             new XElement("datapoint",
                                          new XElement("date", 111111),
                                          new XElement("temperature", 8),
                                          new XElement("location", "Kalocsa"),
                                          new XElement("rainfall", 4))));

            proc = new XMLProcessor(xdoc);

            List <RegionData> regionDataList = proc.GetRegionData();
            RegionData        data           = regionDataList.Single(e => e.RegionName.Equals("Kalocsa"));

            Assert.That(data.MaxTemperature, Is.EqualTo(8));
        }
예제 #6
0
        public void ProcessTest()
        {
            File.Delete("Settings.xml");
            File.Delete("meetings.xml");
            File.Delete("files.xml");
            MeetingNode node = new MeetingNode();

            node.SetStartTime("2017/01/01 12:00:00");
            node.SetEndTime("2017/12/12 12:00:00");
            node.SetMeetingID("12345");
            node.SetMeetingTitle("Hello");
            FileNode file1 = new FileNode();
            FileNode file2 = new FileNode();

            file1.SetCreatedTime("2017/03/03 12:00:00");
            file1.SetFileName("test1");
            file2.SetCreatedTime("2016/03/03 12:00:00");
            file1.SetFileName("test2");
            LinkedList <FileNode> fn = new LinkedList <FileNode>();

            fn.AddLast(file1);
            fn.AddLast(file2);
            XMLProcessor processor = new XMLProcessor();

            processor.FirstUse();
            processor.SetFileList(fn);
            processor.ProcessFileWithMeetingNode(node);
            processor.Write();
        }
예제 #7
0
        public PreProcessorTests(ConfigurationFixture fixture)
        {
            XMLProcessor.Preferences = fixture.Configuration;

            XMLProcessor processor = new XMLProcessor(@".\TestFiles\preTest_RS2.xml");

            processor.LoadXMLFile();
            preProcessor = new XMLPreProcessor(processor, _ => { });
        }
예제 #8
0
        public static LinkedList <FileNode> returnFile()
        {
            LinkedList <FileNode> k         = new LinkedList <FileNode>();
            XMLProcessor          processor = new XMLProcessor();
            XMLSearcher           searcher  = new XMLSearcher(processor.GetWorkingPath());

            k = searcher.FindFilesByFileNameKeywords("");
            return(k);
        }
예제 #9
0
        public static void UpdateCore()
        {
            XMLProcessor p = new XMLProcessor();

            p.Read();
            Debug.Print("MeetingList Passed In:");
            foreach (MeetingNode n in meetingList)
            {
                Debug.Print(n.GetMeetingID());
            }
            p.ProcessFileWithMeetingList(meetingList, fileList);
            p.Write();
        }
예제 #10
0
        public static LinkedList <MeetingNode> returnMeeting()
        {
            LinkedList <MeetingNode> k         = new LinkedList <MeetingNode>();
            XMLProcessor             processor = new XMLProcessor();
            XMLSearcher searcher = new XMLSearcher(processor.GetWorkingPath());

            k = searcher.FindMeetingsByMeetingTitleKeywords("");
            Debug.Print("get meetingList from the core");
            foreach (MeetingNode i in k)
            {
                Debug.Print("" + i.GetMeetingTitle() + ":" + i.ToString());
            }
            return(k);
        }
예제 #11
0
        private void initializeMeetingInfo(LinkedList <MeetingNode> meetingList)
        {
            processor = new XMLProcessor();
            searcher  = new XMLSearcher(processor.GetWorkingPath());
            ObservableCollection <previousMeeting> items = new ObservableCollection <previousMeeting>();

            foreach (MeetingNode item in meetingList)
            {
                items.Add(new previousMeeting()
                {
                    Time = item.GetStartTime().ToString(), Name = item.GetMeetingTitle(), Attendee = item.GetAttendents(), Docs = item.GetFileListS()
                });
                mlistView5.ItemsSource = items;
            }
        }
예제 #12
0
 private void PerformScan(string filepath)
 {
     try
     {
         var fileProcessor = new XMLProcessor();
         fileProcessor.ProcessFile(filepath);
     }
     catch (Exception ex)
     {
         Log.Error($@"An exception occured: {ex}");
     }
     finally
     {
         Log.Information("Application is going to shutdown");
     }
 }
        public clickShowFiles(string IDList)
        {
            InitializeComponent();
            XMLProcessor processor = new XMLProcessor();
            XMLSearcher  searcher  = new XMLSearcher(processor.GetWorkingPath());

            char[] delimiterChars = { ';' };
            id = IDList.Split(delimiterChars);
            foreach (string s in id)
            {
                Debug.Print("" + s);
                if (searcher.FindFilesByFileIDs(s).Count != 0)
                {
                    Files.Items.Add(searcher.FindFilesByFileIDs(s).Last().GetFileName());
                }
            }
        }
예제 #14
0
        public ReturnObject GetSqlQuery(string fetchXML)
        {
            ReturnObject result   = new ReturnObject();
            string       sqlQuery = "";

            try
            {
                Validation validation = new Validation();

                if (validation.CheckFetchText(fetchXML))
                {
                    XmlDocument xmlDoc = validation.CreateFetchXml(fetchXML);

                    XMLProcessor processor = new XMLProcessor();

                    Dictionary <string, string> operatorReplacement = Operator.GetList();

                    string                    entityName          = processor.GetEntityName(xmlDoc);
                    bool                      isDistinct          = processor.isDistinct(xmlDoc);
                    List <string>             entityAttributeList = processor.GetEntityAttributes(xmlDoc);
                    List <linkEntitiesFromTo> linkEntitiesList    = processor.GetLinkEntityList(xmlDoc, entityName, operatorReplacement);
                    List <mainFilters>        mainFilterList      = processor.GetMainFilterList(xmlDoc, operatorReplacement);

                    QueryProcessor queryProcessor = new QueryProcessor(entityName,
                                                                       entityAttributeList,
                                                                       linkEntitiesList,
                                                                       mainFilterList,
                                                                       isDistinct
                                                                       );

                    sqlQuery = queryProcessor.CreateSqlQuery();
                }
            }
            catch (Exception ex)
            {
                sqlQuery          = "";
                result.Exception  = ex.Message;
                result.IsHasError = true;
            }

            result.SqlQuery = sqlQuery;

            return(result);
        }
        static void Main(string[] args)
        {
            XMLProcessor  xmlProc;
            JSONProcessor jsonProc;
            List <Horse>  horses = new List <Horse>();

            //Get list of all files in the path. (FeedData directory)
            string feedPath = Path.Combine(@"C:\Users\Manes\Desktop\BetEasy-Coding-Challenge\code-challenge\dotnet-code-challenge\FeedData");

            string[] fileList = Directory.GetFiles(feedPath);
            foreach (string path in fileList)
            {
                //Fire the XML processor
                if (Path.GetExtension(path).Equals(".xml"))
                {
                    xmlProc = new XMLProcessor(path);
                    horses.AddRange(xmlProc.Process());
                }

                //Fire the JSON processor
                if (Path.GetExtension(path).Equals(".json"))
                {
                    jsonProc = new JSONProcessor();
                    horses.AddRange(jsonProc.Process(Path.GetFileName(path)));
                }
            }

            if (horses.Count > 0)
            {
                Console.WriteLine("********** HORSE LIST **********");

                foreach (Horse horse in horses)
                {
                    Console.WriteLine(horse.Name + "  -  " + horse.Price);
                }

                Console.WriteLine("********************************");
            }
            else
            {
                Console.WriteLine("No horses found!");
            }
        }
예제 #16
0
        public static void InitializeCore()
        {
            XMLProcessor p = new XMLProcessor();

            p.Read();
            fetchFromGoogle(p.GetLastUpdateTime());
            Debug.Print("Initialize Core");
            foreach (FileNode n in fileList)
            {
                Debug.Print("File name is " + n.GetFileName());
            }
            foreach (MeetingNode n in meetingList)
            {
                Debug.Print("Meeting name is " + n.GetMeetingTitle());
            }

            p.ProcessFileWithMeetingList(meetingList, fileList);
            p.Write();
        }
예제 #17
0
        public MainWindow()
        {
            XMLProcessor p = new XMLProcessor();

            InitializeComponent();

            App.Initialize();
            System.Windows.Forms.NotifyIcon ni = new System.Windows.Forms.NotifyIcon();
            ni.Icon         = new System.Drawing.Icon(Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName + "/Resources/icon.ico");
            ni.Visible      = true;
            ni.DoubleClick +=
                delegate(object sender, EventArgs args)
            {
                this.Show();
                this.WindowState = System.Windows.WindowState.Normal;
            };
            initializeGoogleInfo();
            initializeMeetingInfo();
            initializeFileInfo();
            initializeTimer();
        }
예제 #18
0
        static void Main(string[] args)
        {
            try
            {
                DB.DBStructureLoader dBStructureLoader = new DB.DBStructureLoader();
                var          result        = dBStructureLoader.LoadDBStructure();
                var          dbConn        = new MySql.Data.MySqlClient.MySqlConnection(ConfigurationManager.ConnectionStrings["steribaseDB"].ConnectionString);
                var          nextID        = Query.QueryTask.GetHighestId(dbConn);
                XMLMover     mover         = new XMLMover();
                XMLOrdering  ordering      = new XMLOrdering();
                XMLProcessor processor     = new XMLProcessor(ordering.GetOrderingList(ConfigHandler.GetConfigValue(ConfigValues.order)), result, dbConn);
                var          importResults = mover.LoadAllNewXmls().Select(doc => { nextID = nextID + 1; return(processor.ImportXml(doc.xmlDoc, mover.GetFileName(doc.filePath), nextID), doc.filePath); }).Select(import => { WriteLine($"Import of {mover.GetFileName(import.filePath)}; Successfull:{import.Item1.erfolgreich}; Failed:{import.Item1.fehlerhaft}"); return(import); }).Select(import => (mover.MoveFile(import.filePath), import)).Select(import => mover.CreateErrorLog(import.import.Item1)).ToList();
#if DEBUG
                ReadLine();
#endif
            }
            catch (Exception e)
            {
                Logger.LogException("Programm expierienced a exception.", e);
            }
        }
예제 #19
0
        private void initializeFileInfo()
        {
            XMLProcessor                      processor   = new XMLProcessor();
            XMLSearcher                       searcher    = new XMLSearcher(processor.GetWorkingPath());
            List <string>                     FileData    = App.getFileBuffer();
            LinkedList <MeetingNode>          MeetingData = new LinkedList <MeetingNode>();
            ObservableCollection <recentFile> items       = new ObservableCollection <recentFile>();

            for (int i = 0; i < FileData.Count; i = i + 3)
            {
                items.Add(new recentFile()
                {
                    Name = FileData[i], URL = FileData[i + 1], Meetings = FileData[i + 2]
                });
                RecentFile.ItemsSource = items;

                MeetingData = searcher.FindMeetingsByMeetingIDs(FileData[i + 2]);

                if (MeetingData.Count != 0)
                {
                    foreach (MeetingNode item in MeetingData)
                    {
                        items.Add(new recentFile()
                        {
                            Time = item.GetStartTimeS(), Title = item.GetMeetingTitle(), Attendee = item.GetAttendents(), Files = item.GetFileListS()
                        });
                        RecentFile.ItemsSource = items;
                    }
                }
                else
                {
                    items.Add(new recentFile()
                    {
                        Time = "No Records", Title = "  ", Attendee = "    "
                    });
                    RecentFile.ItemsSource = items;
                }
            }
        }
예제 #20
0
        private void initializeFileInfo(LinkedList <FileNode> fileList)
        {
            Debug.Print(fileList.Count + "");
            processor = new XMLProcessor();
            searcher  = new XMLSearcher(processor.GetWorkingPath());
            LinkedList <MeetingNode>          MeetingData = new LinkedList <MeetingNode>();
            ObservableCollection <recentFile> items       = new ObservableCollection <recentFile>();

            foreach (FileNode item in fileList)
            {
                items.Add(new recentFile()
                {
                    Name = item.GetFileName(), URL = item.GetFilePath(), Meetings = item.GetMeetingListS()
                });
                RecentFile.ItemsSource = items;
                MeetingData            = searcher.FindMeetingsByMeetingIDs(item.GetMeetingListS());

                if (MeetingData.Count != 0)
                {
                    foreach (MeetingNode meeting in MeetingData)
                    {
                        items.Add(new recentFile()
                        {
                            Time = meeting.GetStartTimeS(), Title = meeting.GetMeetingTitle(), Attendee = meeting.GetAttendents(), Files = meeting.GetFileListS()
                        });
                        RecentFile.ItemsSource = items;
                    }
                }
                else
                {
                    items.Add(new recentFile()
                    {
                        Time = "No Records", Title = "  ", Attendee = "    "
                    });
                    RecentFile.ItemsSource = items;
                }
            }
        }
예제 #21
0
        public override SpoolerResult SendSpoolerMessageInternal(string message)
        {
            if (UseNoSpoolerMode)
            {
                return(SpoolerResult.OK);
            }

            __started = true;
            var xml_message = (string)null;

            lock (available_lock)
            {
                xml_message = socket_client.SendMessage(message);
            }

            if ((string.IsNullOrEmpty(xml_message) || xml_message.StartsWith("FAIL:")) && !string.IsNullOrEmpty(Executable))
            {
                if (!StartSpooler(message))
                {
                    return(SpoolerResult.Fail);
                }
            }
            else
            {
                if (xml_message.StartsWith("FAIL"))
                {
                    return(SpoolerResult.Fail);
                }

                if (xml_message == "ERROR")
                {
                    return(SpoolerResult.Error);
                }

                XMLProcessor?.Invoke(xml_message);
            }
            return(SpoolerResult.OK);
        }
예제 #22
0
        private static int Main(string[] args)
        {
            if (args.Length == 1)
            {
                string configFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config.xml");
                Configuration.LoadConfiguration(configFile);

                XMLProcessor processor = new XMLProcessor(args[0]);
                var          status    = processor.LoadXMLFile();
                if (status == ImproverStatus.LoadError)
                {
                    Console.WriteLine("Error during loading.");
                    return(1);
                }

                Console.Write("Processing file.");
                var progress = new Progress <ProgressValue>(_ => Console.Write("."));
                processor.ProcessFile(progress);

                status = processor.Status;
                if (status != ImproverStatus.Completed)
                {
                    Console.WriteLine();
                    Console.WriteLine("Error during processing.");
                    return(1);
                }

                Console.WriteLine();
                Console.WriteLine("File processed.");
            }
            else
            {
                Console.WriteLine("Give an XML file name as an argument.");
            }

            return(0);
        }
예제 #23
0
        public void WriteandReadFilesTest()
        {
            LinkedList <FileNode> fn = new LinkedList <FileNode>();
            FileNode n1 = new FileNode();

            n1.SetFileID("1");
            n1.SetFileName("FileTest1");
            n1.SetModifiedTime("2017/04/03 03:03:03");
            FileNode n2 = new FileNode();

            n2.SetFileID("2");
            n2.SetFileName("FileTest2");
            FileNode n3 = new FileNode();

            n3.SetFileID("1");
            n3.SetFileName("FileTest3");
            n3.SetModifiedTime("2017/04/03 07:07:07");
            fn.AddLast(n1);
            fn.AddLast(n2);
            fn.AddLast(n3);
            XMLProcessor nP = new XMLProcessor();

            nP.WriteFiles(fn);
        }
예제 #24
0
        /// <summary>
        /// Creates the XML Processors and adds them to the XMLProcessors collection.
        /// </summary>
        /// <param name="filenames">A list of the names of XML files to load.</param>
        public async Task AddFilesAsync(IEnumerable <string>?filenames)
        {
            if (filenames is null)
            {
                return;
            }

#if DEBUG
            stopwatch.Restart();
#endif

            string errorMessage            = string.Empty;
            var    skippedFiles            = new ConcurrentBag <string>();
            var    currentlyLoaded         = XMLProcessors.ToArray();
            var    blockingCollection      = new BlockingCollection <XMLProcessor>();
            var    loadingErrorMessageLock = new object();
            var    cd = new CompositeDisposable(XMLProcessors.SuspendCount(), blockingCollection);

            // Consumer
            blockingCollection.GetConsumingEnumerable()
            .ToObservable(TaskPoolScheduler.Default)
            .Buffer(5)
            .ObserveOn(RxApp.MainThreadScheduler)
            .Subscribe(
                onNext: xmlProcessors => XMLProcessors.AddRange(xmlProcessors),
                onCompleted: () => cd.Dispose()
                );

            // Producers
            var loadingTasks = filenames.Select(fileFullPath => Task.Run(() =>
            {
                if (!fileFullPath.EndsWith(".xml", StringComparison.OrdinalIgnoreCase))
                {
                    return;
                }

                string filename = Path.GetFileName(fileFullPath);

                if (filename.Contains("VOCAL") || filename.StartsWith("DDC") || filename.StartsWith("DD_"))
                {
                    skippedFiles.Add(filename);
                    return;
                }

                // Skip files that are already loaded
                if (currentlyLoaded.Any(f => f.XMLFileFullPath == fileFullPath))
                {
                    skippedFiles.Add(filename);
                    return;
                }

                var processor = new XMLProcessor(fileFullPath);
                if (processor.Status == ImproverStatus.LoadError)
                {
                    lock (loadingErrorMessageLock)
                    {
                        errorMessage += $"Error loading file {processor.XMLFileName}:{Environment.NewLine}{processor.StatusMessages[0].Message}{Environment.NewLine}";
                    }
                    return;
                }

                blockingCollection.Add(processor);
            }));

            var completeTasks = Task.WhenAll(loadingTasks.ToArray())
                                .ContinueWith(_ => blockingCollection.CompleteAdding());

            await completeTasks;

#if DEBUG
            stopwatch.Stop();
            ShowInStatusbar($"Loading time: {stopwatch.ElapsedMilliseconds} ms");
#endif

            if (!skippedFiles.IsEmpty)
            {
                UpdateStatusBarForSkippedFiles(skippedFiles);
            }

            if (errorMessage.Length > 0)
            {
                services.NotifyUser(errorMessage, "Error");
            }
        }