Example #1
0
        public ActionResult Sök(string Location, DateTime From, DateTime Tom, string user)
        {
            int error = 1;
            Tjänstemeddelande     newMessage;
            List <SelectListItem> dropdown = new List <SelectListItem>();

            locationList = XElement.Load(client.GetAllLocations().CreateNavigator().ReadSubtree());

            foreach (var location in locationList.Descendants("Location"))
            {
                dropdown.Add(new SelectListItem {
                    Text = location.Element("Name").Value, Value = location.Element("Epc").Value
                });
            }

            ViewBag.Sokning = dropdown;
            string   urn    = Location;
            DateTime _from  = From;
            DateTime _to    = Tom;
            var      search = Location + ", " + From + ", " + Tom + ", false";

            XElement x;

            if (!IIProjectClient.Models.User.IsUser(user))
            {
                error      = 3;
                x          = new XElement("FordonsPassager", new XAttribute("xmlns", ""));
                newMessage = new Tjänstemeddelande(error, "Grupp 10", "Järnkoll v0.3.3", user, search);
                x.AddFirst(newMessage.toXml());
                XElement message = XElement.Load(HostingEnvironment.MapPath("/App_Data/") + "Tjänstemeddelanden.xml");
                message.Add(newMessage.toXml());
                message.Save(HostingEnvironment.MapPath("/App_Data/") + "Tjänstemeddelanden.xml");
                return(RedirectToAction("Index", "Home"));
            }

            // Service call (rightmost bool: refresh (delete and fetch new) masterdata in service)
            try { x = XElement.Load(client.GetEventsForLocation(urn, _from, _to, false).CreateNavigator().ReadSubtree()); }
            catch {
                error = 2;
                x     = new XElement("FordonsPassager", new XAttribute("xmlns", ""));
            }
            // Convert to FordonsPassage class
            IEnumerable <FordonPassage> viewPassager = (
                //from passager in passagerList.Elements("FordonPassage")
                from passager in x.Elements("FordonPassage")
                let passage = FordonPassage.fromXML(passager)
                              select passage
                ).OrderByDescending(p => p.Tid);

            newMessage = new Tjänstemeddelande(error, "Grupp 10", "Järnkoll v0.3.3", user, search);
            x.AddFirst(newMessage.toXml());
            XElement messages = XElement.Load(HostingEnvironment.MapPath("/App_Data/") + "Tjänstemeddelanden.xml");

            messages.Add(newMessage.toXml());
            messages.Save(HostingEnvironment.MapPath("/App_Data/") + "Tjänstemeddelanden.xml");

            return(View(viewPassager));
        }
        public ActionResult Index(DateTime from, DateTime tom, string plats, string namn)
        {
            användare.Add("Krösus Sork");
            användare.Add("Vargen");
            användare.Add("Heffaklumpen");
            användare.Add("Gargamel");

            string   Svarskod        = "";
            string   Meddelande      = "";
            string   Tjansteansvarig = "PG-8";
            string   AppNamnVer      = "IIProjectWork, 1.0";
            DateTime Tidpunkt        = DateTime.Now.Date;
            string   Anropsansvarig  = namn;
            string   Argument        = from.Date.ToString("d") + ", " + tom.Date.ToString("d") + ", " + plats;

            if (!användare.Contains(namn))
            {
                Svarskod   = "3";
                Meddelande = "Ej behörig bandit.";
            }
            else
            {
                if (DateTime.Compare(from, tom) >= 0)
                {
                    Svarskod   = "2";
                    Meddelande = "Kontrollera input.";
                }
                else
                {
                    Svarskod   = "1";
                    Meddelande = "Behörig användare.";

                    XElement allaPlatser  = client.HämtaAllaPlatser();
                    var      specplatsXML = from p in allaPlatser.Descendants("Location")
                                            where p.Element("Name").Value == plats
                                            select
                                            new XElement("Plats",
                                                         new XElement("epc", p.Element("Epc").Value));
                    string specplats = specplatsXML.Elements("epc").FirstOrDefault().Value;

                    XElement platsen   = client.HämtaPlats(specplats);
                    Plats    söktPlats = new Plats()
                    {
                        platsNamn = platsen.Element("Location").Element("Name").Value,
                        platsEPC  = platsen.Element("Location").Element("Epc").Value
                    };

                    IEnumerable <XElement> events = client.HämtaEvents(from, tom, specplats);
                    var fordonpassage             = from fp in events.Descendants("ObjectEvent")
                                                    let fordonsEPC = fp.Element("epcList").Element("epc").Value
                                                                     let tidpunkt = fp.Element("eventTime").Value
                                                                                    select
                                                                                    new XElement("FordonPassage",
                                                                                                 new XElement("fordonsEPC", fordonsEPC),
                                                                                                 söktPlats.toXML(),
                                                                                                 new XElement("tidpunkt", tidpunkt),
                                                                                                 from e in client.HämtaFordon(fordonsEPC).Descendants("Fordonsindivider")
                                                                                                 select
                                                                                                 new XElement("FordonsInfo",
                                                                                                              new XElement("EVN", e.Element("FordonsIndivid").Element("Fordonsnummer").Value),
                                                                                                              new XElement("fordonsinnehavare", e.Element("FordonsIndivid").Element("Fordonsinnehavare").Element("Foretag").Value),
                                                                                                              new XElement("uaForetag", e.Element("FordonsIndivid").Element("UnderhallsansvarigtForetag").Element("Foretag").Value),
                                                                                                              new XElement("fordonstyp", (from f in client.HämtaFordon(fordonsEPC).Descendants("FordonsTyp")
                                                                                                                                          select f.Element("FordonskategoriKodFullVardeSE").Value)),
                                                                                                              new XElement("giltigtGodkannande", e.Element("FordonsIndivid").Element("Godkannande").Element("FordonsgodkannandeFullVardeSE").Value)
                                                                                                              )

                                                                                                 );

                    foreach (var item in fordonpassage)
                    {
                        listFordonPassage.Add(FordonPassage.fromXML(item));
                    }
                }
            }

            Tjänstemeddelande tjanstemeddelande = new Tjänstemeddelande()
            {
                svarskod        = Svarskod,
                meddelande      = Meddelande,
                tjänsteansvarig = Tjansteansvarig,
                appNamnVer      = AppNamnVer,
                tidpunkt        = Tidpunkt,
                anropsansvarig  = Anropsansvarig,
                argument        = Argument
            };

            foreach (var item in listFordonPassage)
            {
                XElement godkannande = client.HämtaFordon(item.fordonsEPC).Element("Fordonsindivider").Element("FordonsIndivid").Element("Godkannande");

                if (item.giltigtGodkannande.Contains("Tillsvidare godkännande"))
                {
                    item.giltigtGodkannande = String.Empty;
                    item.giltigtGodkannande = "Tillsvidare godkännande, Fr.o.m.: " + godkannande.Element("GiltigtFrom").Value.Substring(0, 10);
                }
                else
                {
                    string ejGodkand = item.giltigtGodkannande;
                    item.giltigtGodkannande = String.Empty;
                    item.giltigtGodkannande = ejGodkand + ", Fr.o.m.: " + godkannande.Element("GiltigtFrom").Value.Substring(0, 10) + ", T.o.m.: " + godkannande.Element("GiltigtTom").Value.Substring(0, 10);
                }
                item.tjanstemeddelande = tjanstemeddelande;
            }
            TempData["modellen"] = listFordonPassage;
            return(RedirectToAction("Sökning"));
        }