Exemplo n.º 1
0
        public Task <IEnumerable <MinimalLinkApplicationModel> > Handle(GetRequestLinksByUUIDQuery query, CancellationToken cancellationToken)
        {
            var requestPersistenceModel = _requestRepository
                                          .FindAll(x => x.UUID == query.UUID)
                                          .FirstOrDefault();

            if (requestPersistenceModel == null)
            {
                return(Task.FromResult <IEnumerable <MinimalLinkApplicationModel> >(null));
            }

            IEnumerable <MinimalLinkApplicationModel> linksApplicationModels = _linkRepository
                                                                               .Include(x => x.RedirectsTo)
                                                                               .Where(x => x.RequestID == requestPersistenceModel.ID)
                                                                               .ProjectTo <MinimalLinkApplicationModel>(_mapper.ConfigurationProvider);

            return(Task.FromResult(linksApplicationModels));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> DownloadJobAsCSV(Guid userUUID, Guid requestUUID)
        {
            var links = await _mediator.Send(GetRequestLinksByUUIDQuery.Build(requestUUID));

            if (links == null)
            {
                return(NotFound());
            }

            return(new FileCallbackResult(new MediaTypeHeaderValue("text/csv"), async(outputStream, _) =>
            {
                var writer = new StreamWriter(HttpContext.Response.Body);
                var csv = new CsvWriter(writer);
                csv.Configuration.RegisterClassMap <MinimalLinkApplicationModelCSVMap>();
                csv.WriteRecords(links);
                await writer.FlushAsync();
            })
            {
                FileDownloadName = "links.csv"
            });
        }