52 lines
1.6 KiB
C#
52 lines
1.6 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Vanadium.Auth;
|
|
using Vanadium.Classes;
|
|
using Vanadium.Classes.DBs;
|
|
using Vanadium.Classes.DBs.DBClasses;
|
|
using Vanadium.Hubs;
|
|
using static Vanadium.Classes.DBs.DBClasses.PlayerDBClasses;
|
|
using Vanadium.Utils.NotiController;
|
|
|
|
namespace Vanadium.Controllers
|
|
{
|
|
[ApiController]
|
|
public class DLLController : ControllerBase
|
|
{
|
|
private const string CurrentVersion = "1.0.0";
|
|
private const string DllFileName = "Vanadium.Patch.dll";
|
|
|
|
[HttpGet("/version")]
|
|
public IActionResult GetVersion()
|
|
{
|
|
var downloadUrl = $"{Request.Scheme}://{Request.Host}/download/{DllFileName}";
|
|
|
|
return Ok(new UpdateManifest
|
|
{
|
|
version = CurrentVersion,
|
|
downloadUrl = downloadUrl
|
|
});
|
|
}
|
|
|
|
[HttpGet("/download/{fileName}")]
|
|
public IActionResult DownloadDll(string fileName)
|
|
{
|
|
if (fileName != DllFileName)
|
|
return NotFound("");
|
|
|
|
var dllDir = Path.Combine(Directory.GetCurrentDirectory(), "UpdateFiles");
|
|
var filePath = Path.Combine(dllDir, fileName);
|
|
|
|
if (!System.IO.File.Exists(filePath))
|
|
return NotFound("");
|
|
|
|
var bytes = System.IO.File.ReadAllBytes(filePath);
|
|
return File(bytes, "application/octet-stream", fileName);
|
|
}
|
|
|
|
public class UpdateManifest
|
|
{
|
|
public string version { get; set; } = string.Empty;
|
|
public string downloadUrl { get; set; } = string.Empty;
|
|
}
|
|
}
|
|
} |