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-10-21 12:40:04 +08:00
|
|
|
|
var data = await db.GetMsgLogListAsync(searchUser, pagesize, pageIndex);
|
2015-07-16 21:00:51 +08:00
|
|
|
|
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
|
|
|
|
}
|