Light12306/ChatRoomServer.Www/Areas/Api/Controllers/MsgsController.cs

43 lines
1.0 KiB
C#

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<object> List([FromBody] Dictionary<string, string> 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)
})
};
}
}
}