Esempio n. 1
0
        private void SubmitButton_Click(object sender, EventArgs e)
        {
            string date     = Convert.ToString(dateTimePicker1.Value);
            string filepath = textBox1.Text;

            var eventCounter = Dic1.Count + Dic2.Count + 2;

            //Write to xml file
            WriteToXML(filepath, date, eventCounter + 1, eve_type);

            //Set event information into Events2 class
            Events2 obj = new Events2();

            obj.setStartTimeStamp(date);
            obj.setEndTimeStamp(date);
            obj.setEventID(("ID" + (eventCounter + 1)));
            obj.setEventType(eve_type);
            obj.setLatitude(Convert.ToString(X));
            obj.setLongitude(Convert.ToString(Y));

            Dic2.Add(("ID" + (eventCounter + 1)), obj);

            ChoiceForm f2 = new ChoiceForm();

            //Set values into dictionary
            Database db = new Database();

            db.setDictionaries(Dic1, Dic2);

            f2.setPhotoVideoTracklogFlag(true);

            this.Hide();
        }
        //Loading events from XML file into Dictionaries
        public void LoadEventsFromFile()
        {
            document = new XmlDocument();
            document.Load(filePath);

            //Source:  https://docs.microsoft.com/en-us/dotnet/api/system.xml.linq.xdocument.parse?view=netframework-4.8
            xDocument = XDocument.Parse(document.InnerXml);

            bool   app          = false;
            bool   flagTime1    = true;
            bool   flag1        = false;
            bool   flag2        = false;
            string eventid      = "";
            int    eventCounter = 0;

            //Use of LINQ to XML
            foreach (XElement sr in xDocument.Descendants())
            {
                string key = sr.Name.LocalName;

                if (key.Equals("eventid"))
                {
                    if (eventCounter > 0)
                    {
                        app = true;
                    }

                    if (flag1 == true)
                    {
                        Dic1.Add(("ID" + eventCounter), obj1);
                    }
                    else if (flag2 == true)
                    {
                        Dic2.Add(("ID" + eventCounter), obj2);
                    }

                    flag1 = false;
                    flag2 = false;

                    eventid = sr.Value;
                }


                /**** For tweet, fb events *****/
                if (key.Equals("tweet") || key.Equals("facebook-status-update"))
                {
                    eventCounter++;

                    if (app == true)
                    {
                        obj1 = new Events1();
                        obj1.setEventType(key);
                    }
                    app   = false;
                    flag1 = true;
                }

                /*** For photo, video, tracklog events ***/
                if (key.Equals("photo") || key.Equals("video") || key.Equals("tracklog"))
                {
                    eventCounter++;

                    if (app == true)
                    {
                        obj2 = new Events2();
                        obj2.setEventType(key);
                    }

                    app   = false;
                    flag2 = true;
                }


                if (flag1 == true)
                {
                    obj1.setEventID(eventid);
                    SetEvents1(key, sr);
                }


                if (flag2 == true)
                {
                    obj2.setEventID(eventid);
                    SetEvents2(key, sr, flagTime1);
                    flagTime1 = true;
                }
            }

            /***** Adding last event into dictionary*******/
            if (flag1 == true)
            {
                Dic1.Add(("ID" + eventCounter), obj1);
            }
            else if (flag2 == true)
            {
                Dic2.Add(("ID" + eventCounter), obj2);
            }
        }