using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; namespace ChatRoomServer.Www.Areas.Api.Controllers { using System.Data.Entity; using System.Threading.Tasks; using ChatRoomServer.Db; [Authorize] [RoutePrefix("api/msgs")] public class MsgsController : ApiController { [Route("list")] public async Task List([FromBody] Dictionary query) { var searchUser = query.GetValue("searchUser") ?? ""; var pageIndex = query.GetValue("pageIndex").ToInt32(1); var pagesize = query.GetValue("pagesize").ToInt32(20); var db = new ChatDb(); var data = await db.GetMsgLogList(searchUser, pagesize, pageIndex); var rooms = data.Data.Select(s => s.RoomId).Distinct().ToArray(); var roomdata = await db.Rooms.Where(s => rooms.Contains(s.ID)).ToDictionaryAsync(s => s.ID); return new { count = data.TotalCount, list = data.Data.Select(s => new { msg = s, room = roomdata.GetValue(s.RoomId) }) }; } } }