2024-03-07 21:04:59 +08:00
|
|
|
|
|
2024-06-23 10:04:00 +08:00
|
|
|
|
using System.Diagnostics;
|
|
|
|
|
|
|
2024-03-07 21:04:59 +08:00
|
|
|
|
namespace Zerolauncher.Manager
|
|
|
|
|
|
{
|
2024-08-04 18:24:17 +08:00
|
|
|
|
internal static class AccountManager
|
2024-03-07 21:04:59 +08:00
|
|
|
|
{
|
2024-08-04 18:24:17 +08:00
|
|
|
|
static int _teamId;
|
2024-03-07 21:04:59 +08:00
|
|
|
|
|
2024-08-04 18:24:17 +08:00
|
|
|
|
public static string TeamName = "";
|
2024-03-07 21:04:59 +08:00
|
|
|
|
|
2024-08-04 18:24:17 +08:00
|
|
|
|
public static List<AccountNew>? AccountsList;
|
2024-03-07 21:04:59 +08:00
|
|
|
|
|
2024-08-04 18:24:17 +08:00
|
|
|
|
public static void InitLoadData()
|
2024-03-07 21:04:59 +08:00
|
|
|
|
{
|
2024-08-04 18:24:17 +08:00
|
|
|
|
_teamId = AccountData.TeamIndex;
|
|
|
|
|
|
foreach (var pair in GroupsData.Data)
|
2024-03-07 21:04:59 +08:00
|
|
|
|
{
|
2024-06-23 10:04:00 +08:00
|
|
|
|
Trace.WriteLine(pair.Key, pair.Value);
|
2024-03-07 21:04:59 +08:00
|
|
|
|
}
|
2024-08-04 18:24:17 +08:00
|
|
|
|
TeamName = GroupsData.Data[_teamId];
|
|
|
|
|
|
AccountsList = AccountData.Data[_teamId];
|
2024-03-07 21:04:59 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-06-23 10:04:00 +08:00
|
|
|
|
public static void ChangeTeam(int index)
|
2024-03-07 21:04:59 +08:00
|
|
|
|
{
|
2024-08-04 18:24:17 +08:00
|
|
|
|
_teamId = TeamManager.Index2Key(index);
|
|
|
|
|
|
_teamId = AccountData.TeamIndex;
|
|
|
|
|
|
TeamName = GroupsData.Data[_teamId];
|
|
|
|
|
|
AccountsList = AccountData.Data[_teamId];
|
2024-06-23 10:04:00 +08:00
|
|
|
|
}
|
2024-03-07 21:04:59 +08:00
|
|
|
|
|
2024-08-04 18:24:17 +08:00
|
|
|
|
public static void SaveEdit()
|
2024-03-07 21:04:59 +08:00
|
|
|
|
{
|
2024-06-23 10:04:00 +08:00
|
|
|
|
DataStreamNew.Save();
|
2024-03-07 21:04:59 +08:00
|
|
|
|
MainWindow.Instance.ReloadBtn();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-06-23 10:04:00 +08:00
|
|
|
|
public static bool AddAccount(AccountNew account)
|
2024-03-07 21:04:59 +08:00
|
|
|
|
{
|
2024-08-04 18:24:17 +08:00
|
|
|
|
account.groupId = _teamId;
|
2024-06-23 10:04:00 +08:00
|
|
|
|
AccountData.AddAccount(account);
|
|
|
|
|
|
|
|
|
|
|
|
DataStreamNew.Save();
|
2024-03-07 21:04:59 +08:00
|
|
|
|
MainWindow.Instance.ReloadBtn();
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-06-23 10:04:00 +08:00
|
|
|
|
public static bool AddAccounts(AccountNew account)
|
2024-03-07 21:04:59 +08:00
|
|
|
|
{
|
2024-08-04 18:24:17 +08:00
|
|
|
|
account.groupId = _teamId;
|
2024-06-23 10:04:00 +08:00
|
|
|
|
AccountData.AddAccount(account);
|
2024-03-07 21:04:59 +08:00
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static void MoveAccount(int memberId, int newIndex)
|
|
|
|
|
|
{
|
2024-08-04 18:24:17 +08:00
|
|
|
|
var groupId = TeamManager.Index2Key(newIndex);
|
|
|
|
|
|
if (AccountsList != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
var acc = AccountsList[memberId];
|
|
|
|
|
|
AccountsList.RemoveAt(memberId);
|
|
|
|
|
|
if (!AccountData.CheckGroup(groupId)) return;
|
|
|
|
|
|
AccountData.Data[groupId].Add(acc);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-06-23 10:04:00 +08:00
|
|
|
|
DataStreamNew.Save();
|
2024-03-07 21:04:59 +08:00
|
|
|
|
MainWindow.Instance.ReloadBtn();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static void DeleteAccount(int index) {
|
2024-08-04 18:24:17 +08:00
|
|
|
|
if (AccountsList != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
var nick = AccountsList[index].nickName;
|
|
|
|
|
|
AccountsList.RemoveAt(index);
|
|
|
|
|
|
AccountData.Dict.Remove(nick);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-06-23 10:04:00 +08:00
|
|
|
|
DataStreamNew.Save();
|
2024-03-07 21:04:59 +08:00
|
|
|
|
MainWindow.Instance.ReloadBtn();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-08-04 18:24:17 +08:00
|
|
|
|
public static void EditTeamName(string teamName0)
|
2024-03-07 21:04:59 +08:00
|
|
|
|
{
|
2024-08-04 18:24:17 +08:00
|
|
|
|
TeamName = teamName0;
|
|
|
|
|
|
GroupsData.Data[_teamId] = TeamName;
|
2024-06-23 10:04:00 +08:00
|
|
|
|
DataStreamNew.Save();
|
2024-03-07 21:04:59 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static bool DeleteTeam()
|
|
|
|
|
|
{
|
2024-08-04 18:24:17 +08:00
|
|
|
|
if (GroupsData.Data.Keys.Count == 1)
|
2024-03-07 21:04:59 +08:00
|
|
|
|
{
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
2024-06-23 10:04:00 +08:00
|
|
|
|
AccountData.RemoveGroup();
|
2024-08-04 18:24:17 +08:00
|
|
|
|
ChangeTeam(GroupsData.Data.Keys.First());
|
2024-06-23 10:04:00 +08:00
|
|
|
|
DataStreamNew.Save();
|
2024-03-07 21:04:59 +08:00
|
|
|
|
MainWindow.Instance.ReloadBtn();
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-08-04 18:24:17 +08:00
|
|
|
|
internal static class TeamManager
|
2024-03-07 21:04:59 +08:00
|
|
|
|
{
|
2024-06-23 10:04:00 +08:00
|
|
|
|
|
2024-08-04 18:24:17 +08:00
|
|
|
|
public static int Index2Key(int index) { return GroupsData.Data.ElementAt(index).Key; }
|
2024-03-07 21:04:59 +08:00
|
|
|
|
public static string[] GetAllTeamName()
|
|
|
|
|
|
{
|
2024-08-04 18:24:17 +08:00
|
|
|
|
return GroupsData.Data.Values.ToArray();
|
2024-03-07 21:04:59 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-08-04 18:24:17 +08:00
|
|
|
|
public static void AddTeam(string teamName)
|
2024-03-07 21:04:59 +08:00
|
|
|
|
{
|
2024-08-04 18:24:17 +08:00
|
|
|
|
GroupsData.Data.Add(GroupsData.Data.Keys.LastOrDefault() + 1, teamName);
|
2024-06-23 10:04:00 +08:00
|
|
|
|
DataStreamNew.Save();
|
2024-03-07 21:04:59 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//运行时才能决定是否执行内联
|
|
|
|
|
|
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
|
2024-06-23 10:04:00 +08:00
|
|
|
|
public static AccountNew? Nick2Acc(string nickName)
|
2024-03-07 21:04:59 +08:00
|
|
|
|
{
|
2024-08-04 18:24:17 +08:00
|
|
|
|
return AccountData.Dict.GetValueOrDefault(nickName);
|
2024-03-07 21:04:59 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|