public async Task <CentralLabReceivedShipmentResponse> AddReceivedShipment(AddCentralLabShipmentReceiptRequest clRequest) { var rsResponse = new CentralLabReceivedShipmentResponse(); List <BarcodeSampleDetail> barcodes = new List <BarcodeSampleDetail>(); var barcodeNo = ""; var shipmentId = ""; try { foreach (var sample in clRequest.shipmentReceivedRequest) { var slist = new BarcodeSampleDetail(); barcodeNo = sample.barcodeNo; shipmentId = sample.shipmentId; _centralLabReceiptData.AddReceivedShipment(sample); if (sample.sampleDamaged == true || sample.sampleTimeout == true) { var smsSampleDetails = _sampleCollectionData.FetchSMSSamplesByBarcode(sample.barcodeNo); if (!string.IsNullOrEmpty(smsSampleDetails.barcodeNo)) { var subjectMobileNo = smsSampleDetails.subjectMobileNo; var subjectName = smsSampleDetails.subjectName; var anmName = smsSampleDetails.anmName; var anmMobileNo = smsSampleDetails.anmMobileNo; barcodeNo = smsSampleDetails.barcodeNo; var smsToANMURL = _config.GetSection("RegistrationSamplingOdiyaSMStoSubject").GetSection("SMStoANMSampleTimeoutDamaged").Value; var smsURLANMLink = smsToANMURL.Replace("#MobileNo", subjectMobileNo).Replace("#SubjectName", subjectName).Replace("#BarcodeNo", barcodeNo).Replace("#ANMName", anmName).Replace("#ANMMobile", anmMobileNo); GetResponse(smsURLANMLink); var smsToSubjectURL = _config.GetSection("RegistrationSamplingOdiyaSMStoSubject").GetSection("SMStoSubjectSampleTimeoutDamaged").Value; var smsURLSubjectLink = smsToSubjectURL.Replace("#MobileNo", subjectMobileNo).Replace("#SubjectName", subjectName).Replace("#BarcodeNo", barcodeNo).Replace("#ANMName", anmName).Replace("#ANMMobile", anmMobileNo); GetResponse(smsURLSubjectLink); } } slist.barcodeNo = sample.barcodeNo; barcodes.Add(slist); } rsResponse.Status = "true"; rsResponse.Message = barcodes.Count + " Samples received successfully in shipment id: " + shipmentId; rsResponse.Barcodes = barcodes; } catch (Exception e) { rsResponse.Status = "false"; rsResponse.Message = "Partially " + barcodes.Count + " samples received successfully, From this (" + barcodeNo + ") onwards not received. " + e.Message; rsResponse.Barcodes = barcodes; } return(rsResponse); }
public async Task <IActionResult> AddMultipleSamples(AddCentralLabShipmentReceiptRequest clRequest) { _logger.LogInformation($"Invoking endpoint: {this.HttpContext.Request.GetDisplayUrl()}"); _logger.LogDebug($"Request - Received shipments to add samples for verification - {JsonConvert.SerializeObject(clRequest)}"); var rsResponse = await _centralLabService.AddReceivedShipment(clRequest); _logger.LogInformation($"Received shipments to add samples for verification {rsResponse}"); _logger.LogDebug($"Response - Received shipments to add samples for verification - {JsonConvert.SerializeObject(rsResponse)}"); return(Ok(new CentralLabReceivedShipmentResponse { Status = rsResponse.Status, Message = rsResponse.Message, Barcodes = rsResponse.Barcodes, })); }