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")); }