Пример #1
0
        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();
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }