/// <summary> /// Constructs a FordonPassage node and returns it to the caller method /// </summary> /// <param name="epcisEvent"></param> /// <param name="location"></param> /// <returns></returns> public XElement FordonPassageConstruct(XElement epcisEvent, string location) { // Gets information about a specific vehicle XElement vehicle = namingClient.GetVehicle(epcisEvent.Element("epcList").Element("epc").Value.ToString()); XElement vehiclePassage; // If there isn't any master data about the vehicle if (vehicle.Descendants("Fordonsindivider").Any() == false) { vehiclePassage = new XElement("FordonPassage", new XElement("FordonsEPC", GetElementValue(epcisEvent.Element("epcList").Element("epc"))), new XElement("PlatsEPC", GetElementValue(epcisEvent.Element("readPoint").Element("id"))), new XElement("Tid", GetElementValue(epcisEvent.Element("eventTime"))), new XElement("Plats", location)); } else { // Builds the FordonPassage node vehiclePassage = new XElement("FordonPassage", new XElement("FordonsEPC", GetElementValue(epcisEvent.Element("epcList").Element("epc"))), new XElement("PlatsEPC", GetElementValue(epcisEvent.Element("readPoint").Element("id"))), new XElement("Tid", GetElementValue(epcisEvent.Element("eventTime"))), new XElement("Plats", location), new XElement("EVN", GetElementValue(vehicle.Element("Fordonsindivider").Element("FordonsIndivid").Element("Fordonsnummer"))), new XElement("Fordonsinnehavare", GetElementValue(vehicle.Element("Fordonsindivider").Element("FordonsIndivid").Element("Fordonsinnehavare").Element("Foretag"))), new XElement("Godkänd", GetElementValue(vehicle.Element("Fordonsindivider").Element("FordonsIndivid").Element("Godkannande").Element("FordonsgodkannandeFullVardeSE"))), new XElement("GiltigFrån", GetElementValue(vehicle.Element("Fordonsindivider").Element("FordonsIndivid").Element("Godkannande").Element("GiltigtFrom"))), new XElement("GiltigTill", GetElementValue(vehicle.Element("Fordonsindivider").Element("FordonsIndivid").Element("Godkannande").Element("GiltigtTom"))), new XElement("Underhållsansvarig", GetElementValue(vehicle.Element("Fordonsindivider").Element("FordonsIndivid").Element("UnderhallsansvarigtForetag").Element("Foretag"))), new XElement("Fordonstyp", GetElementValue(vehicle.Element("FordonsTyp").Element("FordonskategoriKodFullVardeSE"))), new XElement("Fordonsunderkategori", GetElementValue(vehicle.Element("FordonsTyp").Element("FordonsunderkategoriKodFullVardeSE"))) ); } // Returns the FordonPassage node return(vehiclePassage); }
/// <summary> /// Endpoint to search vehicles on EPC /// </summary> /// <param name="epc"></param> /// <returns>An XElement containing vehicle information formatted to fit the Fordon class</returns> public XElement GetVehicleFromEpc(string epc) { NamingServiceClient namingClient = new NamingServiceClient(); XElement specificVehicle = namingClient.GetVehicle(epc); namingClient.Close(); if (specificVehicle.Element("ResponseData").Elements("ResponseMessage").Any()) { return new XElement("Fordon", new XElement("FordonsEPC", epc)); } XElement godkännande; //Skapa godkännandeelement try { godkännande = new XElement("Godkännande", new XElement("GiltigtFrom", specificVehicle.Element("Fordonsindivider").Element("FordonsIndivid").Element("Godkannande").Element("GiltigtFrom").Value) ); } catch(NullReferenceException) { godkännande = new XElement("Godkännande", new XElement("GiltigtFrom", "NoVehicleException") ); } //Kontrollera om giltigt godkännande if (specificVehicle.Element("Fordonsindivider").Element("FordonsIndivid").Elements("Godkannanade").Elements("GiltigtTom").Any()) { godkännande.Add( new XElement("GiltigtTom", specificVehicle.Element("Fordonsindivider").Element("FordonsIndivid").Element("Godkannande").Element("GiltigtTom").Value), new XElement("Godkänd", "Ej godkänd") ); } else { godkännande.Add(new XElement("Godkänd", "Godkänd")); } XElement specificVehicleRelevantData = new XElement("Fordon", new XElement("FordonsEPC", epc), new XElement("FordonsEVN", (string)specificVehicle.Element("Fordonsindivider").Element("FordonsIndivid").Element("Fordonsnummer")), new XElement("Fordonsinnehavare", (string)specificVehicle.Element("Fordonsindivider").Element("FordonsIndivid").Element("Fordonsinnehavare").Element("Foretag")), new XElement("Underhållsansvarig", (string)specificVehicle.Element("Fordonsindivider").Element("FordonsIndivid").Element("UnderhallsansvarigtForetag").Element("Foretag")), new XElement("Fordonstyp", (string)specificVehicle.Element("FordonsTyp").Element("FordonskategoriKodFullVardeSE")), godkännande ); return specificVehicleRelevantData; }
public XElement HämtaFordon(string epc) { XElement fordon = namingClient.GetVehicle(epc); return(fordon); }