public async Task <IActionResult> Get([FromQuery] string authorization, ReplySearchParameters parameters) { var replies = await _replyService.Get(parameters); if (replies == null || !replies.Any()) { return(Ok(new List <ReplyViewResult>())); } foreach (var reply in replies) { reply.Files = new List <StorageViewResult>(); var filesInformation = await _storageService.Get(new StorageSearchParameters { TicketId = reply.TicketId, ReplyId = reply.Id }); if (filesInformation != null) { foreach (var item in filesInformation) { reply.Files.Add(new StorageViewResult { Id = item.Id, Name = item.Name, Extension = item.Extension, }); } } } return(Ok(replies)); }
public async Task <List <ReplyViewResult> > Get(ReplySearchParameters parameters) { var query = _dbContext.Replies.AsQueryable(); if (parameters.StaffId.HasValue) { query = query.Where(r => r.Employee.Id == parameters.StaffId); } if (parameters.ClientId.HasValue) { query = query.Where(r => r.Client.Id == parameters.ClientId); } if (parameters.TicketId.HasValue) { query = query.Where(r => r.Ticket.Id == parameters.TicketId); } if (parameters.CreateDateTime.HasValue) { query = query.Where(r => r.CreateDateTime.Equals(parameters.CreateDateTime)); } var replies = await query.Include(c => c.Client).Include(e => e.Employee).Include(t => t.Ticket).ToListAsync(); if (replies == null || !replies.Any()) { return(new List <ReplyViewResult>()); } var replyViewResult = new List <ReplyViewResult>(); foreach (var reply in replies) { replyViewResult.Add(new ReplyViewResult { Id = reply.Id, Content = reply.Content, CreateDateTime = reply.CreateDateTime, StaffMemberName = reply.Employee?.Name, ClientName = reply.Client?.Name, TicketId = reply.Ticket.Id, SenderType = reply.SenderType }); } return(replyViewResult); }