public PagedList <RubReport> GetReportTransactions(ReportsResourceParameters parameters) { var collectionBeforePaging = _context.RubReports .AsNoTracking() .OrderByDescending(c => c.QpayCreatedAt) .AsQueryable(); // Search. // if (!string.IsNullOrEmpty(parameters.SearchQuery)) { // var searchQyeries = parameters.SearchQuery.Split(" ").ToList(); // foreach (var query in searchQyeries) { // var searchQueryForWhereClause = query.Trim().ToLowerInvariant(); // collectionBeforePaging = collectionBeforePaging // .Where(c => c.QpayTransactionId.ToLowerInvariant().Contains(searchQueryForWhereClause) // || c.GatewayTransactionId.ToLowerInvariant().Contains(searchQueryForWhereClause) // || c.ServiceProviderTransactionId.ToLowerInvariant().Contains(searchQueryForWhereClause) // || c.Account.ToLowerInvariant().Contains(searchQueryForWhereClause) // ); // } // } var reports = PagedList <RubReport> .Create(collectionBeforePaging, parameters.PageNumber, parameters.PageSize); return(reports); }
private string CreateReportsResourceUri(ReportsResourceParameters parameters, ResourceUriType type) { switch (type) { case ResourceUriType.PreviousPage: return(_urlHelper.Link("GetRubReports", new { pageNumber = parameters.PageNumber - 1, pageSize = parameters.PageSize, searchQuery = parameters.SearchQuery })); case ResourceUriType.NextPage: return(_urlHelper.Link("GetRubReports", new { pageNumber = parameters.PageNumber + 1, pageSize = parameters.PageSize, searchQuery = parameters.SearchQuery })); default: return(_urlHelper.Link("GetRubReports", new { pageNumber = parameters.PageNumber, pageSize = parameters.PageSize, searchQuery = parameters.SearchQuery })); } }
public async Task <IActionResult> GenerateCsvFile([FromQuery] int?serviceId = null, [FromQuery] DateTime?from = null, [FromQuery] DateTime?to = null) { var data = "Created at,QPay ID,Gateway ID,Provider ID,TJS,RUB,Rate,Service,Terminal\n"; var parameters = new ReportsResourceParameters { }; //var transactionsFromRepo = _rep.GetReportTransactions(parameters); var transactionsFromRepo = _rep.GetReportTransactions(from, to, serviceId); foreach (var transaction in transactionsFromRepo) { data += transaction.QpayCreatedAt; data += "," + transaction.QpayTransactionId; data += "," + transaction.GatewayTransactionId; data += "," + transaction.ServiceProviderTransactionId; data += "," + transaction.AmountInTjs; data += "," + transaction.AmountInRub; data += "," + transaction.RubRate; switch (transaction.ServiceUpgId) { case 323: data += ",Megafon RT (IBT RUB)"; break; case 325: data += ",Tcell (IBT RUB)"; break; case 326: data += ",Babilon-M (IBT RUB)"; break; case 324: data += ",Beeline RT (IBT RUB)"; break; } data += "," + transaction.TerminalNumber; data += "\n"; } var bytes = UnicodeEncoding.UTF8.GetBytes(data); return(File(bytes, "text/csv")); }
public async Task <IActionResult> GetRubReports([FromQuery] ReportsResourceParameters parameters) { var transactionsFromRepo = _rep.GetReportTransactions(parameters); var paginationMetadata = new { totalCount = transactionsFromRepo.TotalCount, pageSize = transactionsFromRepo.PageSize, currentPage = transactionsFromRepo.CurrentPage, totalPages = transactionsFromRepo.TotalPages, // previousPageLink = previousPageLink, // nextPageLink = nextPageLink }; Response.Headers.Add("X-Pagination", Newtonsoft.Json.JsonConvert.SerializeObject(paginationMetadata)); var clients = Mapper.Map <IEnumerable <RubReportDto> >(transactionsFromRepo); return(Ok(clients)); }