public static Blankett CreateFrom(KU ku) { if (ku == null) { throw new ArgumentNullException(nameof(ku)); } var blankettnummer = ku.GetType().GetCustomAttribute <BlankettnummerAttribute>(false); if (blankettnummer == null) { throw new InvalidOperationException("Metadata BlankettnummerAttribute is missing"); } var id = ku.GetId(); return(new Blankett { Nummer = blankettnummer.Nummer, Arendeinformation = { Arendeagare = id.UppgiftslamnarId, Period = id.Inkomstar, }, Blankettinnehall = ku }); }
private XElement CreateBlankettinnehall(KU blankettinnehall) { var id = blankettinnehall.GetId(); var layout = blankettinnehall.GetLayout(); var data = blankettinnehall.Data; var el = new XElement(_ku + id.Typ); foreach (var f in data.Subset(layout.Kontrolluppgifter)) { if (f.HasValue) { el.Add(CreateValue(f)); } } var inkomsttagare = new XElement(_ku + "Inkomsttagare" + id.Typ); foreach (var f in data.Subset(layout.Inkomsttagare)) { if (f.HasValue) { inkomsttagare.Add(CreateValue(f)); } } el.Add(inkomsttagare); var uppgiftslamnare = new XElement(_ku + "Uppgiftslamnare" + id.Typ); foreach (var f in data.Subset(layout.Uppgiftslamnare)) { if (f.HasValue) { uppgiftslamnare.Add(CreateValue(f)); } } el.Add(uppgiftslamnare); return(el); }