Merge tag 'v1.0.4' into v1.1.0
# Conflicts: # LANCommander.Launcher.Services/InstallService.cs # LANCommander.Launcher.Services/ProfileService.cs # LANCommander.Launcher/UI/Components/DownloadQueue.razor # LANCommander.Launcher/wwwroot/css/app.css.map # LANCommander.SDK/Enums/InstallStatus.cs
This commit is contained in:
commit
0821dfde5c
13 changed files with 40 additions and 12 deletions
|
|
@ -60,7 +60,7 @@ namespace LANCommander.Launcher.Models
|
|||
Title = game.Title;
|
||||
Version = game.Archives.OrderByDescending(a => a.CreatedOn).FirstOrDefault()?.Version;
|
||||
QueuedOn = DateTime.Now;
|
||||
Status = GameInstallStatus.Idle;
|
||||
Status = GameInstallStatus.Queued;
|
||||
|
||||
var cover = game.Media.FirstOrDefault(m => m.Type == SDK.Enums.MediaType.Cover);
|
||||
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ namespace LANCommander.Launcher.Services
|
|||
|
||||
public async Task Next()
|
||||
{
|
||||
var currentItem = Queue.FirstOrDefault(i => i.State);
|
||||
var currentItem = Queue.FirstOrDefault(i => i.Status == GameInstallStatus.Queued);
|
||||
|
||||
if (currentItem == null)
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -40,9 +40,12 @@
|
|||
}
|
||||
|
||||
.login-form-pane {
|
||||
padding: 24px;
|
||||
background: #000;
|
||||
|
||||
.ant-form {
|
||||
padding: 24px;
|
||||
}
|
||||
|
||||
.ant-form-item:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -256,7 +256,7 @@
|
|||
SelectedItem.State = LibraryItemState.Installing;
|
||||
break;
|
||||
|
||||
case SDK.Enums.GameInstallStatus.Idle:
|
||||
case SDK.Enums.GameInstallStatus.Queued:
|
||||
SelectedItem.State = LibraryItemState.Queued;
|
||||
break;
|
||||
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@
|
|||
{
|
||||
if (!_MainLayout.Importing)
|
||||
{
|
||||
await _MainLayout.JS.InvokeVoidAsync("sendMessage", "import");
|
||||
await _MainLayout.JS.InvokeVoidAsync("window.external.sendMessage", "import");
|
||||
|
||||
_MainLayout.Importing = true;
|
||||
_MainLayout.StateHasChanged();
|
||||
|
|
|
|||
|
|
@ -288,9 +288,11 @@ footer {
|
|||
margin-bottom: 0;
|
||||
}
|
||||
.authentication-form .login-form-pane {
|
||||
padding: 24px;
|
||||
background: #000;
|
||||
}
|
||||
.authentication-form .login-form-pane .ant-form {
|
||||
padding: 24px;
|
||||
}
|
||||
.authentication-form .login-form-pane .ant-form-item:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"sourceRoot":"","sources":["../../Styles/app.scss","../../Styles/_appbar.scss","../../Styles/_window.scss","../../Styles/_scrollbar.scss","../../Styles/_layout.scss","../../Styles/_footer.scss","../../Styles/_button.scss","../../Styles/_radio.scss","../../Styles/_modal.scss","../../Styles/_collapse.scss","../../Styles/_list.scss","../../Styles/_authentication.scss","../../Styles/_library.scss","../../Styles/_download-queue.scss","../../Styles/_game-actions-dialog.scss","../../Styles/_install-dialog.scss","../../Styles/_checkbox-button-group.scss"],"names":[],"mappings":"AAAA;EACI;;;AAGJ;EACI;;;ACLJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;;AAEA;EAEI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;;;ACxCP;EACG;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;;AAIR;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;;AC1DP;EACG;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;ACzBJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AAGA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;;AAIR;EACI;IACI;;;ACjDP;EACG;EACA;EACA;EACA;EACA;;;ACLH;AAAA;AAAA;EAGG;;;ACFA;AAAA;EAEI;;AAGJ;AAAA;EAEI;;;AAIR;EACI;;AAEA;AAAA;EAEI;;;ACfR;AAAA;EAEI;;AAEA;AAAA;EACI;;;AAKJ;EACI;;AAGJ;AAAA;EAEI,cAlBS;;AAqBb;AAAA;EAEI,eAvBS;;;ACCb;EACI;;;ACFR;EACI;EACA;EACA;;;AAIA;EACI;EACA;;AAEA;EAEI;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AC3BX;EACG;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;;AAKZ;EACI;EACA;;AAEA;EACI;;;AC9CZ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAGA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAIA;EACI;;AAGJ;EACI;;AAIR;EACI;;AAEA;EACI;EACA;EACA;EACA;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAIR;EACI;;AAIR;EACI;EACA;;;AAKJ;EACI;;AAGJ;EACI;;AAEA;EACI;;;AAKZ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;;;AAIA;EACI;;AAEA;EACI;;AAGJ;EACI;;;AAMR;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;;;ACxNR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAEA;AAAA;AAAA;EAGI;;AAGJ;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;;AAEA;EACI;EACA;EACA;;AAIR;EACI;;AAGJ;EAEI;EACA;;AAGJ;EACI;EACA;;;AAIR;EACI;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAEA;EACI;;AAIR;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;;;ACzGJ;EACI;;AAGJ;EACI;;;ACHA;EACI;;AAGJ;EACI;;AAIR;EACI;;;ACbP;EACG;;AAEA;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA","file":"app.css"}
|
||||
{"version":3,"sourceRoot":"","sources":["../../Styles/app.scss","../../Styles/_appbar.scss","../../Styles/_window.scss","../../Styles/_scrollbar.scss","../../Styles/_layout.scss","../../Styles/_footer.scss","../../Styles/_button.scss","../../Styles/_radio.scss","../../Styles/_modal.scss","../../Styles/_collapse.scss","../../Styles/_list.scss","../../Styles/_authentication.scss","../../Styles/_library.scss","../../Styles/_download-queue.scss","../../Styles/_game-actions-dialog.scss","../../Styles/_install-dialog.scss","../../Styles/_checkbox-button-group.scss"],"names":[],"mappings":"AAAA;EACI;;;AAGJ;EACI;;;ACLJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;;AAEA;EAEI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;;;ACxCP;EACG;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;;AAIR;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;;AC1DP;EACG;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;ACzBJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AAGA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;;AAIR;EACI;IACI;;;ACjDP;EACG;EACA;EACA;EACA;EACA;;;ACLH;AAAA;AAAA;EAGG;;;ACFA;AAAA;EAEI;;AAGJ;AAAA;EAEI;;;AAIR;EACI;;AAEA;AAAA;EAEI;;;ACfR;AAAA;EAEI;;AAEA;AAAA;EACI;;;AAKJ;EACI;;AAGJ;AAAA;EAEI,cAlBS;;AAqBb;AAAA;EAEI,eAvBS;;;ACCb;EACI;;;ACFR;EACI;EACA;EACA;;;AAIA;EACI;EACA;;AAEA;EAEI;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AC3BX;EACG;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;;AAKZ;EACI;;AAEA;EACI;;AAGJ;EACI;;;ACjDZ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAGA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAIA;EACI;;AAGJ;EACI;;AAIR;EACI;;AAEA;EACI;EACA;EACA;EACA;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAIR;EACI;;AAIR;EACI;EACA;;;AAKJ;EACI;;AAGJ;EACI;;AAEA;EACI;;;AAKZ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;;;AAIA;EACI;;AAEA;EACI;;AAGJ;EACI;;;AAMR;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;;;ACxNR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAEA;AAAA;AAAA;EAGI;;AAGJ;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;;AAEA;EACI;EACA;EACA;;AAIR;EACI;;AAGJ;EAEI;EACA;;AAGJ;EACI;EACA;;;AAIR;EACI;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAEA;EACI;;AAIR;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;;;ACzGJ;EACI;;AAGJ;EACI;;;ACHA;EACI;;AAGJ;EACI;;AAIR;EACI;;;ACbP;EACG;;AAEA;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA","file":"app.css"}
|
||||
|
|
@ -106,8 +106,7 @@ namespace LANCommander.SDK
|
|||
BaseUrl = new Uri(baseUrl);
|
||||
ApiClient = new RestClient(new RestClientOptions
|
||||
{
|
||||
BaseUrl = BaseUrl,
|
||||
ThrowOnAnyError = true
|
||||
BaseUrl = BaseUrl
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -447,6 +446,20 @@ namespace LANCommander.SDK
|
|||
Password = password
|
||||
}));
|
||||
|
||||
if (response.ErrorException != null)
|
||||
{
|
||||
Logger?.LogError(response.ErrorException, "Registration failed for user {UserName}", username);
|
||||
|
||||
if (!String.IsNullOrWhiteSpace(response?.Data?.Message))
|
||||
{
|
||||
Logger?.LogError(response.Data.Message);
|
||||
|
||||
throw new Exception(response.Data.Message);
|
||||
}
|
||||
else
|
||||
throw response.ErrorException;
|
||||
}
|
||||
|
||||
switch (response.StatusCode)
|
||||
{
|
||||
case HttpStatusCode.OK:
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Version>1.0.0</Version>
|
||||
<Version>1.0.3</Version>
|
||||
<Authors>pathartl</Authors>
|
||||
<Company>LANCommander</Company>
|
||||
<Description>A .NET library for interacting with a LANCommander server</Description>
|
||||
|
|
|
|||
|
|
@ -167,6 +167,10 @@ namespace LANCommander.SDK.Services
|
|||
|
||||
if (File.Exists(entryPath))
|
||||
{
|
||||
var destinationDirectory = Path.GetDirectoryName(entryPath);
|
||||
|
||||
Directory.CreateDirectory(destinationDirectory);
|
||||
|
||||
// Handle individual files that were saved as an entry in the path
|
||||
if (File.Exists(destinationPath))
|
||||
File.Delete(destinationPath);
|
||||
|
|
@ -180,6 +184,10 @@ namespace LANCommander.SDK.Services
|
|||
|
||||
foreach (var entryFile in entryFiles)
|
||||
{
|
||||
var destinationDirectory = Path.GetDirectoryName(entryFile);
|
||||
|
||||
Directory.CreateDirectory(destinationDirectory);
|
||||
|
||||
var fileDestination = entryFile.Replace(entryPath, destinationPath);
|
||||
|
||||
if (File.Exists(fileDestination))
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ namespace LANCommander.Server.Services
|
|||
|
||||
if (manifestConsole != null)
|
||||
{
|
||||
serverConsole.ServerId = server.Id;
|
||||
serverConsole.Name = manifestConsole.Name;
|
||||
serverConsole.Type = (ServerConsoleType)(int)manifestConsole.Type;
|
||||
serverConsole.Path = manifestConsole.Path;
|
||||
|
|
@ -93,6 +94,7 @@ namespace LANCommander.Server.Services
|
|||
server.ServerConsoles.Add(new ServerConsole()
|
||||
{
|
||||
Id = manifestConsole.Id,
|
||||
ServerId = server.Id,
|
||||
Name = manifestConsole.Name,
|
||||
Type = (ServerConsoleType)(int)manifestConsole.Type,
|
||||
Path = manifestConsole.Path,
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ namespace LANCommander.Server.Controllers
|
|||
|
||||
foreach (var file in files)
|
||||
{
|
||||
var entryName = file.Substring(server.WorkingDirectory.Length, file.Length - server.WorkingDirectory.Length).Replace(Path.DirectorySeparatorChar, '/');
|
||||
var entryName = file.Substring(server.WorkingDirectory.Length, file.Length - server.WorkingDirectory.Length).Replace(Path.DirectorySeparatorChar, '/').TrimStart('/');
|
||||
|
||||
if (System.IO.File.Exists(file))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<UserSecretsId>aspnet-LANCommander-C1F79CFA-9767-4AD7-BD5A-2549F8328A2D</UserSecretsId>
|
||||
<ApplicationIcon>wwwroot\favicon.ico</ApplicationIcon>
|
||||
<TypeScriptModuleKind>none</TypeScriptModuleKind>
|
||||
<Version>1.0.0</Version>
|
||||
<Version>1.0.3</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue