/// <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); }
/// <summary> /// Kopierar requestmeddelandet och anropar validering, /// om meddelandet är ej giltigt med xml-scheman så avbryts förfrågningen till personsök. /// </summary> /// <returns>object</returns> public object BeforeSendRequest(ref Message request, IClientChannel channel) { MessageBuffer buffer = request.CreateBufferedCopy(int.MaxValue); Message copy = buffer.CreateMessage(); Logger.LogInformation("Validating request"); bool isRequestValid = PersonsokValidator.ValidateXml(copy.GetReaderAtBodyContents()); if (!isRequestValid) { Logger.LogError("Request is not valid, aborting!"); channel.Abort(); } else { Logger.LogInformation("Sending request"); request = buffer.CreateMessage(); } return(request); }