private VsnrFile(VOSZ vorlaufDsrv, VOSZ vorlaufSender, IReadOnlyList <DSVV01> dsvv, NCSZ nachlaufSender, NCSZ nachlaufDsrv) { VorlaufDsrv = vorlaufDsrv; VorlaufSender = vorlaufSender; DSVV = dsvv; NachlaufSender = nachlaufSender; NachlaufDsrv = nachlaufDsrv; Datensaetze = new IDatensatz[] { vorlaufDsrv, vorlaufSender } .Concat(dsvv) .Concat(new IDatensatz[] { nachlaufSender, nachlaufDsrv }) .ToList(); }
private string BuildRequestFile(StreamFactory streamFactory, int fileNumber, DateTime creationTimestamp, IEnumerable <Person> personen) { var registration = Dataline.Common.Constants.SocialInsurance.Registrations.Dataline; var output = new StringWriter(); using (var writer = streamFactory.CreateWriter("dsvv-deuev-v01", output)) { var vosz = new VOSZ() { VFMM = "AGTRV", ABSN = _sender.Betriebsnummer, EPNR = DsrvConstants.Betriebsnummer, ED = LocalDateTime.FromDateTime(creationTimestamp).Date, DTNR = fileNumber, NAAB = _sender.Name1, }; writer.Write(vosz); var dsko = new DSKO04() { VF = "DEUEV", ABSN = _sender.Betriebsnummer, EPNR = DsrvConstants.Betriebsnummer, ED = creationTimestamp, ABSNER = _company.Betriebsnummer, PRODID = registration.ProductId, MODID = registration.ModificationId, NAME1 = _company.Name1, PLZ = _company.PLZ, ORT = _company.Ort, STR = _company.Strasse, ANRAP = _sender.IstFrau ? "W" : "M", NAMEAP = _sender.Ansprechpartner, TELAP = _sender.Telefon, FAXAP = _sender.Fax, EMAILAP = _sender.Email, }; writer.Write(dsko); var personCount = 0; foreach (var person in personen) { personCount += 1; var dsvv = new DSVV01() { ABSN = _sender.Betriebsnummer, EPNR = DsrvConstants.Betriebsnummer, ED = creationTimestamp, KENNZRM = DSVV01Status.Grundstellung, BBNRVU = _company.Betriebsnummer, DSID = XmlConvert.ToString(person.Id), AZVU = person.Personalnummer, MMUEB = 1, DBNA = new DBNA() { FMNA = person.Nachname, VONA = person.Vorname, }, DBGB = new DBGB() { GBDT = LocalDate.FromDateTime(person.Gebdat), GBNA = person.GeburtsName, GBOT = person.GeburtsOrt, GE = person.IstMann ? "M" : "W", }, DBAN = new DBAN() { LDKZ = person.LandKennzeichen, PLZ = person.PLZ, ORT = person.Ort, STR = person.Strasse }, }; writer.Write(dsvv); } var ncsz = new NCSZ() { VFMM = "AGTRV", ABSN = _sender.Betriebsnummer, EPNR = DsrvConstants.Betriebsnummer, ED = LocalDateTime.FromDateTime(creationTimestamp).Date, DTNR = fileNumber, ZLSZ = personCount + 1, }; writer.Write(ncsz); writer.Close(); } var records = output.ToString().Split('\n').Select(x => x.TrimEnd('\r')).Where(x => !string.IsNullOrEmpty(x)).ToArray(); Validate(records); return(string.Join("\r\n", records)); }