Ejemplo n.º 1
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            //TODO: get this from ClaimsPrincipal
            var userid = "1";

            var repository = new MovieListRepository(ConnectionStringRepository.GetSqlAzureConnectionString("SQLConnectionString"));

            var requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            var data        = JsonConvert.DeserializeObject <MovieList>(requestBody);

            if (string.IsNullOrEmpty(data.Name))
            {
                return(new BadRequestObjectResult("Name is required"));
            }
            data.UserId = userid;

            //eventually this would verify a unique name

            //TODO: add error handling
            var newMovieListId = await repository.CreateMovieListAsync(data);

            data.Id = newMovieListId;

            return(new OkObjectResult(data));
        }
Ejemplo n.º 2
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            //TODO: get this from ClaimsPrincipal
            var userid = "1";

            string  requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic data        = JsonConvert.DeserializeObject(requestBody);
            var     movieId     = data?.movieId;

            if (movieId == null)
            {
                return(new BadRequestObjectResult("Must Provide Id."));
            }

            var lists = data?.lists?.ToObject <List <int> >();

            if (lists == null || lists?.Count == 0)
            {
                return(new OkObjectResult("Added to 0 lists."));
            }
            var movieListRepository = new MovieListRepository(ConnectionStringRepository.GetSqlAzureConnectionString("SQLConnectionString"));

            await movieListRepository.AddMovieToListsAsync((int)movieId, lists, userid);

            return(new OkObjectResult(new { Message = $"Added to {lists?.Count} lists." }));
        }
Ejemplo n.º 3
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "GetMovieList/{id}")] HttpRequest req,
            int?id,
            ILogger log)
        {
            //TODO: get this from ClaimsPrincipal
            var userid = "1";

            if (id == null)
            {
                return(new BadRequestObjectResult("Must Provide Id."));
            }

            var       listRepository  = new MovieListRepository(ConnectionStringRepository.GetSqlAzureConnectionString("SQLConnectionString"));
            var       movieRepository = new MovieRepository(ConnectionStringRepository.GetSqlAzureConnectionString("SQLConnectionString"));
            MovieList data            = await listRepository.GetAsync(userid, id.Value);

            if (data == null)
            {
                return(new BadRequestObjectResult("Invalid Id Provided."));
            }

            data.Movies = await movieRepository.GetByListIdAsync(data.Id);

            return(new OkObjectResult(data));
        }
Ejemplo n.º 4
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "RateMovie/{id}")] HttpRequest req,
            int?id,
            ILogger log)
        {
            //TODO: get this from ClaimsPrincipal
            var userid = "1";

            if (id == null)
            {
                return(new BadRequestObjectResult("Must Provide Id."));
            }

            string  requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic data        = JsonConvert.DeserializeObject(requestBody);

            if (data == null || data.rating == null)
            {
                return(new BadRequestObjectResult("Must provide rating."));
            }

            var movieRepository = new MovieRepository(ConnectionStringRepository.GetSqlAzureConnectionString("SQLConnectionString"));

            try
            {
                await movieRepository.SaveRatingAsync(userid, id, (int)data.rating);

                return(new OkObjectResult(new { message = "Rating saved!" }));
            }
            catch (Exception e)
            {
                return(new BadRequestObjectResult(e.Message));
            }
        }
Ejemplo n.º 5
0
        private static SqlConnection OpenSqlConnection()
        {
            var connectionString = new ConnectionStringRepository().GetConnectionString("name=TestDb");
            var sqlConnection    = new SqlConnection(connectionString);

            sqlConnection.Open();
            return(sqlConnection);
        }
Ejemplo n.º 6
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "GetMovie/{id}")] HttpRequest req,
            int?id,
            ILogger log)
        {
            //TODO: get this from ClaimsPrincipal
            var userid = "1";

            if (id == null)
            {
                return(new BadRequestObjectResult("Must Provide Id."));
            }

            var movieRepository = new MovieRepository(ConnectionStringRepository.GetSqlAzureConnectionString("SQLConnectionString"));

            var movie = await movieRepository.GetMovieForUserAsync(id, userid);

            if (movie == null)
            {
                return(new BadRequestObjectResult("Invalid Id."));
            }
            if (!movie.DataPopulated)
            {
                string omdbResult = string.Empty;
                using (var client = new HttpClient())
                {
                    var apiKey = Environment.GetEnvironmentVariable("OmdbAPIKey", EnvironmentVariableTarget.Process);
                    var result = await client.GetAsync($"http://www.omdbapi.com/?type=movie&i={movie.ImdbId}&apiKey={apiKey}");

                    if (result == null || result.Content == null)
                    {
                        return(new BadRequestObjectResult("An error ocurred in the OMDB API"));
                    }
                    omdbResult = await result.Content.ReadAsStringAsync();
                }

                dynamic data = JsonConvert.DeserializeObject(omdbResult);
                if (data == null || data?.Title == null)
                {
                    return(new BadRequestObjectResult("An error ocurred in the OMDB API"));
                }
                movie.ImdbId        = data.imdbID;
                movie.DataPopulated = true;
                movie.Director      = data.Director;
                movie.Genres        = data.Genre;
                movie.Rated         = data.Rated;
                movie.Runtime       = data.Runtime;
                movie.Title         = data.Title;
                movie.Year          = data.Year;
                movie.Id            = id.Value;
                await movieRepository.UpdateDataAsync(movie);
            }

            return(new OkObjectResult(movie));
        }
Ejemplo n.º 7
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "SearchMovies/{searchValue}")] HttpRequest req,
            string?searchValue,
            ILogger log)
        {
            if (string.IsNullOrEmpty(searchValue))
            {
                return(new BadRequestObjectResult("Must Provide Search Value."));
            }

            string omdbResult = string.Empty;

            using (var client = new HttpClient())
            {
                var apiKey = Environment.GetEnvironmentVariable("OmdbAPIKey", EnvironmentVariableTarget.Process);
                var result = await client.GetAsync($"http://www.omdbapi.com/?type=movie&s={searchValue}&apiKey={apiKey}");

                if (result == null || result.Content == null)
                {
                    return(new BadRequestObjectResult("An error ocurred in the OMDB API"));
                }
                omdbResult = await result.Content.ReadAsStringAsync();
            }

            var data = JsonConvert.DeserializeObject <SearchResult>(omdbResult);

            if (data == null || data.Search == null)
            {
                return(new BadRequestObjectResult("An error ocurred in the OMDB API"));
            }
            var movieRepository = new MovieRepository(ConnectionStringRepository.GetSqlAzureConnectionString("SQLConnectionString"));

            var movies = new List <Movie>();

            foreach (var movie in data.Search)
            {
                movies.Add(await movieRepository.GetOrInsertAsync(new Movie
                {
                    ImdbId = movie.imdbID,
                    Title  = movie.Title,
                    Year   = movie.Year
                }));
            }
            return(new OkObjectResult(movies));
        }
Ejemplo n.º 8
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            //TODO: get this from ClaimsPrincipal
            var userid = "1";

            var repository = new MovieListRepository(ConnectionStringRepository.GetSqlAzureConnectionString("SQLConnectionString"));

            try
            {
                var movieLists = await repository.GetAsync(userid);

                return(new OkObjectResult(movieLists));
            }
            catch (Exception e)
            {
                return(new BadRequestObjectResult(e.Message));
            }
        }
Ejemplo n.º 9
0
 public ConnectionService()
 {
     AesRepository = new AesRepository();
     ConnectionStringRepository = new ConnectionStringRepository();
 }