Exemplo n.º 1
0
        public async Task <IHttpActionResult> ReceiveMessage([FromBody] GetMessagesInput json)
        {
            try
            {
                if (json.Type == MessageBehaviourTypeEnum.Message)
                {
                    await _configService.UpdateLastMessageId(json.Mesage.MessageId);
                }


                var tuple = await Command(json.Mesage);


                if (json.Type == MessageBehaviourTypeEnum.API)
                {
                    if (!tuple.toast)
                    {
                        await _messengerService.SendMessage(tuple.model);
                    }
                    return(Ok(new { bot_keypad = tuple.model.Keypad, text_message = tuple.toast ? tuple.model.Text : "" }));
                }

                await _messengerService.SendMessage(tuple.model);

                return(CustomResult());
            }
            catch (Exception exception)
            {
                return(CustomError(exception));
            }
        }
Exemplo n.º 2
0
 public async Task <PagedResultOutput <MessageDto> > GetMessages(GetMessagesInput input)
 {
     using (CurrentUnitOfWork.EnableFilter(AbpZeroTemplateConsts.AdminCommunityFilterClass.Name))
     {
         using (CurrentUnitOfWork.SetFilterParameter(AbpZeroTemplateConsts.AdminCommunityFilterClass.Name, AbpZeroTemplateConsts.AdminCommunityFilterClass.ParameterName, await GetAdminCommunityIdList()))
         {
             return(await ProcessGet(input));
         }
     }
 }
        public async Task <IList <Message> > GetMessages(GetMessagesInput input)
        {
            var user         = _userService.GetCurrentUser();
            var conversation = await GetConversation(user.UserName, input.ReceiptUserName);

            if (conversation == null)
            {
                return(null);
            }

            var messages = conversation.Messages.SkipLast(input.Skip).Take(input.Take);

            return(_mapper.Map <List <Message> >(messages));
        }
        public async virtual Task <IHttpActionResult> GetMessages(string userName, string token, int skipCount, int maxResultCount, string sorting = null, int?tenantId = null)
        {
            base.AuthUser();
            using (CurrentUnitOfWork.SetTenantId(tenantId))
            {
                var homeOwerUser = await _homeOwerUserManager.GetHomeOwerUserByUserName(userName);

                if (homeOwerUser.HomeOwerId == 0)
                {
                    throw ErrorCodeTypeUtils.ThrowError(ErrorCodeType.HomeOwerNotExists);
                }
                var input = new GetMessagesInput();
                input.HomeOwerId     = homeOwerUser.HomeOwerId;
                input.MaxResultCount = maxResultCount;
                input.SkipCount      = skipCount;
                if (!string.IsNullOrEmpty(sorting))
                {
                    input.Sorting = sorting;
                }

                return(Ok(await _messageService.GetAllMessages(input)));
            }
        }
Exemplo n.º 5
0
        public async Task <PagedResultDto <ChatMessageDto> > GetMessages(GetMessagesInput input)
        {
            var query = _chatMessageRepository.GetAllIncluding(msg => msg.User)
                        .Where(msg => msg.SessionId == input.SessionId)
                        .WhereIf(input.Direction == QueryDirection.New, msg => msg.Id > input.LastReceivedMessageId)
                        .WhereIf(input.Direction == QueryDirection.History, msg => msg.Id <= input.LastReceivedMessageId);
            int totalCount = await query.CountAsync();

            var list = await query.OrderBy(input.Sorting).PageBy(input)
                       .Select(x => new ChatMessageDto
            {
                Id           = x.Id,
                SessionId    = x.SessionId,
                UserId       = x.UserId,
                SenderName   = x.User.UserName,
                Message      = x.Message,
                CreationTime = x.CreationTime,
                ReadState    = x.ReadState
            })
                       .ToListAsync();

            return(new PagedResultDto <ChatMessageDto>(totalCount, list));
        }
Exemplo n.º 6
0
        private async Task <PagedResultOutput <MessageDto> > ProcessGet(GetMessagesInput input)
        {
            //var query = _manager.FindMessageList(input.Sorting);

            var query = from m in _manager.MessageRepository.GetAll()
                        orderby input.Sorting
                        select new
            {
                To = m.IsPublic ? m.BuildingName : m.HomeOwer.Name,
                m.Id,
                m.Title,
                m.Content,
                m.IsPublic,
                m.IsRead,
                m.CreationTime,
                m.HomeOwer,
                m.Files,
                HomeOwerName = m.HomeOwer.Name,
                m.CommunityName,
                m.BuildingName,
                m.FlatNo,
                m.HomeOwerId,
                m.Status,
                m.CommunityId,
                m.BuildingId,
                m.FlatNoId,
                CreationTimeStr = m.CreationTime.ToString()
            };

            if (input.HomeOwerId.HasValue)
            {
                //业主ID,用于app端获取数据
                query = query.Where(r => r.HomeOwerId == input.HomeOwerId.Value);
            }

            if (input.CommunityId.HasValue)
            {
                query = query.Where(m => m.CommunityId == input.CommunityId.Value);
            }

            if (!string.IsNullOrEmpty(input.Keywords))
            {
                //单元楼 / 门牌号 / 业主名称
                query = query.Where(m => m.HomeOwer.Forename.Contains(input.Keywords) ||
                                    m.HomeOwer.Surname.Contains(input.Keywords) ||
                                    m.HomeOwer.CommunityName.Contains(input.Keywords) ||
                                    m.BuildingName.Contains(input.Keywords) ||
                                    m.FlatNo.Contains(input.Keywords)
                                    //|| d.HomeOwer.Buildings.Any(b => b.BuildingName.Contains(input.Keywords))
                                    );
            }
            if (input.StartDate.HasValue)
            {
                //开始时间
                query = query.Where(m => m.CreationTime >= input.StartDate.Value);
            }
            if (input.EndDate.HasValue)
            {
                input.EndDate = input.EndDate.Value.AddDays(1).AddSeconds(-1);
                //结束时间
                query = query.Where(m => m.CreationTime <= input.EndDate.Value);
            }
            if (!string.IsNullOrEmpty(input.Status))
            {
                //状态
                query = query.Where(m => m.Status.ToString() == input.Status);
            }

            var totalCount = await query.CountAsync();

            var items = await query.OrderByDescending(m => m.CreationTime).PageBy(input).ToListAsync();

            return(new PagedResultOutput <MessageDto>(
                       totalCount,
                       items.Select(
                           item =>
            {
                return Mapper.DynamicMap <MessageDto>(item);
            }
                           ).ToList()
                       ));
        }
Exemplo n.º 7
0
 public async Task <PagedResultOutput <MessageDto> > GetAllMessages(GetMessagesInput input)
 {
     return(await ProcessGet(input));
 }