public void SendDigitaltPåVegneAvIntegrasjon() { //Arrange const string testDepartementetAvsenderOrgnummer = "987656789"; const string postenDatabehandlerOrgnummer = "984661185"; var avsender = new Avsender(testDepartementetAvsenderOrgnummer); var databehandler = new Databehandler(postenDatabehandlerOrgnummer, DomeneUtility.GetAvsenderSertifikat()); var forsendelse = new Forsendelse(avsender, DomeneUtility.GetDigitalPostInfoEnkel(), DomeneUtility.GetDokumentpakkeUtenVedlegg(), Prioritet.Normal, Guid.NewGuid().ToString()); var klientKonfig = new Klientkonfigurasjon { MeldingsformidlerUrl = new Uri(Settings.Default.UrlMeldingsformidler), LoggXmlTilFil = true }; //Act var sdpKlient = new SikkerDigitalPostKlient(databehandler, klientKonfig); var transportkvittering = sdpKlient.Send(forsendelse, true); //Assert Assert.IsNotNull(transportkvittering); var kvittering = HentKvitteringOgBekreft(sdpKlient, "Send digital paa vegne av", forsendelse); Assert.IsTrue(kvittering is Leveringskvittering, "Klarte ikke hente kvittering eller feilet kvittering"); }
public void OppretteForsendelse() { var hoveddokument = new Dokument( tittel: "Dokumenttittel", dokumentsti: "/Dokumenter/Hoveddokument.pdf", mimeType: "application/pdf", språkkode: "NO", filnavn: "filnavn" ); var dokumentpakke = new Dokumentpakke(hoveddokument); var vedleggssti = "/Dokumenter/Vedlegg.pdf"; var vedlegg = new Dokument( tittel: "tittel", dokumentsti: vedleggssti, mimeType: "application/pdf", språkkode: "NO", filnavn: "filnavn"); dokumentpakke.LeggTilVedlegg(vedlegg); Avsender avsender = null; //Som initiert tidligere PostInfo postInfo = null; //Som initiert tidligere var forsendelse = new Forsendelse(avsender, postInfo, dokumentpakke); }
/// <param name="avsender"> /// Ansvarlig avsender av forsendelsen. Dette vil i de aller fleste tilfeller være den offentlige /// virksomheten som er ansvarlig for brevet som skal sendes. /// </param> /// <param name="postInfo">Informasjon som brukes av postkasseleverandør for å behandle den digitale posten.</param> /// <param name="dokumentpakke">Pakke med hoveddokument og ev. vedlegg som skal sendes.</param> /// <param name="konversasjonsId"> /// Sett en eksplisitt konversasjonsid. Dette er id som kan brukes for spore alle ledd i /// opprettelse av et brev, og vil være i svar fra Meldingsformidler. /// </param> /// <param name="prioritet">Setter forsendelsens prioritet. Standard er Prioritet.Normal</param> /// <param name="språkkode"> /// Språkkode i henhold til ISO-639-1 (2 bokstaver). Brukes til å informere postkassen om hvilket /// språk som benyttes, slik at varselet om mulig kan vises i riktig kontekst. Standard er NO. /// </param> /// <param name="mpcId"> /// Brukes til å skille mellom ulike kvitteringskøer for samme tekniske avsender. En forsendelse gjort /// med en MPC Id vil kun dukke opp i kvitteringskøen med samme MPC Id. Standardverdi er "". /// </param> public Forsendelse(Avsender avsender, PostInfo postInfo, Dokumentpakke dokumentpakke, Guid konversasjonsId, Prioritet prioritet = Prioritet.Normal, string mpcId = "", string språkkode = "NO") { Avsender = avsender; PostInfo = postInfo; Dokumentpakke = dokumentpakke; Prioritet = prioritet; Språkkode = språkkode; MpcId = mpcId; KonversasjonsId = konversasjonsId; }
public Forsendelse(Behandlingsansvarlig avsender, PostInfo postInfo, Dokumentpakke dokumentpakke, Prioritet prioritet = Prioritet.Normal, string mpcId = "", string språkkode = "NO") { Avsender = new Avsender(avsender.Organisasjonsnummer); PostInfo = postInfo; Dokumentpakke = dokumentpakke; Prioritet = prioritet; Språkkode = språkkode; MpcId = mpcId; }
internal static Avsender GetAvsender() { if (_avsender != null) { return(_avsender); } var orgNrAvsender = new Organisasjonsnummer(Settings.Default.OrganisasjonsnummerAvsender); return(_avsender = new Avsender(orgNrAvsender)); }
public void Initier() { var orgnummerAvsender = new Organisasjonsnummer("123456789"); var avsender = new Avsender(orgnummerAvsender); var orgnummerDatabehandler = new Organisasjonsnummer("987654321"); var avsendersertifikat = new X509Certificate2(); var databehandler = new Databehandler(orgnummerDatabehandler, avsendersertifikat); avsender.Avsenderidentifikator = "Avsenderidentifikator.I.Organisasjon"; }
public void OpprettAvsenderOgBehandler() { var orgnummerAvsender = new Organisasjonsnummer("123456789"); var avsender = new Avsender(orgnummerAvsender); var orgnummerDatabehandler = new Organisasjonsnummer("987654321"); var databehandler = new Databehandler(orgnummerDatabehandler); //Hvis man har flere avdelinger innenfor samme organisasjonsnummer, har disse fått unike avsenderidentifikatorer, og kan settes på følgende måte: avsender.Avsenderidentifikator = "Avsenderidentifikator.I.Organisasjon"; }
/// <param name="avsender"> /// Ansvarlig avsender av forsendelsen. Dette vil i de aller fleste tilfeller være den offentlige /// virksomheten som er ansvarlig for brevet som skal sendes. /// </param> /// <param name="postInfo">Informasjon som brukes av postkasseleverandør for å behandle den digitale posten.</param> /// <param name="dokumentpakke">Pakke med hoveddokument og ev. vedlegg som skal sendes.</param> /// <param name="konversasjonsId"> /// Sett en eksplisitt konversasjonsid. Dette er id som kan brukes for spore alle ledd i /// opprettelse av et brev, og vil være i svar fra Meldingsformidler. /// </param> /// <param name="prioritet">Setter forsendelsens prioritet. Standard er Prioritet.Normal</param> /// <param name="språkkode"> /// Språkkode i henhold til ISO-639-1 (2 bokstaver). Brukes til å informere postkassen om hvilket /// språk som benyttes, slik at varselet om mulig kan vises i riktig kontekst. Standard er NO. /// </param> /// <param name="mpcId"> /// Brukes til å skille mellom ulike kvitteringskøer for samme tekniske avsender. En forsendelse gjort /// med en MPC Id vil kun dukke opp i kvitteringskøen med samme MPC Id. Standardverdi er "". /// </param> public Forsendelse(Avsender avsender, PostInfo postInfo, Dokumentpakke dokumentpakke, Guid konversasjonsId, Prioritet prioritet = Prioritet.Normal, string mpcId = "", string språkkode = "NO") { Avsender = avsender; PostInfo = postInfo; Dokumentpakke = dokumentpakke; Prioritet = prioritet; Språkkode = språkkode; MpcId = mpcId; KonversasjonsId = konversasjonsId; MottakerPersonIdentifikator = postInfo is FysiskPostInfo fysiskPostInfo ? fysiskPostInfo.Personidentifikator : (PostInfo.Mottaker as DigitalPostMottaker).Personidentifikator; }
public void OpprettForsendelseMedUtvidelse() { var raw = "<?xml version=\"1.0\" encoding=\"utf-8\"?><lenke xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"http://begrep.difi.no/sdp/utvidelser/lenke\"><url>https://www.test.no</url><beskrivelse lang=\"nb\">This was raw string</beskrivelse></lenke>"; MetadataDocument metadataDocument = new MetadataDocument("lenke.xml", "application/vnd.difi.dpi.lenke", raw); Avsender avsender = null; //Som initiert tidligere PostInfo postInfo = null; //Som initiert tidligere Dokumentpakke dokumentpakke = null; //Som initiert tidligere var forsendelse = new Forsendelse(avsender, postInfo, dokumentpakke) { MetadataDocument = metadataDocument }; }
private static Forsendelse GenererForsendelse(Avsender avsender, PostInfo postInfo) { ResourceUtility resourceUtility = new ResourceUtility("Difi.SikkerDigitalPost.Klient.Testklient.Resources"); var hoveddokument = resourceUtility.ReadAllBytes(true, "Hoveddokument.pdf"); var vedlegg = resourceUtility.ReadAllBytes(true, "Vedlegg.txt"); //Forsendelse var dokumentpakke = new Dokumentpakke(new Dokument("Sendt" + DateTime.Now, hoveddokument, "application/pdf", "NO", "OWASP TOP 10.pdf")); dokumentpakke.LeggTilVedlegg(new Dokument("Vedlegg", vedlegg, "text/plain", "NO", "Vedlegg.txt")); return(new Forsendelse(avsender, postInfo, dokumentpakke, Prioritet.Prioritert, MpcId, "NO")); }
private static void SendPost(PostInfo postInfo) { /* * I dette eksemplet er det Posten som er den som produserer informasjon/brev/post som skal formidles (Avsender), * Posten som er databehandler, og det er Digipostkassen som skal motta meldingen. */ Log.Debug(@"--- STARTER Å SENDE POST ---"); /* * SETT OPP MOTTAKER OG INNSTILLINGER */ var avsender = new Avsender(new Organisasjonsnummer(Settings.Default.DifiOrgNummer)); var databehandler = new Databehandler( new Organisasjonsnummer(Settings.Default.DifiOrgNummer), Settings.Default.DifiSertifikatThumbprint); var forsendelse = GenererForsendelse(avsender, postInfo); var klientkonfigurasjon = SettOppKlientkonfigurasjon(); klientkonfigurasjon.AktiverLagringAvDokumentpakkeTilDisk(@"C:\Users\User\Downloads\"); var sikkerDigitalPostKlient = new SikkerDigitalPostKlient(databehandler, klientkonfigurasjon); /** * SEND POST OG MOTTA KVITTERINGER */ SendPost(sikkerDigitalPostKlient, forsendelse); Log.Debug(@"--- STARTER Å HENTE KVITTERINGER ---"); HentKvitteringer(sikkerDigitalPostKlient); Console.WriteLine(); Log.Debug(@"--- FERDIG Å SENDE POST OG MOTTA KVITTERINGER :) --- "); Console.ReadKey(); }
private static void SendPost() { /* * I dette eksemplet er det Posten som er den som produserer informasjon/brev/post som skal formidles (Avsender), * Posten som er databehandler, og det er Digipostkassen som skal motta meldingen. */ Console.WriteLine(@"--- STARTER Å SENDE POST ---"); /* * SETT OPP MOTTAKER OG INNSTILLINGER */ var postInfo = GenererPostInfo(ErDigitalPostMottaker, ErNorskBrev); var avsender = new Avsender(Settings.Default.OrgnummerPosten); var databehandler = new Databehandler(Settings.Default.OrgnummerPosten, Settings.Default.DatabehandlerSertifikatThumbprint); avsender.Avsenderidentifikator = "digipost"; var forsendelse = GenererForsendelse(avsender, postInfo); var klientkonfigurasjon = SettOppKlientkonfigurasjon(); var sikkerDigitalPostKlient = new SikkerDigitalPostKlient(databehandler, klientkonfigurasjon); /** * SEND POST OG MOTTA KVITTERINGER */ SendPost(sikkerDigitalPostKlient, forsendelse); Console.WriteLine(@"--- STARTER Å HENTE KVITTERINGER ---"); HentKvitteringer(sikkerDigitalPostKlient); Console.WriteLine(); Console.WriteLine(@"--- FERDIG Å SENDE POST OG MOTTA KVITTERINGER :) --- "); Console.ReadKey(); }
private static void SendPost() { /* * I dette eksemplet er det Posten som er den som produserer informasjon/brev/post som skal formidles (Avsender), * Posten som er teknisk avsender, og det er Digipostkassen som skal motta meldingen. */ Console.WriteLine("--- STARTER Å SENDE POST ---"); /* * SETT OPP MOTTAKER OG INNSTILLINGER */ PostkasseInnstillinger postkasseInnstillinger = PostkasseInnstillinger.GetPosten(); var postInfo = GenererPostInfo(postkasseInnstillinger, ErDigitalPostMottaker, ErNorskBrev); var avsender = new Avsender(postkasseInnstillinger.OrgNummerBehandlingsansvarlig); var databehandler = new Databehandler(postkasseInnstillinger.OrgNummerDatabehandler, "8702F5E55217EC88CF2CCBADAC290BB4312594AC"); avsender.Avsenderidentifikator = "digipost"; var forsendelse = GenererForsendelse(avsender, postInfo); var klientkonfigurasjon = SettOppKlientkonfigurasjon(); var sikkerDigitalPostKlient = new SikkerDigitalPostKlient(databehandler, klientkonfigurasjon); /** * SEND POST OG MOTTA KVITTERINGER */ SendPost(sikkerDigitalPostKlient, forsendelse); Console.WriteLine("--- STARTER Å HENTE KVITTERINGER ---"); HentKvitteringer(sikkerDigitalPostKlient); Console.WriteLine(); Console.WriteLine("--- FERDIG Å SENDE POST OG MOTTA KVITTERINGER :) --- "); Console.ReadKey(); }
/// <param name="avsender"> /// Ansvarlig avsender av forsendelsen. Dette vil i de aller fleste tilfeller være den offentlige /// virksomheten som er ansvarlig for brevet som skal sendes. /// </param> /// <param name="postInfo">Informasjon som brukes av postkasseleverandør for å behandle den digitale posten.</param> /// <param name="dokumentpakke">Pakke med hoveddokument og ev. vedlegg som skal sendes.</param> /// <param name="prioritet">Setter forsendelsens prioritet. Standard er Prioritet.Normal</param> /// <param name="språkkode"> /// Språkkode i henhold til ISO-639-1 (2 bokstaver). Brukes til å informere postkassen om hvilket /// språk som benyttes, slik at varselet om mulig kan vises i riktig kontekst. Standard er NO. /// </param> /// <param name="mpcId"> /// Brukes til å skille mellom ulike kvitteringskøer for samme tekniske avsender. En forsendelse gjort /// med en MPC Id vil kun dukke opp i kvitteringskøen med samme MPC Id. Standardverdi er "". /// </param> public Forsendelse(Avsender avsender, PostInfo postInfo, Dokumentpakke dokumentpakke, Prioritet prioritet = Prioritet.Normal, string mpcId = "", string språkkode = "NO") : this(avsender, postInfo, dokumentpakke, Guid.NewGuid(), prioritet, mpcId, språkkode) { SetLanguageIfNotSetOnContainingDocuments(); }
/// <param name="avsender"> /// Ansvarlig avsender av forsendelsen. Dette vil i de aller fleste tilfeller være den offentlige /// virksomheten som er ansvarlig for brevet som skal sendes. /// </param> /// <param name="postInfo">Informasjon som brukes av postkasseleverandør for å behandle den digitale posten.</param> /// <param name="dokumentpakke">Pakke med hoveddokument og ev. vedlegg som skal sendes.</param> /// <param name="prioritet">Setter forsendelsens prioritet. Standard er Prioritet.Normal</param> /// <param name="språkkode"> /// Språkkode i henhold til ISO-639-1 (2 bokstaver). Brukes til å informere postkassen om hvilket /// språk som benyttes, slik at varselet om mulig kan vises i riktig kontekst. Standard er NO. /// </param> /// <param name="mpcId"> /// Brukes til å skille mellom ulike kvitteringskøer for samme tekniske avsender. En forsendelse gjort /// med en MPC Id vil kun dukke opp i kvitteringskøen med samme MPC Id. Standardverdi er "". /// </param> public Forsendelse(Avsender avsender, PostInfo postInfo, Dokumentpakke dokumentpakke, Prioritet prioritet = Prioritet.Normal, string mpcId = "", string språkkode = "NO") : this(avsender, postInfo, dokumentpakke, Guid.NewGuid(), prioritet, mpcId, språkkode) { }
private static void FetchData(string Day) { var connection = ConfigurationManager.ConnectionStrings["PostListe"].ConnectionString; using (SqlConnection db = new SqlConnection(connection)) { db.Open(); string Url = "https://postliste.porsgrunn.kommune.no/api/postliste/" + Day + "/" + Day + "/"; Console.WriteLine("Importing data from: " + Url); //string Url = "https://postliste.porsgrunn.kommune.no/api/postliste/2018-04-12/2018-04-12/"; HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(Url); httpWebRequest.Method = WebRequestMethods.Http.Get; httpWebRequest.Accept = "application/json"; string JsonResponse; var response = (HttpWebResponse)httpWebRequest.GetResponse(); using (var sr = new StreamReader(response.GetResponseStream())) { JsonResponse = sr.ReadToEnd(); } if (JsonResponse.Length > 100) { Console.WriteLine("Response contains data"); //string Date = DateTime.Now.AddDays(-4).ToString("yyyy-MM-ddT00:00:00"); //Date = Date.Replace('.', ':'); string Date = Day + "T00:00:00"; Console.WriteLine(Date); JsonResponse = JsonResponse.Replace("\"Extensions\": {}", "\"Extensions\": null"); Dictionary <string, object> header = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, object> >(JsonResponse); Dictionary <string, object> responsData = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, object> >(header["response"].ToString()); Dictionary <string, object> responsData1 = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, object> >(responsData[Date.ToString()].ToString()); Console.WriteLine("Utgående post"); //Sjekke om JsonResponse inneholder utgående post if (JsonResponse.Contains("\"U\": [") == true) { string Retning = "U"; List <PostListeClass> Utmail = Newtonsoft.Json.JsonConvert.DeserializeObject <List <PostListeClass> >(responsData1["U"].ToString()); int UtMailArrayCounter = 0; foreach (PostListeClass email in Utmail) { Console.WriteLine("Sak"); if (email.SakKontaktEpost == null) { email.SakKontaktEpost = "null"; } SqlCommand InsertSak = new SqlCommand(@"INSERT INTO [dbo].[PostListeSak] ([EksternId] ,[Retning] ,[Avdeling] ,[SakTittel] ,[SakNr] ,[SakId] ,[Tittel] ,[DokumentNr] ,[LopeNr] ,[DokumentDato] ,[JournalDato] ,[PubliseringsDato] ,[SakKontaktNavn] ,[SakKontaktEpost]) Values ( @EksternId ,'Utgående' ,@Avdeling ,@SakTittel ,@SakNr ,@SakId ,@Tittel ,@DokumentNr ,@LopeNr ,@DokumentDato ,@JournalDato ,@PubliseringsDato ,@SakKontaktNavn ,@SakKontaktEpost )", db); InsertSak.Parameters.AddWithValue("@EksternId", email.Id); InsertSak.Parameters.AddWithValue("@Avdeling", email.Avdeling); InsertSak.Parameters.AddWithValue("@SakTittel", email.SakTittel); InsertSak.Parameters.AddWithValue("@SakNr", email.SakNr); InsertSak.Parameters.AddWithValue("@SakId", email.SakId); InsertSak.Parameters.AddWithValue("@Tittel", email.Tittel); InsertSak.Parameters.AddWithValue("@DokumentNr", email.DokumentNr); InsertSak.Parameters.AddWithValue("@LopeNr", email.LopeNr); InsertSak.Parameters.AddWithValue("@DokumentDato", email.DokumentDato); InsertSak.Parameters.AddWithValue("@JournalDato", email.JournalDato); InsertSak.Parameters.AddWithValue("@PubliseringsDato", email.PubliseringsDato); InsertSak.Parameters.AddWithValue("@SakKontaktNavn", email.SakKontaktNavn); InsertSak.Parameters.AddWithValue("@SakKontaktEpost", email.SakKontaktEpost); InsertSak.ExecuteNonQuery(); Console.WriteLine(email.Id); Console.WriteLine(email.SakTittel); Console.WriteLine(email.Avdeling); //Avsendere if (email.Avsendere != null) { Console.WriteLine("Avsendere"); foreach (object Avsender in email.Avsendere) { if (Avsender != null) { Console.WriteLine(email.SakNr); SqlCommand insertAvsender = new SqlCommand(@" INSERT INTO [dbo].[PostListeKommunikasjon] ([SakEksternId] ,[KommunikasjonsType] ,[Navn]) VALUES (@SakEksternId ,@KommunikasjonsType ,@Navn)", db); insertAvsender.Parameters.AddWithValue("@SakEksternId", email.Id); insertAvsender.Parameters.AddWithValue("@KommunikasjonsType", "Avsender"); if (Avsender == null) { insertAvsender.Parameters.AddWithValue("@Navn", "NULL"); } else { insertAvsender.Parameters.AddWithValue("@Navn", Avsender); } insertAvsender.ExecuteNonQuery(); Console.WriteLine("Avsender = " + Avsender.ToString()); } else { SqlCommand insertAvsender = new SqlCommand(@" INSERT INTO [dbo].[PostListeKommunikasjon] ([SakEksternId] ,[KommunikasjonsType] ,[Navn]) VALUES (@SakEksternId ,@KommunikasjonsType ,@Navn)", db); insertAvsender.Parameters.AddWithValue("@SakEksternId", email.Id); insertAvsender.Parameters.AddWithValue("@KommunikasjonsType", "Avsender"); insertAvsender.Parameters.AddWithValue("@Navn", email.Avdeling); insertAvsender.ExecuteNonQuery(); } } } //Mottakere if (email.Mottakere != null) { Console.WriteLine("Mottakere"); foreach (object Mottaker in email.Mottakere) { string MottakerClean = ""; if (Mottaker != null) { Console.WriteLine("Mottaker = " + Mottaker.ToString()); MottakerClean = Mottaker.ToString().Replace("'", ""); } else { Console.WriteLine("Mottaker = " + email.Avdeling.ToString()); } SqlCommand insertMottaker = new SqlCommand(@" INSERT INTO [dbo].[PostListeKommunikasjon] ([SakEksternId] ,[KommunikasjonsType] ,[Navn]) VALUES (@SakEksternId ,@KommunikasjonsType ,@Navn)", db); insertMottaker.Parameters.AddWithValue("@SakEksternId", email.Id); insertMottaker.Parameters.AddWithValue("@KommunikasjonsType", "Mottaker"); insertMottaker.Parameters.AddWithValue("@Navn", MottakerClean); insertMottaker.ExecuteNonQuery(); } } //Dokumenter if (email.Dokumenter != null) { Console.WriteLine("Dokumenter"); int DokumentArrayCount = 0; foreach (Dokumenter docs in email.Dokumenter) { SqlCommand insertDokument = new SqlCommand(@" INSERT INTO [dbo].[PostListeDokumenter] ([SakEksternId] ,[DokumentId] ,[DokumentTittel] ,[Filendelse] ,[URL]) VALUES (@SakEksternId ,@DokumentId ,@DokumentTittel ,@Filendelse ,@Url)", db); insertDokument.Parameters.AddWithValue("@SakEksternId", email.Id); insertDokument.Parameters.AddWithValue("@DokumentId", docs.Id); insertDokument.Parameters.AddWithValue("@DokumentTittel", docs.Tittel); insertDokument.Parameters.AddWithValue("@Filendelse", docs.Filendelse); insertDokument.Parameters.AddWithValue("@Url", "https://postliste.porsgrunn.kommune.no/api/postliste/" + Day + "/_//" + Retning + "/" + UtMailArrayCounter + "/" + DokumentArrayCount); insertDokument.ExecuteNonQuery(); Console.WriteLine("ID = " + docs.Id); Console.WriteLine("Tittel = " + docs.Tittel); Console.WriteLine("Filendelse = " + docs.Filendelse); Console.WriteLine("Offentlig = " + docs.Offentlig); Console.WriteLine("Tilgjengelig = " + docs.Tilgjengelig); DokumentArrayCount = DokumentArrayCount + 1; } } UtMailArrayCounter = UtMailArrayCounter + 1; } } else { Console.WriteLine("Ingen utgående post"); } Console.WriteLine("\n"); db.Close(); db.Open(); Console.WriteLine("\n\n\n"); Console.WriteLine("Inngående post"); Console.WriteLine("\n\n\n"); if (JsonResponse.Contains("\"I\": [") == true) { string Retning = "I"; List <PostListeClass> Innmail = Newtonsoft.Json.JsonConvert.DeserializeObject <List <PostListeClass> >(responsData1["I"].ToString()); int MailArrayCounter = 0; foreach (PostListeClass email in Innmail) { Console.WriteLine("Sak"); if (email.SakKontaktEpost == null) { email.SakKontaktEpost = "null"; } SqlCommand InsertSak = new SqlCommand(@"INSERT INTO [dbo].[PostListeSak] ([EksternId] ,[Retning] ,[Avdeling] ,[SakTittel] ,[SakNr] ,[SakId] ,[Tittel] ,[DokumentNr] ,[LopeNr] ,[DokumentDato] ,[JournalDato] ,[PubliseringsDato] ,[SakKontaktNavn] ,[SakKontaktEpost]) Values ( @EksternId ,'Inngående' ,@Avdeling ,@SakTittel ,@SakNr ,@SakId ,@Tittel ,@DokumentNr ,@LopeNr ,@DokumentDato ,@JournalDato ,@PubliseringsDato ,@SakKontaktNavn ,@SakKontaktEpost )", db); InsertSak.Parameters.AddWithValue("@EksternId", email.Id); InsertSak.Parameters.AddWithValue("@Avdeling", email.Avdeling); InsertSak.Parameters.AddWithValue("@SakTittel", email.SakTittel); InsertSak.Parameters.AddWithValue("@SakNr", email.SakNr); InsertSak.Parameters.AddWithValue("@SakId", email.SakId); InsertSak.Parameters.AddWithValue("@Tittel", email.Tittel); InsertSak.Parameters.AddWithValue("@DokumentNr", email.DokumentNr); InsertSak.Parameters.AddWithValue("@LopeNr", email.LopeNr); InsertSak.Parameters.AddWithValue("@DokumentDato", email.DokumentDato); InsertSak.Parameters.AddWithValue("@JournalDato", email.JournalDato); InsertSak.Parameters.AddWithValue("@PubliseringsDato", email.PubliseringsDato); InsertSak.Parameters.AddWithValue("@SakKontaktNavn", email.SakKontaktNavn); InsertSak.Parameters.AddWithValue("@SakKontaktEpost", email.SakKontaktEpost); InsertSak.ExecuteNonQuery(); Console.WriteLine(email.Id); Console.WriteLine(email.SakTittel); Console.WriteLine(email.Avdeling); //Avsendere if (email.Avsendere != null) { Console.WriteLine("Avsendere"); foreach (object Avsender in email.Avsendere) { if (Avsender != null) { Console.WriteLine(email.SakNr); SqlCommand insertAvsender = new SqlCommand(@" INSERT INTO [dbo].[PostListeKommunikasjon] ([SakEksternId] ,[KommunikasjonsType] ,[Navn]) VALUES (@SakEksternId ,@KommunikasjonsType ,@Navn)", db); insertAvsender.Parameters.AddWithValue("@SakEksternId", email.Id); insertAvsender.Parameters.AddWithValue("@KommunikasjonsType", "Avsender"); if (Avsender == null) { insertAvsender.Parameters.AddWithValue("@Navn", "NULL"); } else { insertAvsender.Parameters.AddWithValue("@Navn", Avsender); } insertAvsender.ExecuteNonQuery(); Console.WriteLine("Avsender = " + Avsender.ToString()); } else { SqlCommand insertAvsender = new SqlCommand(@" INSERT INTO [dbo].[PostListeKommunikasjon] ([SakEksternId] ,[KommunikasjonsType] ,[Navn]) VALUES (@SakEksternId ,@KommunikasjonsType ,@Navn)", db); insertAvsender.Parameters.AddWithValue("@SakEksternId", email.Id); insertAvsender.Parameters.AddWithValue("@KommunikasjonsType", "Avsender"); insertAvsender.Parameters.AddWithValue("@Navn", email.Avdeling); insertAvsender.ExecuteNonQuery(); } } } //Mottakere if (email.Mottakere != null) { Console.WriteLine("Mottakere"); foreach (object Mottaker in email.Mottakere) { string MottakerClean = ""; if (Mottaker != null) { Console.WriteLine("Mottaker = " + Mottaker.ToString()); MottakerClean = Mottaker.ToString().Replace("'", ""); } else { Console.WriteLine("Mottaker = " + email.Avdeling.ToString()); } SqlCommand insertMottaker = new SqlCommand(@" INSERT INTO [dbo].[PostListeKommunikasjon] ([SakEksternId] ,[KommunikasjonsType] ,[Navn]) VALUES (@SakEksternId ,@KommunikasjonsType ,@Navn)", db); insertMottaker.Parameters.AddWithValue("@SakEksternId", email.Id); insertMottaker.Parameters.AddWithValue("@KommunikasjonsType", "Mottaker"); insertMottaker.Parameters.AddWithValue("@Navn", MottakerClean); insertMottaker.ExecuteNonQuery(); } } //Dokumenter if (email.Dokumenter != null) { Console.WriteLine("Dokumenter"); int DokumentArrayCount = 0; foreach (Dokumenter docs in email.Dokumenter) { SqlCommand insertDokument = new SqlCommand(@" INSERT INTO [dbo].[PostListeDokumenter] ([SakEksternId] ,[DokumentId] ,[DokumentTittel] ,[Filendelse] ,[URL]) VALUES (@SakEksternId ,@DokumentId ,@DokumentTittel ,@Filendelse ,@Url)", db); insertDokument.Parameters.AddWithValue("@SakEksternId", email.Id); insertDokument.Parameters.AddWithValue("@DokumentId", docs.Id); insertDokument.Parameters.AddWithValue("@DokumentTittel", docs.Tittel); insertDokument.Parameters.AddWithValue("@Filendelse", docs.Filendelse); insertDokument.Parameters.AddWithValue("@Url", "https://postliste.porsgrunn.kommune.no/api/postliste/" + Day + "/_//" + Retning + "/" + MailArrayCounter + "/" + DokumentArrayCount); insertDokument.ExecuteNonQuery(); Console.WriteLine("ID = " + docs.Id); Console.WriteLine("Tittel = " + docs.Tittel); Console.WriteLine("Filendelse = " + docs.Filendelse); Console.WriteLine("Offentlig = " + docs.Offentlig); Console.WriteLine("Tilgjengelig = " + docs.Tilgjengelig); DokumentArrayCount++; } } Console.WriteLine("\n"); MailArrayCounter++; } } else { Console.WriteLine("Ingen inngående post"); } } else { Console.WriteLine("Empty response"); } } }