Esempio n. 1
0
        public async Task <IActionResult> GetEvents(string appId, [FromQuery] EventQueryDto q)
        {
            var topics = await eventStore.QueryAsync(appId, q.ToQuery(true), HttpContext.RequestAborted);

            var response = new ListResponseDto <EventDto>();

            response.Items.AddRange(topics.Select(x => EventDto.FromDomainObject(x, App)));
            response.Total = topics.Total;

            return(Ok(response));
        }
        public async Task <HttpResponseMessage> GetAllAsExcelAsync([FromUri] EventQueryDto model, CancellationToken cancellationToken)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
            if (model == null)
            {
                model = new Models.EventQueryDto();
            }
            var stream = new MemoryStream();
            await _eventManager.ReportGenerator.GenerateAsync(stream, (await _eventManager.FindAllAsync(
                                                                           ApiSecurity.CurrentUserId,
                                                                           model.CategoryId,
                                                                           model.DateFrom,
                                                                           model.DateTo,
                                                                           model.ObjectType,
                                                                           model.ObjectId,
                                                                           model.ContactId,
                                                                           model.ContactState,
                                                                           model.ProjectId,
                                                                           model.CustomUri,
                                                                           model.Emails,
                                                                           model.Clients,
                                                                           1, 100000,
                                                                           cancellationToken)).Data,
                                                              cancellationToken);

            stream.Position = 0;
            var response = new HttpResponseMessage(HttpStatusCode.OK);

            response.Headers.CacheControl = new CacheControlHeaderValue {
                Private = true
            };
            response.Content = new StreamContent(stream);
            response.Content.Headers.Expires            = DateTime.UtcNow.AddMinutes(1);
            response.Content.Headers.ContentType        = new MediaTypeHeaderValue(MediaTypes.Excel2007);
            response.Content.Headers.ContentLength      = stream.Length;
            response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue(DispositionTypeNames.Attachment)
            {
                FileName = string.Format("events-{0}.xlsx", DateTime.UtcNow.ToString("yyyyMMdd-HHmmss")),
                Size     = stream.Length
            };
            return(response);
        }
Esempio n. 3
0
 public async Task <PagedResult <EventDto> > SearchEvents(
     [FromBody] EventQueryDto query, [FromQuery] int?pageIndex,
     [FromQuery] int?pageSize, [FromQuery] string orderBy = "")
 {
     return(await _service.SearchItemsAsync(query, pageIndex, pageSize, orderBy));
 }