public async Task <PrescriptionResponse> Create(PrescriptionRequest prescriptionRequest)
        {
            var response = new PrescriptionResponse();

            try
            {
                TTAC         tTAC         = new TTAC(_serviceProvider);
                Prescription prescription = new Prescription();
                prescriptionRequest.CopyPropertiesTo(prescription);
                await _PrescriptionRepository.Add(prescription);

                TTACPrescriptionRequest  tTACPrescriptionRequest  = new TTACPrescriptionRequest();
                TTACPrescriptionResponse tTACPrescriptionResponse = new TTACPrescriptionResponse();
                prescriptionRequest.CopyPropertiesTo(tTACPrescriptionRequest);
                tTACPrescriptionRequest.Username = Constants.TTAC_UserName;
                tTACPrescriptionRequest.Password = Constants.TTAC_Password;
                tTACPrescriptionResponse         = await tTAC.CallPrescriptionApi(tTACPrescriptionRequest);

                response.ErrorCode             = tTACPrescriptionResponse.ErrorCode;
                response.ErrorMessage          = tTACPrescriptionResponse.ErrorMessage;
                response.PrescriptionId        = tTACPrescriptionResponse.PrescriptionId;
                prescription.OutErrorCode      = tTACPrescriptionResponse.ErrorCode;
                prescription.OutErrorMessage   = tTACPrescriptionResponse.ErrorMessage;
                prescription.OutPrescriptionId = tTACPrescriptionResponse.PrescriptionId;
                await _PrescriptionRepository.Update(prescription);

                response.HasError = false;
                return(response);
            }
            catch (Exception e)
            {
                _logService.LogText("PrescriptionInternalError" + e.Message.ToString());
                throw new Exception(e.Message);
            }
        }
示例#2
0
        public async Task <TTACPrescriptionResponse> CallPrescriptionApi(TTACPrescriptionRequest prescriptionRequest)
        {
            var res     = new TTACPrescriptionResponse();
            var request = (HttpWebRequest)WebRequest.Create(Constants.TTAC_BaseUrl + Constants.TTAC_RegisterApiName);

            request.Method = "POST";
            //request.Headers.Add("X-SSP-Api-Key", "56c671ff-4cdf-4907-8e7d-3158fa7dec3e");
            request.Headers.Add("X-SSP-Api-Key", Constants.TTAC_RegisterApiKey);
            request.ContentType = @"application/json";

            try
            {
                using (var streamWriter = new StreamWriter(request.GetRequestStream()))
                {
                    streamWriter.Write(JsonConvert.SerializeObject(prescriptionRequest));
                }

                _rabbitMqService.PublishToQueue(RabbitMQ.Config.RabbitQueue.ElasticLogs, JsonConvert.SerializeObject(request));
                var httpResponse = (HttpWebResponse)(await request.GetResponseAsync().ConfigureAwait(false));
                _rabbitMqService.PublishToQueue(RabbitMQ.Config.RabbitQueue.ElasticLogs, JsonConvert.SerializeObject(httpResponse));
                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                {
                    var result = await streamReader.ReadToEndAsync().ConfigureAwait(false);

                    JObject jObject = JObject.Parse(result);
                    res.ErrorCode      = int.Parse(jObject["ErrorCode"]?.ToString() ?? "-1");
                    res.ErrorMessage   = jObject["ErrorMessage"]?.ToString() ?? "";
                    res.PrescriptionId = int.Parse(jObject["PrescriptionId"]?.ToString() ?? "0");
                }
            }
            catch (WebException ex)
            {
                res.ErrorCode    = (int)HealthESBApiResponseCode.ServiceProviderNotResponse;
                res.ErrorMessage = HealthESBApiResponseMessages.ServiceProviderNotResponse;
            }

            return(res);
        }