예제 #1
0
        public void GetDocument()
        {
            string link = _config.GetSection("DataSource").Value;

            XmlDocument document = new XmlDocument();

            document.Load(link);
            //Console.WriteLine(document.InnerXml);

            var xmlString = XElement.Parse(document.InnerXml);

            //vrijeme mjerenja za sve
            var timeStamp = document.DocumentElement.FirstChild.LastChild.InnerText;

            //id uredjaja-- ne znam jel bi trebalo preko for petlje ili ovako posebno a vjerovatno posebno
            //i uz ovo ide ime lokacije u zavisnosti od id uredjaja
            var devices = document.GetElementsByTagName("Device");
            var senzor  = document.GetElementsByTagName("Sensors");

            List <Uredjaj> uredjaji = new List <Uredjaj>();

            foreach (XmlNode device in devices)
            {
                if (!_service.ProvjeraUredjaja(device))
                {
                    _service.DodajUredjaj(device);
                }
            }

            //naziv senzora i tip (na osnovu naziva možes napisati tip bez da ga izvlacis iz xml-a
            //prikom svakog ocitanja xml-a u liste se spašavaju vrijednosti

            foreach (Uredjaj uredjaj in uredjaji)
            {
                switch (uredjaj.listaLokacija)
                {
                case "SERVER SALA 1":
                    List <Mjerenje> mjerenja_sala1 = new List <Mjerenje>();

                    for (int j = 0; j < senzor[0].ChildNodes.Count; j++)
                    {
                        Mjerenje mjerenje = _service.DodajMjerenje(senzor[0], j);
                        mjerenja_sala1.Add(mjerenje);

                        if (!_service.ProvjeraSenzora(senzor[0], j))
                        {
                            _service.DodajSenzor(senzor[0], j);
                        }
                        var _senzor = _service.PronadjiSenzor(int.Parse(senzor[0].ChildNodes[j].Attributes[0].InnerText));

                        _context.Senzori.FirstOrDefault(x => x.senzorId == _senzor.senzorId).mjerenja = mjerenja_sala1;

                        _context.SaveChanges();
                    }
                    mjerenja_sala1 = new List <Mjerenje>();
                    break;

                case "SERVER SALA 2":
                    List <Mjerenje> mjerenja_sala2 = new List <Mjerenje>();

                    for (int j = 0; j < senzor[1].ChildNodes.Count; j++)
                    {
                        Mjerenje mjerenje = _service.DodajMjerenje(senzor[1], j);
                        mjerenja_sala2.Add(mjerenje);

                        if (!_service.ProvjeraSenzora(senzor[1], j))
                        {
                            _service.DodajSenzor(senzor[1], j);
                        }

                        var _senzor = _service.PronadjiSenzor(int.Parse(senzor[1].ChildNodes[j].Attributes[0].InnerText));

                        _context.Senzori.FirstOrDefault(x => x.senzorId == _senzor.senzorId).mjerenja = mjerenja_sala2;

                        _context.SaveChanges();
                    }
                    mjerenja_sala2 = new List <Mjerenje>();
                    break;

                case "KOTLOVNICA":
                    List <Mjerenje> mjerenja_kotlovnica = new List <Mjerenje>();
                    for (int j = 0; j < senzor[2].ChildNodes.Count; j++)
                    {
                        Mjerenje mjerenje = _service.DodajMjerenje(senzor[1], j);
                        mjerenja_kotlovnica.Add(mjerenje);

                        if (!_service.ProvjeraSenzora(senzor[2], j))
                        {
                            _service.DodajSenzor(senzor[2], j);
                        }

                        var _senzor = _service.PronadjiSenzor(int.Parse(senzor[2].ChildNodes[j].Attributes[0].InnerText));

                        _context.Senzori.FirstOrDefault(x => x.senzorId == _senzor.senzorId).mjerenja = mjerenja_kotlovnica;

                        _context.SaveChanges();
                    }
                    mjerenja_kotlovnica = new List <Mjerenje>();
                    break;

                default:
                    continue;
                }
            }
        }