public static IEnumerable<XElement> Translate(DeviceInstance dev, Project project) { foreach (var obj in dev.ComObjectInstances) { XElement element = new XElement(XName.Get("Device", namesp)); element.Add(Create("Område", dev.Line.Area.Address)); element.Add(Create("Områdesnamn", dev.Line.Area.Name)); element.Add(Create("Områdesbeskrivning", dev.Line.Area.Description)); element.Add(Create("Linje", dev.Line.Address)); element.Add(Create("Linjenamn", dev.Line.Name)); element.Add(Create("Linjebeskrivning", dev.Line.Description)); element.Add(Create("Device id", dev.FullAddress)); element.Add(Create("Devicenamn", dev.Name)); element.Add(Create("Devicebeskrivning", dev.Description)); element.Add(Create("Produkt", dev.Product.Text)); element.Add(Create("Rum", dev.RoomValue())); element.Add(Create("Funktion", "Okänd attribut")); element.Add(Create("Program", dev.Product.Program)); element.Add(Create("Tillverkare", dev.Product.Manufacturer)); element.Add(Create("Beställningsnummer", dev.Product.OrderNumber)); element.Add(Create("Adr", dev.IndividualAddressLoaded == "1" ? "X" : "-")); element.Add(Create("Prg", dev.ApplicationProgramLoaded == "1" ? "X" : "-")); element.Add(Create("Par", dev.ParametersLoaded == "1" ? "X" : "-")); element.Add(Create("Grp", (obj.GroupAddresses.Count > 0) ? "X" : "-")); element.Add(Create("Kfg", dev.MediumConfigLoaded == "1" ? "X" : "-")); foreach (var attr in TranslateObject(obj)) element.Add(attr); yield return element; } }
public static IEnumerable<XElement> TranslateGroups(Project project) { var gas = project.GroupRanges.SelectMany(row => row.Ranges).SelectMany(row => row.Addresses); foreach (var ga in gas) { XElement element = new XElement(ns + "Gruppadress"); var ea = new EnmxAddress(ga.Value); var enmx = ea.Address.Split('/'); element.Add(Create("Huvudgrupp", enmx[0])); element.Add(Create("Huvudgruppnamn", ga.ParentRange.ParentRange.Name)); element.Add(Create("Huvudgruppbeskrivning", ga.ParentRange.ParentRange.Description)); element.Add(Create("Mellangrupp", enmx[1])); element.Add(Create("Mellangruppnamn", ga.ParentRange.Name)); element.Add(Create("Mellangruppbeskrivning", ga.ParentRange.Description)); element.Add(Create("Gruppadress", ea.Address)); element.Add(Create("Gruppadressnamn", ga.Name)); element.Add(Create("Gruppadressbeskrivning", ga.Description)); element.Add(Create("Längd", ga.ComObjectInstances.Select(row => row["ObjectSize"]).FirstOrDefault())); element.Add(Create("Antal förbindelser", ga.ComObjectInstances.Count())); element.Add(Create("Centralfunktion", "Nej?")); element.Add(Create("Passera genom linjekopplare", "Nej?")); yield return element; } }