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); } }
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); }