示例#1
0
        //keyword should not be empty string
        public LinkedList <FileNode> FindFilesByFileNameKeywords(String keyword)
        {
            XElement               fileList  = XElement.Load(ffile);
            List <FileNode>        list      = new List <FileNode>();
            IEnumerable <XElement> fileNodes = fileList.Elements();

            foreach (var file in fileNodes)
            {
                if (file.Element("File_Name").Value.Contains(keyword))
                {
                    FileNode currentNode = new FileNode();
                    currentNode.SetFileID(file.Attribute("ID").Value);
                    currentNode.SetCreatedTime(file.Element("Created_Time").Value);
                    currentNode.SetModifiedTime(file.Element("Modified_Time").Value);
                    currentNode.SetExecuteTime(file.Element("Execute_Time").Value);
                    currentNode.SetFileName(file.Element("File_Name").Value);
                    currentNode.SetFilePath(file.Element("File_Path").Value);
                    currentNode.SetExtension(file.Element("Extension").Value);
                    currentNode.SetMeetings(file.Element("Meetings").Value);
                    currentNode.SetMissing(file.Element("Missing").Value);
                    list.Add(currentNode);
                }
            }
            list.Sort((x, y) => y.GetModifiedTime().CompareTo(x.GetModifiedTime()));
            LinkedList <FileNode> n = new LinkedList <FileNode>();

            foreach (FileNode item in list)
            {
                n.AddLast(item);
            }
            return(n);
        }
示例#2
0
        //for test main method
        public static void Main(string[] args)
        {
            /*
             * XMLProcessor x = new XMLProcessor();
             * x.Read();
             * foreach (FileNode node in x.fileList)
             * {
             *  Console.WriteLine(node.GetFileName());
             * }
             */
            // Uri.IsWellFormedOriginalString();

            LinkedList <MeetingNode> meetingList    = new LinkedList <MeetingNode>();
            LinkedList <FileNode>    attachmentList = new LinkedList <FileNode>();
            MeetingNode m1 = new MeetingNode();

            m1.SetMeetingID("12345");
            m1.SetMeetingTitle("ABC");
            m1.SetStartTime("2017/04/03 13:13:15");
            m1.SetEndTime("2017/04/04 13:13:15");
            MeetingNode m2 = new MeetingNode();

            m2.SetMeetingID("23456");
            m2.SetMeetingTitle("BCD");
            m2.SetStartTime("2017/04/07 13:13:15");
            m2.SetEndTime("2017/04/08 13:13:15");
            MeetingNode m3 = new MeetingNode();

            m3.SetMeetingID("34567");
            m3.SetMeetingTitle("CDE");
            m3.SetStartTime("2017/04/08 13:13:15");
            m3.SetEndTime("2017/04/09 13:13:15");
            meetingList.AddLast(m1);
            meetingList.AddLast(m2);
            meetingList.AddLast(m3);

            FileNode f1 = new FileNode();

            f1.SetFileName("f1a");
            f1.AddMeetings("12345");
            FileNode f2 = new FileNode();

            f2.SetFileName("f2a");
            f2.AddMeetings("34567");
            FileNode f3 = new FileNode();

            f3.SetFileName("f3a");
            f3.AddMeetings("34567");
            attachmentList.AddLast(f1);
            attachmentList.AddLast(f2);
            attachmentList.AddLast(f3);

            XMLProcessor x = new XMLProcessor();

            x.ProcessFileWithMeetingList(meetingList, attachmentList);
            x.Write();
        }
示例#3
0
        public LinkedList <FileNode> FindFilesByFileIDs(String fileIDs)
        {
            if (fileIDs == "")
            {
                return(new LinkedList <FileNode>());
            }
            String[]               idList    = fileIDs.Split(';');
            XElement               files     = XElement.Load(ffile);
            List <FileNode>        list      = new List <FileNode>();
            IEnumerable <XElement> fileNodes = files.Elements();

            foreach (var file in fileNodes)
            {
                String  currentID = file.Attribute("ID").Value;
                Boolean inList    = false;
                for (int i = 0; i < idList.Length && (!inList); i++)
                {
                    if (currentID == idList[i])
                    {
                        inList = true;
                    }
                }
                if (inList)
                {
                    FileNode currentNode = new FileNode();
                    currentNode.SetFileID(currentID);
                    currentNode.SetCreatedTime(file.Element("Created_Time").Value);
                    currentNode.SetModifiedTime(file.Element("Modified_Time").Value);
                    currentNode.SetExecuteTime(file.Element("Execute_Time").Value);
                    currentNode.SetFileName(file.Element("File_Name").Value);
                    currentNode.SetFilePath(file.Element("File_Path").Value);
                    currentNode.SetExtension(file.Element("Extension").Value);
                    currentNode.SetMeetings(file.Element("Meetings").Value);
                    list.Add(currentNode);
                }
            }

            //the count of the list indicate whether the list is empty
            list.Sort((x, y) => y.GetModifiedTime().CompareTo(x.GetModifiedTime()));
            LinkedList <FileNode> n = new LinkedList <FileNode>();

            foreach (FileNode item in list)
            {
                n.AddLast(item);
            }
            return(n);
        }
示例#4
0
        public void ReadRecords()
        {
            Console.WriteLine("Program start reading recent file history...");
            XmlTextReader reader = null;

            try
            {
                // Load the reader with the data file and ignore all white space nodes.
                reader = new XmlTextReader(RSFile);
                int filter = 0; //the bit used to filter out entries
                reader.WhitespaceHandling = WhitespaceHandling.None;
                String fileName  = "";
                String extension = "";
                String filePath  = "";
                String mTime     = "";
                String cTime     = "";
                String eTime     = "";
                String missing   = "";
                String stored_in = "";
                //the flag used to indicate what is the current tag:
                int tag = -1;
                // Parse the file and display each of the nodes.
                while (reader.Read())
                {
                    switch (reader.NodeType)
                    {
                    case XmlNodeType.Element:
                        tag = GetFlag(reader.Name);
                        if (tag == 0)
                        {
                            filter    = 0;
                            fileName  = "";
                            extension = "";
                            filePath  = "";
                        }
                        if (tag == -2)
                        {
                            filter = 1;
                        }
                        //Console.WriteLine("<{0}>", reader.Name);
                        break;

                    case XmlNodeType.Text:
                        if (tag == 1)
                        {
                            filePath = reader.Value;
                        }                                              // full name of the file indicate the path of the file
                        if (tag == 8)
                        {
                            fileName = reader.Value;
                        }                                              //the file_only property indicate the name of the file
                        if (tag == 7)
                        {
                            extension = reader.Value;
                        }                                               // the extension of the file
                        if (tag == 2)
                        {
                            mTime = reader.Value;
                        }                                           //modified Time
                        if (tag == 3)
                        {
                            cTime = reader.Value;
                        }                                           //created Time
                        if (tag == 4)
                        {
                            eTime = reader.Value;
                        }                                           //execute Time
                        if (tag == 5)
                        {
                            missing = reader.Value;
                        }                                             //missing?
                        if (tag == 6)
                        {
                            stored_in = reader.Value;
                        }                                               //stored_in
                        //Console.WriteLine(reader.Value);
                        break;

                    case XmlNodeType.EndElement:
                        if ((filter == 0) && (reader.Name == "item"))
                        {
                            if ((Tools.IsValid(fileName, filePath, extension, stored_in)) && (Tools.IsValidTimeRange(mTime, cTime, eTime, lastUpdate, DateTime.Now) != -1))
                            {
                                FileNode tempNode = new FileNode();
                                tempNode.SetFileName(fileName);
                                tempNode.SetCreatedTime(cTime);
                                tempNode.SetExecuteTime(eTime);
                                tempNode.SetModifiedTime(mTime);
                                tempNode.SetFilePath(filePath);
                                tempNode.SetMissing(missing);
                                LinkedListNode <FileNode> node = new LinkedListNode <FileNode>(tempNode);
                                // Console.WriteLine(tempNode.GetFilename());
                                fileList.AddLast(node);
                            }
                        }
                        // Console.WriteLine("</{0}>", reader.Name);
                        break;

                    default:
                        break;
                    }
                }
            }

            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
            }
            Console.WriteLine("Reading Finished...");
        }
示例#5
0
        public void ReadRecords()
        {
            Console.WriteLine("Program start reading recent file history...");
            XmlTextReader reader = null;

            try
            {
                // Load the reader with the data file and ignore all white space nodes.
                reader = new XmlTextReader(RSFile);
                sync   = 1;
                int filter = 0; //the bit used to filter out entries
                reader.WhitespaceHandling = WhitespaceHandling.None;
                String fileName  = "";
                String extension = "";
                String filePath  = "";
                String mTime     = "";
                String cTime     = "";
                String eTime     = "";
                //the flag used to indicate what is the current tag:
                int tag = -1;
                // Parse the file and display each of the nodes.
                while (reader.Read())
                {
                    switch (reader.NodeType)
                    {
                    case XmlNodeType.Element:
                        tag = GetFlag(reader.Name);
                        if (tag == 0)
                        {
                            filter    = 0;
                            fileName  = "";
                            extension = "";
                            filePath  = "";
                        }
                        if (tag == -2)
                        {
                            filter = 1;
                        }
                        //Console.WriteLine("<{0}>", reader.Name);
                        break;

                    case XmlNodeType.Text:
                        if (tag == 1)
                        {
                            filePath = reader.Value;
                        }                                              // full name of the file indicate the path of the file
                        if (tag == 8)
                        {
                            fileName = reader.Value;
                        }                                              //the file_only property indicate the name of the file
                        if (tag == 7)
                        {
                            extension = reader.Value;
                        }                                               // the extension of the file
                        if (tag == 2)
                        {
                            mTime = reader.Value;
                        }                                           //modified Time
                        if (tag == 3)
                        {
                            cTime = reader.Value;
                        }                                           //created Time
                        if (tag == 4)
                        {
                            eTime = reader.Value;
                        }                                           //execute Time
                        //Console.WriteLine(reader.Value);
                        break;

                    case XmlNodeType.EndElement:
                        if ((filter == 0) && (reader.Name == "item"))
                        {
                            if (IsValid(fileName, filePath, extension, mTime, cTime, eTime))
                            {
                                FileNode tempNode = new FileNode();
                                tempNode.SetFileName(fileName);
                                LinkedListNode <FileNode> node = new LinkedListNode <FileNode>(tempNode);
                                // Console.WriteLine(tempNode.GetFilename());
                                fileList.AddLast(node);
                            }
                        }
                        // Console.WriteLine("</{0}>", reader.Name);
                        break;

                    default:
                        break;

                        /*
                         * case XmlNodeType.CDATA:
                         *  Console.WriteLine("3");
                         *  Console.WriteLine("<![CDATA[{0}]]>", reader.Value);
                         *  break;
                         * case XmlNodeType.ProcessingInstruction:
                         *  Console.WriteLine("4");
                         *  Console.WriteLine("<?{0} {1}?>", reader.Name, reader.Value);
                         *  break;
                         * case XmlNodeType.Comment:
                         *  Console.WriteLine("5");
                         *  Console.WriteLine("<!--{0}-->", reader.Value);
                         *  break;
                         * case XmlNodeType.XmlDeclaration:
                         *  Console.WriteLine("6");
                         *  Console.WriteLine("<?xml version='1.0'?>");
                         *  break;
                         * case XmlNodeType.Document:
                         *  Console.WriteLine("7");
                         *  break;
                         * case XmlNodeType.DocumentType:
                         *  Console.WriteLine("8");
                         *  Console.WriteLine("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value);
                         *  break;
                         * case XmlNodeType.EntityReference:
                         *  Console.WriteLine("9");
                         *  Console.WriteLine(reader.Name);
                         *  break;*/
                    }
                }
            }

            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
            }
            sync = 0;
            Console.WriteLine("Reading Finished...");
        }