public void SearchCoursesByInstructorName() { var request = new SearchCoursesRequest { InstructorName = "Marc James", }; var res = service.SearchCourses(request); Xunit.Assert.True(res.Courses.ToList().Count > 0); }
public void SearchCoursesByFrameworkName() { var request = new SearchCoursesRequest { FrameworkName = ".NET", }; var res = service.SearchCourses(request); Xunit.Assert.True(res.Courses.ToList().Count > 0); }
public void SearchCoursesByCategoryName() { var request = new SearchCoursesRequest { CategoryName = "Software Development", }; var res = service.SearchCourses(request); Xunit.Assert.True(res.Courses.ToList().Count > 0); }
public void SearchCoursesByTitle() { var request = new SearchCoursesRequest { Title = "ch", }; var res = service.SearchCourses(request); Xunit.Assert.True(res.Courses.ToList().Count > 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); }
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); }
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 }); } }
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); }
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...")); } }
public GetCoursesResponse SearchCourses(SearchCoursesRequest request) { return(_dbService.SearchCourses(request)); }