using Attribute;
using Common;
using Dto;
using Vo;
using Enums;
using Filters;
using Infrastructure;
using Infrastructure.Model;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using Middleware;
using Model;
using Services;
using Model.Base;
using System.IO.Compression;
namespace Controllers
{
///
/// PageUpdateInfo)Controller
///
// [Route("PageUpdateInfo")]
// [ApiExplorerSettings(GroupName = "PageUpdateInfo")]
public class PageUpdateInfoController : BaseController
{
private readonly IPageUpdateInfoService _PageUpdateInfoService;
private readonly IAppBottomNavsService _AppBottomNavsService;
private readonly IFileUpdateInfoService _FileUpdateInfoService;
public PageUpdateInfoController(IPageUpdateInfoService PageUpdateInfoService, IAppBottomNavsService AppBottomNavsService, IFileUpdateInfoService FileUpdateInfoService)
{
_PageUpdateInfoService = PageUpdateInfoService;
_AppBottomNavsService = AppBottomNavsService;
_FileUpdateInfoService = FileUpdateInfoService;
}
///
/// 生成APP配置文件
///
/// 请求参数
/// 生成APP配置文件
[HttpGet]
[Route("/noauth/SystemSet/makeAppInitData")]
public string makeAppInitData([FromQuery] MakeAppInitDataDto parm, string EncryptType = "des")
{
string AppInfoList = _AppBottomNavsService.makeAppInitData(parm.kind, parm.appVersion, EncryptType);
// Function.WriteLog(AppInfoList);
string FileInfoList = _FileUpdateInfoService.makeAppInitData(parm.kind, parm.appVersion, EncryptType);
string PageInfoList = _PageUpdateInfoService.makeAppInitData(parm.kind, parm.appVersion, EncryptType);
return AppInfoList + "#cut#" + FileInfoList + "#cut#" + PageInfoList;
}
[HttpGet]
[Route("/noauth/reg")]
public IActionResult Register(string v = "4.4.0", string k = "creater", string c = "", string et = "des")
{
string appini = makeAppInitData(new MakeAppInitDataDto()
{
kind = k,
appVersion = v,
}, et);
if (!string.IsNullOrEmpty(appini))
{
if (appini.Contains("#cut#"))
{
string[] appinidata = appini.Split(new string[] { "#cut#" }, StringSplitOptions.None);
string AppInfoList = appinidata[0];
string SystemSet = appinidata[1];
string PageInfoList = appinidata[2];
string GotoPages = appinidata[3];
string LibFile = appinidata[4];
AppInfoList = System.Text.RegularExpressions.Regex.Unescape(AppInfoList);
SystemSet = System.Text.RegularExpressions.Regex.Unescape(SystemSet);
PageInfoList = System.Text.RegularExpressions.Regex.Unescape(PageInfoList);
GotoPages = System.Text.RegularExpressions.Regex.Unescape(GotoPages);
LibFile = System.Text.RegularExpressions.Regex.Unescape(LibFile);
string startPath = "";
string zipPath = "";
if(c == "ios")
{
Function.WritePage("ini", "AppInfoList.ini", AppInfoList);
Function.WritePage("ini", "SystemSet.ini", SystemSet);
Function.WritePage("ini", "PageInfoList.ini", PageInfoList);
Function.WritePage("ini", "GotoPages.ini", GotoPages);
Function.WritePage("ini", "LibFile.ini", LibFile);
startPath = Function.getPath("ini");
zipPath = Function.getPath("ini.zip");
}
else
{
Function.WritePage("txt", "AppInfoList.txt", AppInfoList);
Function.WritePage("txt", "SystemSet.txt", SystemSet);
Function.WritePage("txt", "PageInfoList.txt", PageInfoList);
Function.WritePage("txt", "GotoPages.txt", GotoPages);
Function.WritePage("txt", "LibFile.txt", LibFile);
startPath = Function.getPath(path_str: "txt");
zipPath = Function.getPath("txt.zip");
}
if(System.IO.File.Exists(zipPath))
{
System.IO.File.Delete(zipPath);
}
ZipFile.CreateFromDirectory(startPath, zipPath);
var stream = System.IO.File.OpenRead(zipPath);
return File(stream, "text/plain", Path.GetFileName(zipPath));
}
}
return Content("fail");
}
}
}