public async Task <ListViewModel <CoursesViewModel> > GetCoursesAsync(CoursesListInputModel input) { logger.LogInformation("Course richiesti"); string orderBy = input.OrderBy == "CurrentPrice" ? "CurrentPrice_Amount" : input.OrderBy; string direction = input.Ascending ? "ASC" : "DESC"; FormattableString query = $@"SELECT Id, Title, ImagePath, Author, Rating, FullPrice_Amount, FullPrice_Currency, CurrentPrice_Amount, CurrentPrice_Currency FROM Courses WHERE Title LIKE {"%"+input.Search+"%"} ORDER BY {(Sql) orderBy} {(Sql) direction} LIMIT {input.Limit} OFFSET {input.Offset}; SELECT COUNT(*) FROM Courses WHERE Title LIKE {"%"+input.Search+"%"}"; DataSet dataSet = await db.QueryAsync(query); var dataTable = dataSet.Tables[0]; var CoursesList = new List <CoursesViewModel>(); foreach (DataRow item in dataTable.Rows) { CoursesViewModel corsi = CoursesViewModel.FromDataRow(item); CoursesList.Add(corsi); } int totalCount = Convert.ToInt32(dataSet.Tables[1].Rows[0][0]); ListViewModel <CoursesViewModel> result = new ListViewModel <CoursesViewModel> { Result = CoursesList, TotalCount = totalCount }; return(result); }
public async Task <List <CoursesViewModel> > GetBestCourseAsync() { FormattableString query = $"SELECT Id, Title, ImagePath, Author, Rating, FullPrice_Amount, FullPrice_Currency, CurrentPrice_Amount, CurrentPrice_Currency FROM Courses ORDER BY Rating DESC LIMIT 3"; DataSet dataSet = await db.QueryAsync(query); var dataTable = dataSet.Tables[0]; var CoursesList = new List <CoursesViewModel>(); foreach (DataRow item in dataTable.Rows) { CoursesViewModel corsi = CoursesViewModel.FromDataRow(item); CoursesList.Add(corsi); } return(CoursesList); }