示例#1
0
        /// <summary>
        /// Skapa en fråga från ett personId som är antigen ett personnummer eller samordningsnummer
        /// </summary>
        /// <param name="identifieringsInformation">Identifierar frågeställaren</param>
        /// <param name="personId">Personnummer eller samordningsnummer</param>
        /// <returns>PersonSokRequest</returns>
        public static PersonSokRequest CreatePersonIdRequest(IdentifieringsinformationTYPE identifieringsInformation, string personId)
        {
            if (!PersonsokValidator.IsPersonIdValid(personId))
            {
                throw new ArgumentException("PersonId är i fel format");
            }

            List <object> items = new List <object>();

            items.Add(personId);

            List <ItemsChoiceType> itemsChoiceTypes = new List <ItemsChoiceType>();

            itemsChoiceTypes.Add(ItemsChoiceType.IdNummer);

            PersonSokRequest request = new PersonSokRequest();

            request.Identifieringsinformation = identifieringsInformation;
            request.PersonsokningFraga        = new PersonsokningFragaTYPE
            {
                Items            = items.ToArray(),
                ItemsElementName = itemsChoiceTypes.ToArray()
            };

            return(request);
        }
示例#2
0
        /// <summary>
        /// Demonstration av SPAR Personsök program-program version 2021.1
        /// </summary>
        public static void Main(string[] args)
        {
            Logger.LogInformation("Demonstration SPAR Personsök program-program version 2021.1");
            PersonsokServiceClient client = CreatePersonsokServiceClient(
                "https://kt-ext-ws.statenspersonadressregister.se/2021.1/",
                "kt-ext-ws.statenspersonadressregister.se",
                "Kommun_A.p12",
                "5761213661378233",
                "DigiCert.pem");
            IdentifieringsinformationTYPE identifieringsInformation = CreateIdentifieringsInformation(
                500243,
                500243,
                637,
                "Anställd X på avdelning Y, Testsökning C# .NET Core");

            Logger.LogInformation("Personsökning med ett giltigt personnummer");
            PersonSokRequest giltigtPersonIdRequest = CreatePersonIdRequest(identifieringsInformation, "197912122384");

            LogPersonsokningRequest(giltigtPersonIdRequest);
            PersonSokResponse giltigtPersonIdResponse = client.PersonSok(giltigtPersonIdRequest);

            LogPersonsokningResponse(giltigtPersonIdResponse);

            Logger.LogInformation("Personsökning med ett ogiltigt personnummer");
            PersonSokRequest ogiltigtPersonIdRequest = CreatePersonIdRequest(identifieringsInformation, "191212121212");

            LogPersonsokningRequest(ogiltigtPersonIdRequest);
            PersonSokResponse ogiltigtPersonIdResponse = client.PersonSok(ogiltigtPersonIdRequest);

            LogPersonsokningResponse(ogiltigtPersonIdResponse);

            Logger.LogInformation("Personsökning med ett fonetiskt namn, med förväntad träff");
            PersonSokRequest fonetisktNamnRequest = CreateFonetisktNamnRequest(identifieringsInformation, "Mikael Efter*");

            LogPersonsokningRequest(fonetisktNamnRequest);
            PersonSokResponse fonetisktNamnResponse = client.PersonSok(fonetisktNamnRequest);

            LogPersonsokningResponse(fonetisktNamnResponse);

            Logger.LogInformation("Personsökning med ett fonetiskt namn, utan förväntad träff");
            PersonSokRequest fonetisktNamnRequest2 = CreateFonetisktNamnRequest(identifieringsInformation, "NamnSomFörhoppningsvisInteFinns");

            LogPersonsokningRequest(fonetisktNamnRequest2);
            PersonSokResponse fonetisktNamnResponse2 = client.PersonSok(fonetisktNamnRequest2);

            LogPersonsokningResponse(fonetisktNamnResponse2);

            Logger.LogInformation("Personsökning med ett fonetiskt namn, med många träffar");
            PersonSokRequest fonetisktNamnRequest3 = CreateFonetisktNamnRequest(identifieringsInformation, "An*");

            LogPersonsokningRequest(fonetisktNamnRequest3);
            PersonSokResponse fonetisktNamnResponse3 = client.PersonSok(fonetisktNamnRequest3);

            LogPersonsokningResponse(fonetisktNamnResponse3);
        }
示例#3
0
        /// <summary>
        /// Logga personsökningsrequestet som skickas till SPAR-tjänsten
        /// </summary>
        /// <param name="request">Requestmeddelandet, innehåller identifieringsinformation och personsökningsfrågan</param>
        /// <returns></returns>
        private static void LogPersonsokningRequest(PersonSokRequest request)
        {
            string slutAnvandarId = request.Identifieringsinformation.SlutAnvandarId;
            string uppdragsId     = request.Identifieringsinformation.UppdragId.ToString();

            StringBuilder sb = new StringBuilder();

            sb.AppendLine("Personsökningen gjordes med följande parametrar:");
            sb.AppendLine("SlutAnvändarId: " + slutAnvandarId);
            sb.AppendLine("UppdragsId: " + uppdragsId);

            Logger.LogInformation(sb.ToString());
        }
示例#4
0
        /// <summary>
        /// Logga personsökningsrequestet som skickas till SPAR-tjänsten
        /// </summary>
        /// <param name="request">Requestmeddelandet, innehåller identifieringsinformation och personsökningsfrågan</param>
        /// <returns></returns>
        private static void LogPersonsokningRequest(PersonSokRequest request)
        {
            string slutAnvandarId = request.IdentifieringsInformation.SlutAnvandarId;
            string tidsstampel    = request.IdentifieringsInformation.Tidsstampel.ToString("yyyy-MM-dd hh:mm:ss.fff");
            string uppdragsId     = request.IdentifieringsInformation.UppdragsId.ToString();

            StringBuilder sb = new StringBuilder();

            sb.AppendLine("Personsökningen gjordes med följande parametrar:");
            sb.AppendLine("SlutAnvändarId: " + slutAnvandarId);
            sb.AppendLine("Tidsstämpel: " + tidsstampel);
            sb.AppendLine("UppdragsId: " + uppdragsId);

            Logger.LogInformation(sb.ToString());
        }
示例#5
0
        /// <summary>
        /// Skapa en fråga från ett namn, namnet kommer i SPAR hanteras fonetiserat
        /// </summary>
        /// <param name="identifieringsInformation">Identifierar frågeställaren</param>
        /// <param name="namn">Namn, fritext</param>
        /// <returns>PersonSokRequest</returns>
        public static PersonSokRequest CreateFonetisktNamnRequest(IdentifieringsInformationTYPE identifieringsInformation, string namn)
        {
            List <object> items = new List <object>();

            items.Add(FonetiskSokningTYPE.J);
            items.Add(namn);

            List <ItemsChoiceType> itemsChoiceTypes = new List <ItemsChoiceType>();

            itemsChoiceTypes.Add(ItemsChoiceType.FonetiskSokning);
            itemsChoiceTypes.Add(ItemsChoiceType.NamnSokArgument);

            PersonSokRequest request = new PersonSokRequest();

            request.IdentifieringsInformation = identifieringsInformation;
            request.PersonsokningFraga        = new PersonsokningFragaTYPE {
                Items            = items.ToArray(),
                ItemsElementName = itemsChoiceTypes.ToArray()
            };

            return(request);
        }