Files
kami_itunes_june/AppleBatch_June.ExecuteTasks/CloseAuthenTask.cs
danial 06b0fcce08 chore(build): 更新项目配置和依赖以支持.NET 8
- 在.settings.local.json中添加dotnet clean命令权限
- 更新项目文件以启用不安全的二进制序列化和禁用平台兼容性警告
- 配置调试和发布模式的编译常量及优化选项
- 在解决方案文件中升级Visual Studio版本并添加多平台配置
- 移除FormLogin构造函数中的MessageBox调试代码
- 为过时的WebRequest、WebClient和ServicePointManager API添加编译警告抑制
- 简化异常处理逻辑并在Program.cs中改进启动流程
- 移除多个未使用的局部变量声明
- 添加launchSettings.json以支持开发环境配置
- 在表单构造函数中初始化components容器
- 优化网络请求超时设置并改善错误处理机制
2025-11-10 19:34:27 +08:00

147 lines
4.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
using AppleBatch_June.AppleWebServace;
using AppleBatch_June.Model;
using AppleBatch_June.StartTaskModel;
using DotNet.Utilities;
namespace AppleBatch_June.ExecuteTasks
{
public class CloseAuthenTask : BaseTask
{
public static CloseAuthenTask Instance { get; private set; }
static CloseAuthenTask()
{
Instance = new CloseAuthenTask("关闭双重认证");
}
public CloseAuthenTask(string _taskName)
: base(_taskName)
{
}
public void AppleCloseAuthenTask(int TaskSize, string newPassWord, bool openVpn, bool ckTailNumber, List<AppleAcount> lvItems, Action startAct, Action endTakAct, Action<string> sucessAct, Action<string, DisplyType, string> _action)
{
TaskSize = Tools.getTaskSize(openVpn, lvItems.Count);
if (!base.isRun)
{
AppleExecuteTask.TaskRunAppleIdCount = 0L;
AppleExecuteTask.TaskRunModels.Clear();
startAct?.Invoke();
base.isRun = true;
Task.Run(delegate
{
base.TaskIsRun = true;
base.baseEndTakAct = endTakAct;
Task[] array = new Task[TaskSize];
for (int i = 0; i < TaskSize; i++)
{
ApiNetReq.startNowFun = 14;
array[i] = Task.Run(delegate
{
string guid = Guid.NewGuid().ToString("n");
TaskRunModel taskRunModel = new TaskRunModel
{
guid = guid,
isRuning = false
};
AppleExecuteTask.TaskRunModels.Add(taskRunModel);
while (base.isRun)
{
AppleAcount appleAcount = null;
try
{
lock (lvItems)
{
appleAcount = lvItems.Where((AppleAcount c) => !c.isAct).FirstOrDefault();
if (appleAcount == null)
{
break;
}
appleAcount.isAct = true;
}
string guidTag = appleAcount.guidTag;
if (BaseTask.startRuning(taskRunModel, _action, guidTag))
{
_action?.Invoke(guidTag, DisplyType.xinxi, "正在处理");
HttpResult isLogin = APIUtlis.getIsLogin(14);
if (isLogin.StatusCode == HttpStatusCode.OK)
{
object obj = Tools.Todejosn<object>(isLogin.Html);
if (((dynamic)obj)["Code"] == "0000")
{
if (((dynamic)obj)["Data"]["integral"] >= AppSysConfig.getTypeById(14).consNum)
{
_action?.Invoke(guidTag, DisplyType.chongzhi, "");
if ((!AppSysConfig.webProtocolS2k) ? new AppleManageWebUtlis(_action, null, this).RetrievePassword(openVpn, appleAcount, newPassWord, guidTag, isCloseAuthen: true, ckTailNumber) : new AppleiForgotWeb(openVpn, _action, null, this).RetrievePassword(appleAcount, newPassWord, guidTag, isCloseAuthen: true, ckTailNumber))
{
APIUtlis.ApiApplyAct(14, "关闭双重认证");
}
sucessAct?.Invoke(guidTag);
}
else
{
_action?.Invoke(guidTag, DisplyType.xinxi, "点数不足,请联系客服充值");
}
}
else
{
_action?.Invoke(guidTag, DisplyType.xinxi, ((dynamic)obj)["Message"]);
}
}
else
{
_action?.Invoke(guidTag, DisplyType.xinxi, "网络请求失败");
}
goto IL_0551;
}
}
catch (Exception ex2)
{
APIUtlis.ApiSeriveError(ex2);
if (appleAcount != null)
{
_action?.Invoke(appleAcount.guidTag, DisplyType.xinxi, "请求失败:" + ex2.Message);
}
goto IL_0551;
}
continue;
IL_0551:
BaseTask.endRuning(taskRunModel);
}
});
}
Task.WaitAll(array);
try
{
Task[] array2 = array;
foreach (Task task in array2)
{
if (task.Status == TaskStatus.RanToCompletion)
{
task.Dispose();
}
}
array = null;
}
catch (Exception)
{
}
AppleExecuteTask.TaskRunModels.Clear();
base.TaskIsRun = false;
base.isRun = false;
endTakAct?.Invoke();
});
}
else
{
endTakAct?.Invoke();
}
}
}
}