131 lines
3.2 KiB
C#
131 lines
3.2 KiB
C#
using System.Collections.Generic;
|
|
|
|
public class ServerModel : Base
|
|
{
|
|
|
|
string key;
|
|
|
|
public List<ServerItem> list = new List<ServerItem>();
|
|
//public Dictionary<int, ServerItem> mainMap = new Dictionary<int, ServerItem>();
|
|
public ServerItem def_server;
|
|
public ServerItem sel_server;
|
|
public string loginName;
|
|
//public int roleCount;
|
|
public List<ServerRoleData> roles = new List<ServerRoleData>();
|
|
|
|
public void SetKey(string key)
|
|
{
|
|
this.key = key;
|
|
}
|
|
|
|
public string GetKey()
|
|
{
|
|
return this.key;
|
|
}
|
|
|
|
public void Reset()
|
|
{
|
|
list.Clear();
|
|
def_server = null;
|
|
sel_server = null;
|
|
roles.Clear();
|
|
}
|
|
|
|
public ServerItem GetCurServer()
|
|
{
|
|
ServerItem server = this.list[this.list.Count - 1];
|
|
if (this.def_server == null)
|
|
{
|
|
if (this.roles.Count == 0)
|
|
{
|
|
if (server.isRec)
|
|
{
|
|
this.def_server = server;
|
|
}
|
|
else
|
|
{
|
|
for (int i = this.list.Count - 2; i >= 0; i--)
|
|
{
|
|
if (list[i].isRec)
|
|
{
|
|
server = this.def_server = list[i];
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (def_server == null)
|
|
def_server = server;
|
|
//return def_server;
|
|
}
|
|
else
|
|
{
|
|
ServerRoleData myRole = null;
|
|
for (int i = 0; i < roles.Count; i++)
|
|
{
|
|
if (myRole == null)
|
|
{
|
|
myRole = roles[i];
|
|
}
|
|
else if (roles[i].logoutTime > myRole.logoutTime)
|
|
{
|
|
myRole = roles[i];
|
|
}
|
|
}
|
|
this.def_server = GetServerItemById(myRole.serverId);
|
|
}
|
|
return def_server;
|
|
}
|
|
else
|
|
{
|
|
server = def_server;
|
|
}
|
|
if (server == null)
|
|
server = this.list[this.list.Count - 1];
|
|
return server;
|
|
}
|
|
|
|
public ServerItem GetServerItemById(int serverId)
|
|
{
|
|
for (int i = 0; i < list.Count; i++)
|
|
{
|
|
if (list[i].serverId == serverId)
|
|
return list[i];
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public ServerRoleData GetRoleByServerId(int serverId)
|
|
{
|
|
for (int i = 0; i < roles.Count; i++)
|
|
{
|
|
if (roles[i].serverId == serverId)
|
|
{
|
|
return roles[i];
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public void SetSelServer(int serverId)
|
|
{
|
|
sel_server = GetServerItemById(serverId);
|
|
}
|
|
}
|
|
|
|
public class UserServerListJson
|
|
{
|
|
public string Token { get; set; }
|
|
public long UserId { get; set; }
|
|
public string Username { get; set; }
|
|
public List<UserServerInfo> ServerList { get; set; }
|
|
}
|
|
|
|
public class UserServerInfo
|
|
{
|
|
public int Id { get; set; }
|
|
public string Area { get; set; }
|
|
public string Name { get; set; }
|
|
public string Address { get; set; }
|
|
public int Online { get; set; }
|
|
}
|