Exemplo n.º 1
0
        public QuestionsResponse GetQuestions(QuestionsSettings settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            settings.Channel      = ConfigurationManager.AppSettings["EvidenteChannel"];
            settings.ParamProduct = ConfigurationManager.AppSettings["EvidenteParamProduct"];
            settings.Product      = ConfigurationManager.AppSettings["EvidenteProduct"];

            var consultation =
                _webSettingsConsultationSettingsBuilder.WithPayload(JsonConvert.SerializeObject(settings))
                .WithExecutionId(settings.ExecutionId)
                .WithTypeOfConsultation((int)TypeOfConsultation.Request)
                .WithWebServiceName(ServiceNameType.Questions.GetStringValue())
                .Build();

            AddWebServiceConsultation(consultation);
            var response = _evidenteRepository.GetQuestions(settings);

            var consultationResponse =
                _webSettingsConsultationSettingsBuilder.WithPayload(JsonConvert.SerializeObject(response))
                .WithExecutionId(settings.ExecutionId)
                .WithTypeOfConsultation((int)TypeOfConsultation.Response)
                .WithWebServiceName(ServiceNameType.Questions.GetStringValue())
                .Build();

            AddWebServiceConsultation(consultationResponse);
            return(response);
        }
Exemplo n.º 2
0
        public QuestionsResponse GetQuestions(QuestionsSettings settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }
            var mock = bool.Parse(ConfigurationManager.AppSettings.Get("Mock"));

            if (!mock)
            {
                try
                {
                    var questionsRequest = new QuestionsRequest
                    {
                        Identification     = settings.Identification,
                        IdentificationType = settings.IdentificationType,
                        ValidationNumber   = settings.ValidationNumber
                    };

                    var serialized = _xmlProcessor.Serialize(questionsRequest);

                    var response = preguntas(settings.ParamProduct, settings.Product, settings.Channel, serialized);

                    var deserialized = _xmlProcessor.Deserialize <QuestionsResponse>(response);

                    return(deserialized);
                }
                catch (Exception exception)
                {
                    var clientLog = new TelemetryClient();
                    clientLog.TrackException(exception);
                    var consultationException =
                        _webSettingsConsultationSettingsBuilder.WithPayload(
                            JsonConvert.SerializeObject(new { Exception = exception }))
                        .WithExecutionId(settings.ExecutionId)
                        .WithTypeOfConsultation((int)TypeOfConsultation.CommunicationError)
                        .WithWebServiceName("Error consultando " + ServiceNameType.Questions.GetStringValue())
                        .Build();
                    AddWebServiceConsultation(consultationException);
                    return(new QuestionsResponse {
                        Result = "00"
                    });
                }
            }
            return(QuestionsResponseMock());
        }