예제 #1
0
        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));
        }
예제 #2
0
        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);
        }