Ejemplo n.º 1
0
        public async Task <ActionResult <PharmacyModel> > FindClosestPharmacy([FromBody] PharmacyInputModel pharmacyInput)
        {
            _logger.LogDebug("Invoked FindClosestPharmacy");
            try
            {
                var validateResponse = _validationService.ValidatePharmacyInput(pharmacyInput).ToList();
                if (validateResponse.Any())
                {
                    return(StatusCode(400, JsonConvert.SerializeObject(validateResponse)));
                }

                _logger.LogDebug("FindClosestPharmacy Success");
                return(new OkObjectResult(await _pharmacyService.FindClosestAsync(pharmacyInput)));
            }
            catch (SqlNullValueException e)
            {
                _logger.LogError("SqlNullValueException", e);
                return(StatusCode(400, "Null value in database"));
            }
            catch (SqlValueOutOfRangeException e)
            {
                _logger.LogError("SqlValueOutOfRangeException", e);
                return(StatusCode(400, "Invalid value in database"));
            }
            catch (Exception e)
            {
                _logger.LogError("Exception", e);
                return(StatusCode(500, e.Message));
            }
        }