public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get")] HttpRequest request,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            int id;

            if (!Int32.TryParse(request.Query["id"], out id))
            {
                return(new BadRequestResult());
            }

            log.LogInformation($"{id}");

            string connectionString = Environment.GetEnvironmentVariable("SqlConnectionString", EnvironmentVariableTarget.Process);

            log.LogInformation(connectionString);

            DbContextOptions <ContosoSpacesContext> options = new DbContextOptionsBuilder <ContosoSpacesContext>()
                                                              .UseSqlServer(connectionString)
                                                              .Options;

            Location result = null;

            using (ContosoSpacesContext context = new ContosoSpacesContext(options))
            {
                result = await context.Locations
                         .Include(l => l.Rooms)
                         .Where(l => l.Id == id)
                         .SingleOrDefaultAsync();
            }

            return(new OkObjectResult(result));
        }
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get")] HttpRequest request,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            string connectionString = Environment.GetEnvironmentVariable("SqlConnectionString", EnvironmentVariableTarget.Process);

            log.LogInformation(connectionString);

            DbContextOptions <ContosoSpacesContext> options = new DbContextOptionsBuilder <ContosoSpacesContext>()
                                                              .UseSqlServer(connectionString)
                                                              .Options;

            List <Location> recentLocations = new List <Location>();

            using (ContosoSpacesContext context = new ContosoSpacesContext(options))
            {
                List <Location> locations = await context.Locations
                                            .OrderByDescending(o => o.LastRenovationDate)
                                            .Take(4)
                                            .ToListAsync <Location>();

                recentLocations.AddRange(locations);
            }

            return(new OkObjectResult(recentLocations));
        }
        public static async Task Main(string[] args)
        {
            IConfigurationBuilder builder = new ConfigurationBuilder()
                                            .AddJsonFile($"appsettings.json")
                                            .AddEnvironmentVariables();
            IConfigurationRoot configuration = builder.Build();

            ConnectionStrings connectionStrings   = configuration.GetSection(nameof(ConnectionStrings)).Get <ConnectionStrings>();
            string            sqlConnectionString = connectionStrings.AzureSqlDb;

            Console.WriteAscii("Seeding SQL Database");
            Console.WriteLine($"Connection String:\t{sqlConnectionString}");

            DbContextOptions <ContosoSpacesContext> options = new DbContextOptionsBuilder <ContosoSpacesContext>()
                                                              .UseSqlServer(sqlConnectionString)
                                                              .Options;

            using ContosoSpacesContext context = new ContosoSpacesContext(options);

            await context.Database.EnsureCreatedAsync();

            Console.WriteLine("Creating Database");

            string seedJsonPath = Path.Combine(Environment.CurrentDirectory, "seed.json");
            string json         = await File.ReadAllTextAsync(seedJsonPath);

            List <Location> locations = JsonConvert.DeserializeObject <List <Location> >(json);

            context.Locations.AddRange(locations);

            foreach (var location in locations)
            {
                Console.WriteLine($"Submitting\t{location.Name}");
            }

            await context.SaveChangesAsync();
        }