Ejemplo n.º 1
0
        public void SearchCoursesByInstructorName()
        {
            var request = new SearchCoursesRequest
            {
                InstructorName = "Marc James",
            };

            var res = service.SearchCourses(request);

            Xunit.Assert.True(res.Courses.ToList().Count > 0);
        }
Ejemplo n.º 2
0
        public void SearchCoursesByFrameworkName()
        {
            var request = new SearchCoursesRequest
            {
                FrameworkName = ".NET",
            };

            var res = service.SearchCourses(request);

            Xunit.Assert.True(res.Courses.ToList().Count > 0);
        }
Ejemplo n.º 3
0
        public void SearchCoursesByCategoryName()
        {
            var request = new SearchCoursesRequest
            {
                CategoryName = "Software Development",
            };

            var res = service.SearchCourses(request);

            Xunit.Assert.True(res.Courses.ToList().Count > 0);
        }
Ejemplo n.º 4
0
        public void SearchCoursesByTitle()
        {
            var request = new SearchCoursesRequest
            {
                Title = "ch",
            };

            var res = service.SearchCourses(request);

            Xunit.Assert.True(res.Courses.ToList().Count > 0);
        }
Ejemplo n.º 5
0
        public void SearchCoursesByRating()
        {
            var request = new SearchCoursesRequest
            {
                UpRating   = 5.0m,
                DownRating = 4.6m
            };

            var res = service.SearchCourses(request);

            Xunit.Assert.True(res.Courses.ToList().Count > 0);
        }
Ejemplo n.º 6
0
        public void SearchCoursesByPrice()
        {
            var request = new SearchCoursesRequest
            {
                UpPrice   = 25.0m,
                DownPrice = 12.0m
            };

            var res = service.SearchCourses(request);

            Xunit.Assert.True(res.Courses.ToList().Count > 0);
        }
Ejemplo n.º 7
0
        public GetCoursesResponse SearchCourses(SearchCoursesRequest request)
        {
            var searchDictionary = SetUpSqlQueurySearchCOurses(request);

            using (var con = GetSqlConnection())
            {
                var response = con.Query <CourseResponse>(searchDictionary.First().Key, searchDictionary.First().Value);

                return(new GetCoursesResponse()
                {
                    Courses = response
                });
            }
        }
Ejemplo n.º 8
0
        private Dictionary <string, DynamicParameters> SetUpSqlQueurySearchCOurses(SearchCoursesRequest request)
        {
            Dictionary <string, DynamicParameters> searchDictionary = new Dictionary <string, DynamicParameters>();
            var dynamicParameters = new DynamicParameters();

            string sql = SqlQueurySearchCOurses();

            if (!string.IsNullOrWhiteSpace(request.Title))
            {
                sql += " AND c.title LIKE '%' + @Title + '%' ";
                dynamicParameters.Add("@Title", request.Title);
            }

            if (!string.IsNullOrWhiteSpace(request.InstructorName))
            {
                sql += " AND ins.fullname = @fullname ";
                dynamicParameters.Add("@fullname", request.InstructorName);
            }

            if (!string.IsNullOrWhiteSpace(request.FrameworkName))
            {
                sql += " AND fr.name = @Framework ";
                dynamicParameters.Add("@Framework", request.FrameworkName);
            }

            if (!string.IsNullOrWhiteSpace(request.CategoryName))
            {
                sql += " AND cat.name = @CategoryName ";
                dynamicParameters.Add("@CategoryName", request.CategoryName);
            }

            if (request.UpPrice.HasValue && request.DownPrice.HasValue && request.DownPrice < request.UpPrice)
            {
                sql += " AND c.price Between @DownPrice And @UpPrice ";
                dynamicParameters.Add("@DownPrice", request.DownPrice);
                dynamicParameters.Add("@UpPrice", request.UpPrice);
            }

            if (request.UpRating.HasValue && request.DownRating.HasValue && request.DownRating < request.UpRating)
            {
                sql += " AND c.rating Between @DownRating And @UpRating ";
                dynamicParameters.Add("@DownRating", request.DownRating);
                dynamicParameters.Add("@UpRating", request.UpRating);
            }

            searchDictionary.Add(sql, dynamicParameters);
            return(searchDictionary);
        }
Ejemplo n.º 9
0
        public HttpResponseMessage SearchCourses([FromBody] SearchCoursesRequest request)
        {
            var response = _service.SearchCourses(request);

            if (response.Courses.ToList().Count > 0)
            {
                return(Request.CreateResponse <GetCoursesResponse>(HttpStatusCode.OK, response));
            }
            else if (response.Courses.ToList().Count == 0)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NoContent, "No courses found"));
            }
            else
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Something went wrong..."));
            }
        }
Ejemplo n.º 10
0
 public GetCoursesResponse SearchCourses(SearchCoursesRequest request)
 {
     return(_dbService.SearchCourses(request));
 }