private void RunButton_Click(object sender, EventArgs e) { // Save settings Properties.KppParser.Default.EpisodePath = EpisodePathBox.Text; Properties.KppParser.Default.TjenestePath = TjenestePathBox.Text; Properties.KppParser.Default.Level1Name = OrgNameBox.Text; Properties.KppParser.Default.Level1HerId = OrgHerIdBox.Text; Properties.KppParser.Default.Level2Name = OrgNameBox2.Text; Properties.KppParser.Default.Level2HerId = OrgHerIdBox2.Text; Properties.KppParser.Default.Save(); // Run var args = new Args { EpisodePath = EpisodePathBox.Text, TjenestePath = TjenestePathBox.Text, FraDato = FromDatePicker.Value, TilDato = ToDatePicker.Value, OrganizationName = OrgNameBox.Text, OrganizationHerId = OrgHerIdBox.Text, OrganizationName2 = OrgNameBox2.Text, OrganizationHerId2 = OrgHerIdBox2.Text, HDirHerId = RadioTrial.Checked ? _settings.HdirQa : _settings.HdirProd, Leverandor = _settings.Leverandor, NavnEpj = _settings.NavnEpj, VersjonEpj = _settings.VersjonEpj, ProgramVersion = _version, }; if (!KppService.IsValid(args, out var errorMessage)) { MessageBox.Show($"Kan ikke lage melding. Årsak:\n\n{errorMessage}", @"Ugyldig input", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } var fileDialog = new SaveFileDialog { OverwritePrompt = true, Filter = @"XML filer|*.xml", AddExtension = true, CheckPathExists = true, DefaultExt = "xml", Title = @"Velg hvor filen skal lagres", ValidateNames = true }; if (fileDialog.ShowDialog() == DialogResult.Cancel) { return; } args.OutputPath = fileDialog.FileName; var progressForm = new ProgressForm(args); progressForm.ShowDialog(); }
public void KppService_ShouldCreateValidXml_WhenParsingKpp() { // arrange var args = DefaultArgs(); var schemas = SchemaLoader.LoadDirectory("Resources"); // act KppService.Run(args, null); // assert Action verify = () => XmlUtils.ValidateXmlFile(args.OutputPath, schemas); verify.Should().NotThrow(); }
public void KppService_ShouldSetMsgHeadContent_WhenParsingKpp() { // arrange var args = DefaultArgs(); // act KppService.Run(args, null); // assert var msgHead = XmlUtils.DeserializeFromFile <MsgHead>(args.OutputPath); msgHead.MsgInfo.Type.Should().BeEquivalentTo(new CS { V = "NPR_KPP", DN = "KPP melding" }); msgHead.MsgInfo.GenDate.Should().BeSameDateAs(DateTime.Today); msgHead.MsgInfo.Sender.Should().BeEquivalentTo(new Sender { Organisation = new Organisation { OrganisationName = args.OrganizationName, Ident = new[] { new Ident { Id = args.OrganizationHerId, TypeId = new CV { V = "HER", DN = "HER-Id", S = "9051" } } } } }); msgHead.MsgInfo.Receiver.Should().BeEquivalentTo(new Receiver { Organisation = new Organisation { OrganisationName = "Helsedirektoratet", Ident = new[] { new Ident { Id = args.HDirHerId, TypeId = new CV { V = "HER", DN = "HER-Id", S = "9051" } } } } }); Guid.TryParse(msgHead.MsgInfo.MsgId, out _).Should().BeTrue(); var refDoc = msgHead.Items.First().As <Document>().RefDoc; refDoc.Should().NotBeNull(); refDoc.MsgType.Should().BeEquivalentTo(new CS { V = "XML", DN = "XML-instans" }); refDoc.Item?.As <RefDocContent>()?.Melding.Should().NotBeNull(); }
public void KppService_ShouldSetKppMessageContent_WhenParsingKpp() { // arrange var args = DefaultArgs(); var expectedMelding = XmlUtils.DeserializeFromFile <Melding>("Resources/Expectations/TestMelding.xml"); var expectations = expectedMelding.Institusjon; // act KppService.Run(args, null); // assert var file = XmlUtils.DeserializeFromFile <MsgHead>(args.OutputPath); var melding = file.Items.First().As <Document>().RefDoc.Item.As <RefDocContent>().Melding; melding.Institusjon.Should().BeEquivalentTo(expectations); }
public void KppService_ShouldSetMetadata_WhenParsingKpp() { // arrange var args = DefaultArgs(); // act KppService.Run(args, null); // assert var file = XmlUtils.DeserializeFromFile <MsgHead>(args.OutputPath); var melding = file.Items.First().As <Document>().RefDoc.Item.As <RefDocContent>().Melding; melding.versjonUt.Should().Be(args.ProgramVersion); melding.fraDatoPeriode.Should().Be(args.FraDato); melding.tilDatoPeriode.Should().Be(args.TilDato); melding.leverandor.Should().Be(args.Leverandor); melding.navnEPJ.Should().Be(args.NavnEpj); melding.versjonEPJ.Should().Be(args.VersjonEpj); }
public void KppService_ShouldValidateCsvHeaders_WhenValidatingTjenesteInput(string fileName, string expectedError) { // arrange if (fileName != null) { fileName = $"Resources/TestData/{fileName}"; } var args = DefaultArgs(); args.TjenestePath = fileName; // act var isValid = KppService.IsValid(args, out var errorMessage); // assert isValid.Should().Be(expectedError == null); errorMessage.Should().Be(expectedError ?? string.Empty); }
private DoWorkEventHandler OnDoWork(Args args) { return((o, e) => { _worker.ReportProgress(ProgressBar.Minimum); try { KppService.Run(args, _worker.ReportProgress); } catch (Exception ex) { _worker.ReportProgress(ProgressBar.Value, "Noe gikk galt :("); var message = $"Noe gikk galt under opprettelse av meldingen.\n\nFeilmelding: {ex.Message}\n\n{ex.GetType()}\n\nVersjon: {args.ProgramVersion}"; MessageBox.Show(message, @"Noe gikk galt", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { _worker.ReportProgress(ProgressBar.Maximum); } }); }
private static int Main(string[] args) { Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory); var verbose = false; var showHelp = args.Length == 0; var dryRun = false; var printVersion = false; var kppArgs = new Args { ProgramVersion = Version() }; var p = new OptionSet { { "Program-argumenter" }, { "h|help", "Vis hjelp", x => showHelp = true }, { "v|verbose", "Skriv status underveis", x => verbose = true }, { "d|dry-run", "Test konfigurasjon uten å kjøre programmet.", x => dryRun = true }, { "version", "Skriv programmets version", x => printVersion = true }, { "Input" }, { "episoder=", "Filsti til csv-fil med episoder", x => kppArgs.EpisodePath = x }, { "tjenester=", "Filsti til csv-fil med tjenester", x => kppArgs.TjenestePath = x }, { "fradato=", "Dato for periodens start. Format: yyyy-MM-dd", x => kppArgs.FraDato = ParseDate(x) }, { "tildato=", "Dato for periodens slutt. Format: yyyy-MM-dd", x => kppArgs.TilDato = ParseDate(x) }, { "org-herid=", "Avsenders HerId (fra Adresseregisteret)", x => kppArgs.OrganizationHerId = x }, { "org-navn=", "Avsenders navn", x => kppArgs.OrganizationName = x }, { "leverandor=", "Navn på leverandør av EPJ", x => kppArgs.Leverandor = x }, { "epj-navn=", "Navn på EPJ", x => kppArgs.NavnEpj = x }, { "epj-versjon=", "Versjon av EPJ", x => kppArgs.VersjonEpj = x }, { "hdir-herid=", "Helsedirektoratets HerId.", x => kppArgs.HDirHerId = x }, { "Output" }, { "o|output=", "Filsti hvor resultatet lagres", x => kppArgs.OutputPath = x } }; Console.WriteLine(); var list = p.Parse(args); if (list.Count > 0) { Console.WriteLine($"Ukjente variable: {string.Join(", ", list)}\n"); p.WriteOptionDescriptions(Console.Out); return(1); } if (showHelp) { p.WriteOptionDescriptions(Console.Out); return(0); } if (printVersion) { Console.WriteLine(Version()); return(0); } if (dryRun) { Console.WriteLine("# Tolket input:"); Console.WriteLine(kppArgs.ToString()); Console.WriteLine(); var message = !KppService.IsValid(kppArgs, out var em) ? $"# Fant følgende feil i input:\n{em}" : "# Input er gyldig"; Console.WriteLine(message); return(0); } if (!KppService.IsValid(kppArgs, out var errorMessage)) { Console.WriteLine($"Feil input:\n{errorMessage}"); return(1); } try { KppService.Run(kppArgs, (i, s) => Log(s, verbose)); } catch (Exception ex) { var message = $"Noe gikk galt under opprettelse av meldingen.\n\nFeilmelding: {ex.Message}\n\n{ex.GetType()}\n\nVersjon: {kppArgs.ProgramVersion}"; Console.WriteLine(message); return(1); } return(0); }