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)); } }
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))); } }
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)); }
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() )); }
public async Task <PagedResultOutput <MessageDto> > GetAllMessages(GetMessagesInput input) { return(await ProcessGet(input)); }