public async Task <ListQuoteResponseModel> GetList(ListQuoteRequestModel request) { try { ListQuoteResponseModel response = await getListResponse(request); return(response); } catch (System.Exception) { throw; } }
public async Task <ListQuoteResponseModel> GetListByUserAsync(ListQuoteRequestModel request, string userId) { try { ListQuoteResponseModel response = await getListResponseByUser(request, userId); return(response); } catch (System.Exception) { throw; } }
private async Task <ListQuoteResponseModel> getListResponseBySnitch(ListQuoteRequestModel request, string snitchId) { IQueryable <QuoteModel> orderedQuery = null; var quotesCount = await countQuotesbySnitch(snitchId); var numberOfPages = quotesCount / request.N; orderedQuery = generateListQueriableBySnitch(request, orderedQuery, snitchId); ListQuoteResponseModel response = await getListResponse(request, orderedQuery, quotesCount, numberOfPages); return(response); }
private static async Task <ListQuoteResponseModel> getListResponse(ListQuoteRequestModel request, IQueryable <QuoteModel> orderedQuery, int quotesCount, int numberOfPages) { var toReturnList = (await orderedQuery?.Skip(request.N * request.Page) .Take(request.N)?.ToListAsync()).ConvertAll( q => q.ToFullViewMode() ); var response = new ListQuoteResponseModel() { NumberOfPages = numberOfPages, PageNumber = request.Page, Quotes = toReturnList, TotalQuotes = quotesCount }; return(response); }
private async Task <ListQuoteResponseModel> getListResponse(ListQuoteRequestModel request) { IQueryable <QuoteModel> orderedQuery = null; var quotesCount = await countQuotes(); var numberOfPages = quotesCount / request.N; var queryUnordered = _context.Quote.AsNoTracking(); switch (request.OrderBy) { case OrderByEnum.ByDate: orderedQuery = queryUnordered.OrderByDescending(q => q.Date); break; case OrderByEnum.ByName: orderedQuery = queryUnordered.OrderByDescending(q => q.User.Name); break; case OrderByEnum.ByPositiveVotes: orderedQuery = queryUnordered.OrderByDescending(q => q.Upvotes); break; case OrderByEnum.ByNegativeVotes: orderedQuery = queryUnordered.OrderByDescending(q => q.Downvotes); break; } var toReturnList = await orderedQuery?.Skip(request.N *request.Page) .Take(request.N)?.ToListAsync(); var response = new ListQuoteResponseModel() { NumberOfPages = numberOfPages, PageNumber = request.Page, quotes = toReturnList, TotalQuotes = quotesCount }; return(response); }