Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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,
            }));
        }