public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage req,
                                                           ILogger log)
        {
            IEnumerable <Venue> results  = null;
            HttpResponseMessage response = req.CreateResponse(HttpStatusCode.InternalServerError);

            try
            {
                // Get passed argument (from query if present, if from JSON posted in body if not)
                log.LogInformation($"GetVenuesByUKPRNAndPostCode starting");
                string UKPRN    = req.RequestUri.ParseQueryString()["UKPRN"];    //?.ToString() ?? (await (dynamic)req.Content.ReadAsAsync<object>())?.UKPRN;
                string PostCode = req.RequestUri.ParseQueryString()["PostCode"]; //?.ToString() ?? (await (dynamic)req.Content.ReadAsAsync<object>())?.PostCode;

                if (UKPRN == null)
                {
                    response = req.CreateResponse(HttpStatusCode.BadRequest, ResponseHelper.ErrorMessage("Missing UKPRN argument"));
                }
                else if (PostCode == null)
                {
                    response = req.CreateResponse(HttpStatusCode.BadRequest, ResponseHelper.ErrorMessage("Missing PostCode argument"));
                }
                else if (!int.TryParse(UKPRN, out int parsedUKPRN))
                {
                    response = req.CreateResponse(HttpStatusCode.BadRequest, ResponseHelper.ErrorMessage("Invalid UKPRN argument"));
                }
                else
                {
                    PostCode = PostCode.Replace(" ", string.Empty).Trim().ToLower();
                    // Get data
                    results = new VenueStorage().GetByPRN(parsedUKPRN, log)
                              .Where(p => p.POSTCODE.Replace(" ", string.Empty).Trim().ToLower() == PostCode);

                    // Return results
                    response         = req.CreateResponse(results.Any() ? HttpStatusCode.OK : HttpStatusCode.NoContent);
                    response.Content = new StringContent(JsonConvert.SerializeObject(results), Encoding.UTF8, "application/json");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(response);
        }
        public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage req,
                                                           ILogger log)
        {
            Venue v = null;
            HttpResponseMessage response = req.CreateResponse(HttpStatusCode.InternalServerError);

            try
            {
                // Get passed argument (from query if present, if from JSON posted in body if not)
                log.LogInformation($"GetVenueByVenueId starting");
                string venueId = req.RequestUri.ParseQueryString()["venueId"]?.ToString()
                                 ?? (await(dynamic) req.Content.ReadAsAsync <object>())?.venueId;
                if (string.IsNullOrEmpty(venueId))
                {
                    log.LogInformation($"GetVenueByVenueId has missing venueId argument");
                    response = req.CreateResponse(HttpStatusCode.BadRequest, ResponseHelper.ErrorMessage("Missing venueId argument"));
                }
                else if (!int.TryParse(venueId, out int parsedVenueId))
                {
                    log.LogInformation($"GetVenueByVenueId has invalid venueId argument");
                    response = req.CreateResponse(HttpStatusCode.BadRequest, ResponseHelper.ErrorMessage("Invalid venueId argument"));
                }
                else
                {
                    // Get data
                    v = new VenueStorage().GetByVenueId(parsedVenueId, log);
                    log.LogInformation($"GetVenueByVenueId returning { v?.VENUE_NAME ?? "no results"}");

                    // Return results
                    response         = req.CreateResponse(v == null ? HttpStatusCode.NoContent : HttpStatusCode.OK);
                    response.Content = new StringContent(JsonConvert.SerializeObject(v), Encoding.UTF8, "application/json");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(response);
        }
Exemplo n.º 3
0
        public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestMessage req,
                                                           ILogger log)
        {
            Provider provider = await req.Content.ReadAsAsync <Provider>();

            HttpResponseMessage response = req.CreateResponse(HttpStatusCode.InternalServerError);

            try
            {
                // Get passed argument from JSON posted in body if not)
                log.LogInformation($"UpdateProviderDetails starting");

                if (provider.id == null || provider.id == Guid.Empty)
                {
                    response = req.CreateResponse(HttpStatusCode.BadRequest, ResponseHelper.ErrorMessage("Missing or empty id argument"));
                }
                else
                {
                    Document result = await new ProviderStorage().UpdateFullDocAsync(provider, log);
                    if (result == null)
                    {
                        response = req.CreateResponse(HttpStatusCode.BadRequest,
                                                      ResponseHelper.ErrorMessage($"Cannot update document with id {provider?.id}"));
                    }
                    else
                    {
                        response = req.CreateResponse(HttpStatusCode.OK);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(response);
        }