Exemplo n.º 1
0
        public static void Validate(TextReader sokResponseTextReader, Sok sok, List <string> validationErrors)
        {
            SokeresultatNoekler sokResponse = null;

            try
            {
                sokResponse = (SokeresultatNoekler) new XmlSerializer(typeof(SokeresultatNoekler)).Deserialize(
                    sokResponseTextReader);
            }
            catch (Exception e)
            {
                validationErrors.Add(string.Format(ValidationErrorMessages.CouldNotParseSokeresultat, "noekler"));
                return;
            }

            if (sokResponse == null)
            {
                validationErrors.Add(ValidationErrorMessages.SokeresultatIsNull);
                return;
            }

            // Too many responses. Doesnt match Take request.
            if (sokResponse.ResultatListe.Count > sok.Take)
            {
                validationErrors.Add(string.Format(
                                         ValidationErrorMessages.TooLongResultListAccordingToTakeParameter, sok.Take,
                                         sokResponse.ResultatListe.Count));
            }

            foreach (var parameter in sok.Parameter)
            {
                switch (parameter.Operator)
                {
                case OperatorType.Equal:
                    if (parameter.Felt == SokFelt.MappePeriodTittel)
                    {
                        //TODO should we test this at all?
                    }

                    break;

                case OperatorType.Between:
                    if (isDateSokeFelt(parameter.Felt))
                    {
                        var listOfDates = GetDateResults(sokResponse, parameter.Felt, validationErrors);

                        foreach (var dateTimeValue in listOfDates)
                        {
                            ValidateBetweenDates(dateTimeValue, parameter.Parameterverdier.Datevalues[0],
                                                 parameter.Parameterverdier.Datevalues[1], validationErrors);
                        }
                    }

                    break;
                }
            }
        }
Exemplo n.º 2
0
        private static List <DateTime> GetDateResults(SokeresultatNoekler sokResponse, SokFelt parameterFelt,
                                                      List <string> validationErrors)
        {
            switch (parameterFelt)
            {
            case SokFelt.SakPeriodSaksdato:
                if (sokResponse.ResultatListe.All(r => r.Saksmappe == null))
                {
                    validationErrors.Add(ValidationErrorMessages.CouldNotFindSaksmappe);
                    return(new List <DateTime>());
                }
                return(sokResponse.ResultatListe.Select(r => r.Saksmappe.Saksdato).ToList());

            default:
                return(new List <DateTime>());
            }
        }