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

43 lines
1.0 KiB
C#
Raw Normal View History

2015-07-15 20:55:09 +08:00
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
{
2015-07-16 21:00:51 +08:00
using System.Data.Entity;
2015-07-15 20:55:09 +08:00
using System.Threading.Tasks;
using ChatRoomServer.Db;
[Authorize]
2015-07-16 21:00:51 +08:00
[RoutePrefix("api/msgs")]
public class MsgsController : ApiController
{
[Route("list")]
2015-07-15 20:55:09 +08:00
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();
2015-07-16 21:00:51 +08:00
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);
2015-07-15 20:55:09 +08:00
2015-07-16 21:00:51 +08:00
return new
{
count = data.TotalCount,
list = data.Data.Select(s => new
{
msg = s,
room = roomdata.GetValue(s.RoomId)
})
};
2015-07-15 20:55:09 +08:00
}
2015-07-16 21:00:51 +08:00
}
2015-07-15 20:55:09 +08:00
}