public async Task <IEnumerable <NavMessage> > ReadMessages(string externalCompanyId) { var navMessagesList = new List <NavMessage>(); try { var messages = await _altinnClient.GetMessages(externalCompanyId); foreach (var message in messages) { var messageId = message.MessageId; var attachments = await _altinnClient.GetAttachments(externalCompanyId, messageId); foreach (var attachment in attachments) { var xmlAttachment = await _altinnClient.GetAttachmentData(externalCompanyId, messageId, attachment.AttachmentId); if (xmlAttachment != null) { var elementNamespace = xmlAttachment?.Root?.Name?.NamespaceName; if (!string.Equals(elementNamespace, Sykmelding_Namespace)) { _logger.LogInformation($"Message will be skipped.Namespace: {elementNamespace}"); } else { var xmlMessage = _xmlSerializer.Deserialize <SykmeldingArbeidsgiver>(xmlAttachment.ToString()); var navMessage = new NavMessage { Namespace = elementNamespace, MessageXml = xmlAttachment.ToString(), IntegrationType = IntegrationType.Import, WorkState = WorkState.ReadyForProcessing, ExternalId = xmlMessage.sykmeldingId, ReporteeId = externalCompanyId, MesssageId = messageId, AttachmentId = attachment.AttachmentId, BusinessOrganizationNumber = xmlMessage.virksomhetsnummer, }; navMessagesList.Add(navMessage); } } else { Debug.WriteLine("Attachment is not XML file"); } } } } catch (Exception ex) { throw new Exception("Error connecting to Altinn", ex); } return(navMessagesList); }
private string GetQueryString(NavMessage message) { string qstr = null; if (message.QueryStringParams != null) { qstr = string.Concat(message.QueryStringParams.Select(x => x.Key + "=" + x.Value).ToList <string>().ToArray()); qstr = "?" + qstr; } return(qstr); }
private NavMessage CreateHrManagerMessage(string referenceId, string businessOrganizationNumber, object hrMananger, SykmeldingArbeidsgiver sm) { var sykmeldingPasient = sm.sykmelding.pasient; var socialSecurityNumber = sykmeldingPasient.ident; //todo: check if this business is paying salary to the employee in the employer-period (arbeidsgiverperioden, first 16days) bool businessPayingSalaryInEmployerPeriod = true; //todo: Create a new "OppgiPersonalleder"/(Provide HR Manager)-message and persist in database var provideHrManagerMessage = new OppgiPersonalleder_M() { Skjemainnhold = new Skjemainnhold() { hendelseId = sm.sykmeldingId, naermesteLeder = new NaermesteLeder() { }, //map data from hrManager organisasjonsnummer = sm.virksomhetsnummer, utbetalesLonn = businessPayingSalaryInEmployerPeriod, utbetalesLonnSpecified = true, sykmeldt = new Sykmeldt() { sykmeldtFoedselsnummer = socialSecurityNumber, sykmeldtNavn = $"{sykmeldingPasient.navn.fornavn} {sykmeldingPasient.navn.mellomnavn} {sykmeldingPasient.navn.etternavn}", } } }; var messageXml = _serializer.Serialize(provideHrManagerMessage); var navHrManagerMessage = new NavMessage() { MessageXml = messageXml, Namespace = OppgiLeder_Namespace, IntegrationType = IntegrationType.Export, WorkState = WorkState.ReadyforExport, ReferenceId = referenceId, BusinessOrganizationNumber = businessOrganizationNumber }; return(navHrManagerMessage); }
private void NavigateToPage(NavMessage message) { object viewObject = message.ViewObject; object navigationState = message.NavigationStateParams; if ((viewObject != null) && (navigationState != null)) { _MainFrame.NavigationService.Navigate(viewObject, navigationState); return; } else if (viewObject != null) { _MainFrame.NavigationService.Navigate(viewObject); return; } //Silverlight string queryStringParams = message.QueryStringParams == null ? "" : GetQueryString(message); string uri = string.Format("/Views/{0}.xaml{1}", message.PageName, queryStringParams); _MainFrame.NavigationService.Navigate(new Uri(uri, UriKind.Relative)); }
static void RinexParserNewNavMessageEvent(object sender, NavMessage e) { sw1.Write(e.ToString()); }