fixes some console coloring and adds remove command
All checks were successful
PiwigoDirectorySync/pipeline/head This commit looks good
All checks were successful
PiwigoDirectorySync/pipeline/head This commit looks good
This commit is contained in:
parent
fd74c06659
commit
551ef82c01
@ -26,7 +26,8 @@ internal class PiwigoAddCommand : CancellableAsyncCommand<PiwigoAddCommand.Piwig
|
||||
var count = await _persistenceContext.PiwigoServers.Where(s => s.Name == settings.ServerName).CountAsync(cancellation);
|
||||
if (count > 0)
|
||||
{
|
||||
AnsiConsole.WriteLine($"[maroon]There is already a server with the name {settings.ServerName}[/]");
|
||||
_logger.LogWarning("Server with name {SettingsServerName} already exists. Not updated", settings.ServerName);
|
||||
AnsiConsole.MarkupLine($"[maroon]There is already a server with the name {settings.ServerName}[/]");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -42,7 +43,7 @@ internal class PiwigoAddCommand : CancellableAsyncCommand<PiwigoAddCommand.Piwig
|
||||
_persistenceContext.PiwigoServers.Add(server);
|
||||
await _persistenceContext.SaveChangesAsync(cancellation);
|
||||
|
||||
AnsiConsole.WriteLine($"[green]Added server {settings.ServerName} with id {server.Id}[/]");
|
||||
AnsiConsole.MarkupLine($"[green]Added server {settings.ServerName} with id {server.Id}[/]");
|
||||
|
||||
var piwigoServers = await _persistenceContext.PiwigoServers.ToListAsync(cancellation);
|
||||
PiwigoListCommand.PrintServers(piwigoServers);
|
||||
|
56
PiwigoDirectorySync/Commands/PiwigoRemoveCommand.cs
Normal file
56
PiwigoDirectorySync/Commands/PiwigoRemoveCommand.cs
Normal file
@ -0,0 +1,56 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using PiwigoDirectorySync.Infrastructure;
|
||||
using PiwigoDirectorySync.Persistence;
|
||||
using Spectre.Console;
|
||||
using Spectre.Console.Cli;
|
||||
|
||||
namespace PiwigoDirectorySync.Commands;
|
||||
|
||||
internal class PiwigoRemoveCommand : CancellableAsyncCommand<PiwigoRemoveCommand.PiwigoRemoveSettings>
|
||||
{
|
||||
private readonly ILogger<PiwigoRemoveCommand> _logger;
|
||||
private readonly PersistenceContext _persistenceContext;
|
||||
|
||||
public PiwigoRemoveCommand(ILogger<PiwigoRemoveCommand> logger, PersistenceContext persistenceContext)
|
||||
{
|
||||
_logger = logger;
|
||||
_persistenceContext = persistenceContext;
|
||||
}
|
||||
|
||||
protected override async Task<int> ExecuteAsync(CommandContext context, PiwigoRemoveSettings settings, CancellationToken cancellation)
|
||||
{
|
||||
var server = await _persistenceContext.PiwigoServers.FindByIdAsync(settings.PiwigoServerId, cancellation);
|
||||
if (server is null)
|
||||
{
|
||||
_logger.LogWarning("Could not find server with id {SettingsPiwigoServerId}", settings.PiwigoServerId);
|
||||
AnsiConsole.MarkupLine($"[maroon]Could not find server with id {settings.PiwigoServerId}[/]");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!AnsiConsole.Confirm($"[orange3]Do you really want to remove {server.Name} ({server.Id}) from this database?[/]", false))
|
||||
{
|
||||
_logger.LogInformation("Do not remove server {ServerName}", server.Name);
|
||||
AnsiConsole.MarkupLine("[green]Remove cancelled![/]");
|
||||
return 1;
|
||||
}
|
||||
|
||||
AnsiConsole.MarkupLine($"[orange3]Removing image metadata of server {server.Name}![/]");
|
||||
await _persistenceContext.PiwigoImages.Where(i => i.Album.ServerId == server.Id).ExecuteDeleteAsync(cancellation);
|
||||
await _persistenceContext.SaveChangesAsync(cancellation);
|
||||
|
||||
AnsiConsole.MarkupLine($"[orange3]Removing album metadata of server {server.Name}![/]");
|
||||
await _persistenceContext.PiwigoAlbums.Where(a => a.ServerId == server.Id).ExecuteDeleteAsync(cancellation);
|
||||
await _persistenceContext.SaveChangesAsync(cancellation);
|
||||
|
||||
AnsiConsole.MarkupLine($"[orange3]Removing server {server.Name}![/]");
|
||||
await _persistenceContext.PiwigoServers.Where(s => s.Id == server.Id).ExecuteDeleteAsync(cancellation);
|
||||
await _persistenceContext.SaveChangesAsync(cancellation);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
internal class PiwigoRemoveSettings : CommonCommandSettings
|
||||
{
|
||||
}
|
||||
}
|
@ -21,13 +21,14 @@ internal class PiwigoUpdateCommand : CancellableAsyncCommand<PiwigoUpdateCommand
|
||||
|
||||
protected override async Task<int> ExecuteAsync(CommandContext context, PiwigoUpdateSettings settings, CancellationToken cancellation)
|
||||
{
|
||||
_logger.LogInformation("Adding piwigo server {SettingsServerName} with user {SettingsUserName} and url {SettingsUrl}", settings.ServerName, settings.UserName,
|
||||
_logger.LogInformation("Updating piwigo server {SettingsServerName} with user {SettingsUserName} and url {SettingsUrl}", settings.ServerName, settings.UserName,
|
||||
settings.Url);
|
||||
|
||||
var count = await _persistenceContext.PiwigoServers.Where(s => s.Name == settings.ServerName && s.Id != settings.PiwigoServerId).CountAsync(cancellation);
|
||||
if (count > 0)
|
||||
{
|
||||
AnsiConsole.WriteLine(
|
||||
_logger.LogWarning("Server with name {SettingsServerName} already exists. Not updated", settings.ServerName);
|
||||
AnsiConsole.MarkupLine(
|
||||
$"[maroon]You can not rename the server with id {settings.PiwigoServerId} to {settings.ServerName} as there is already a server with this name[/]");
|
||||
return -1;
|
||||
}
|
||||
@ -35,7 +36,8 @@ internal class PiwigoUpdateCommand : CancellableAsyncCommand<PiwigoUpdateCommand
|
||||
var server = await _persistenceContext.PiwigoServers.FindByIdAsync(settings.PiwigoServerId, cancellation);
|
||||
if (server is null)
|
||||
{
|
||||
AnsiConsole.WriteLine($"[maroon]Could not find server with id {settings.PiwigoServerId}[/]");
|
||||
_logger.LogWarning("Could not find server with id {SettingsPiwigoServerId}", settings.PiwigoServerId);
|
||||
AnsiConsole.MarkupLine($"[maroon]Could not find server with id {settings.PiwigoServerId}[/]");
|
||||
return -2;
|
||||
}
|
||||
|
||||
@ -47,7 +49,7 @@ internal class PiwigoUpdateCommand : CancellableAsyncCommand<PiwigoUpdateCommand
|
||||
|
||||
await _persistenceContext.SaveChangesAsync(cancellation);
|
||||
|
||||
AnsiConsole.WriteLine($"[green]Added server {settings.ServerName} with id {server.Id}[/]");
|
||||
AnsiConsole.MarkupLine($"[green]Added server {settings.ServerName} with id {server.Id}[/]");
|
||||
|
||||
var piwigoServers = await _persistenceContext.PiwigoServers.ToListAsync(cancellation);
|
||||
PiwigoListCommand.PrintServers(piwigoServers);
|
||||
|
@ -57,7 +57,7 @@ app.Configure(config =>
|
||||
c.AddCommand<PiwigoListCommand>("list");
|
||||
c.AddCommand<PiwigoAddCommand>("add");
|
||||
c.AddCommand<PiwigoUpdateCommand>("update");
|
||||
// c.AddCommand<PiwigoRemoveCommand>("remove");
|
||||
c.AddCommand<PiwigoRemoveCommand>("remove");
|
||||
});
|
||||
});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user