Skip to content

Commit

Permalink
refactor: reformat & cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
DerStimmler committed Sep 4, 2024
1 parent 21c1592 commit 386c958
Show file tree
Hide file tree
Showing 34 changed files with 1,724 additions and 1,854 deletions.
18 changes: 6 additions & 12 deletions Einstellungen/ClockodoKonfiguration/ClockodoEinstellungen.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,12 @@ namespace coIT.Toolkit.QuickActions.Einstellungen.ClockodoKonfiguration;

public record ClockodoEinstellungen
{
public required string ApiToken { get; init; }
public required string EmailAddress { get; init; }
public required string ApiToken { get; init; }
public required string EmailAddress { get; init; }

public TimeEntriesServiceSettings ClockodoCredentials =>
new(EmailAddress, ApiToken, "co-IT Clockodo Quick Actions", "[email protected]");
public TimeEntriesServiceSettings ClockodoCredentials =>
new(EmailAddress, ApiToken, "co-IT Clockodo Quick Actions", "[email protected]");

public ApiConnectionSettings CreateApiConnectionSettings =>
new ApiConnectionSettings(
EmailAddress,
ApiToken,
"co-IT Clockodo Quick Actions",
"[email protected]",
new Uri("https://my.clockodo.com/")
);
public ApiConnectionSettings CreateApiConnectionSettings =>
new(EmailAddress, ApiToken, "co-IT Clockodo Quick Actions", "[email protected]", new Uri("https://my.clockodo.com/"));
}
Original file line number Diff line number Diff line change
@@ -1,56 +1,45 @@
using System.Threading;
using Azure;
using Azure.Data.Tables;
using coIT.Libraries.Clockodo.Absences;
using coIT.Libraries.ConfigurationManager.Cryptography;
using CSharpFunctionalExtensions;

namespace coIT.Toolkit.QuickActions.Einstellungen.ClockodoKonfiguration
namespace coIT.Toolkit.QuickActions.Einstellungen.ClockodoKonfiguration;

public class ClockodoKonfigurationDataTableRepository : IClockodoKonfigurationRepository
{
public class ClockodoKonfigurationDataTableRepository : IClockodoKonfigurationRepository
{
private readonly ClockodoKonfigurationMapper _mapper;
private readonly TableClient _tableClient;
private readonly ClockodoKonfigurationMapper _mapper;
private readonly TableClient _tableClient;

public ClockodoKonfigurationDataTableRepository(
string connectionString,
IDoCryptography cryptographyService
)
{
_mapper = new ClockodoKonfigurationMapper(cryptographyService);
_tableClient = new TableClient(
connectionString,
ClockodoKonfigurationEntity.TabellenName
);
}
public ClockodoKonfigurationDataTableRepository(string connectionString, IDoCryptography cryptographyService)
{
_mapper = new ClockodoKonfigurationMapper(cryptographyService);
_tableClient = new TableClient(connectionString, ClockodoKonfigurationEntity.TabellenName);
}

public async Task<Result<ClockodoEinstellungen>> Get(
CancellationToken cancellationToken = default
public async Task<Result<ClockodoEinstellungen>> Get(CancellationToken cancellationToken = default)
{
try
{
return await Result
.Success()
.Map(
() =>
_tableClient.GetEntityIfExistsAsync<ClockodoKonfigurationEntity>(
ClockodoKonfigurationEntity.TabellenName,
ClockodoKonfigurationEntity.GlobalIdentifier,
cancellationToken: cancellationToken
)
)
{
try
{
return await Result
.Success()
.Map(
() =>
_tableClient.GetEntityIfExistsAsync<ClockodoKonfigurationEntity>(
ClockodoKonfigurationEntity.TabellenName,
ClockodoKonfigurationEntity.GlobalIdentifier,
cancellationToken: cancellationToken
)
)
.Ensure(
response => response.HasValue,
$"Der Eintrag mit dem Namen '{ClockodoKonfigurationEntity.GlobalIdentifier}' konnte nicht gefunden werden."
)
.Map(response => response.Value)
.Bind(_mapper.VonEntity!);
}
catch (Exception ex) when (ex is RequestFailedException or InvalidOperationException)
{
return Result.Failure<ClockodoEinstellungen>(ex.Message);
}
}
.Ensure(
response => response.HasValue,
$"Der Eintrag mit dem Namen '{ClockodoKonfigurationEntity.GlobalIdentifier}' konnte nicht gefunden werden."
)
.Map(response => response.Value)
.Bind(_mapper.VonEntity!);
}
catch (Exception ex) when (ex is RequestFailedException or InvalidOperationException)
{
return Result.Failure<ClockodoEinstellungen>(ex.Message);
}
}
}
45 changes: 23 additions & 22 deletions Einstellungen/ClockodoKonfiguration/ClockodoKonfigurationEntity.cs
Original file line number Diff line number Diff line change
@@ -1,30 +1,31 @@
using Azure;
using Azure.Data.Tables;

namespace coIT.Toolkit.QuickActions.Einstellungen.ClockodoKonfiguration
namespace coIT.Toolkit.QuickActions.Einstellungen.ClockodoKonfiguration;

internal class ClockodoKonfigurationEntity : ITableEntity
{
internal class ClockodoKonfigurationEntity : ITableEntity
{
internal static readonly string TabellenName = "ClockodoKonfiguration";
internal static readonly string TabellenName = "ClockodoKonfiguration";

// Globale Konfiguration für alle Nutzer
internal static readonly string GlobalIdentifier = "global";

public string EmailAddress { get; set; }

Check warning on line 13 in Einstellungen/ClockodoKonfiguration/ClockodoKonfigurationEntity.cs

View workflow job for this annotation

GitHub Actions / Clockodo Quick Actions Installer Bauen

Non-nullable property 'EmailAddress' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the property as nullable.
public string ApiToken { get; set; }

Check warning on line 14 in Einstellungen/ClockodoKonfiguration/ClockodoKonfigurationEntity.cs

View workflow job for this annotation

GitHub Actions / Clockodo Quick Actions Installer Bauen

Non-nullable property 'ApiToken' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the property as nullable.
public string BaseAddress { get; set; }

Check warning on line 15 in Einstellungen/ClockodoKonfiguration/ClockodoKonfigurationEntity.cs

View workflow job for this annotation

GitHub Actions / Clockodo Quick Actions Installer Bauen

Non-nullable property 'BaseAddress' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the property as nullable.

// Globale Konfiguration für alle Nutzer
internal static readonly string GlobalIdentifier = "global";
public string PartitionKey
{
get => TabellenName;
set { }
}

public string PartitionKey
{
get { return TabellenName; }
set { return; }
}
public string RowKey
{
get { return GlobalIdentifier; }
set { return; }
}
public DateTimeOffset? Timestamp { get; set; }
public ETag ETag { get; set; }
public string RowKey
{
get => GlobalIdentifier;
set { }
}

public string EmailAddress { get; set; }
public string ApiToken { get; set; }
public string BaseAddress { get; set; }
}
public DateTimeOffset? Timestamp { get; set; }
public ETag ETag { get; set; }
}
34 changes: 14 additions & 20 deletions Einstellungen/ClockodoKonfiguration/ClockodoKonfigurationMapper.cs
Original file line number Diff line number Diff line change
@@ -1,27 +1,21 @@
using coIT.Libraries.Clockodo.Absences;
using coIT.Libraries.ConfigurationManager.Cryptography;
using CSharpFunctionalExtensions;

namespace coIT.Toolkit.QuickActions.Einstellungen.ClockodoKonfiguration
namespace coIT.Toolkit.QuickActions.Einstellungen.ClockodoKonfiguration;

internal class ClockodoKonfigurationMapper
{
internal class ClockodoKonfigurationMapper
{
private readonly IDoCryptography _cryptographyService;
private readonly IDoCryptography _cryptographyService;

public ClockodoKonfigurationMapper(IDoCryptography cryptographyService)
{
_cryptographyService = cryptographyService;
}
public ClockodoKonfigurationMapper(IDoCryptography cryptographyService)
{
_cryptographyService = cryptographyService;
}

public Result<ClockodoEinstellungen> VonEntity(ClockodoKonfigurationEntity entity)
{
return _cryptographyService
.Decrypt(entity.ApiToken)
.Map(apiToken => new ClockodoEinstellungen
{
ApiToken = apiToken,
EmailAddress = entity.EmailAddress,
});
}
}
public Result<ClockodoEinstellungen> VonEntity(ClockodoKonfigurationEntity entity)
{
return _cryptographyService
.Decrypt(entity.ApiToken)
.Map(apiToken => new ClockodoEinstellungen { ApiToken = apiToken, EmailAddress = entity.EmailAddress });
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
using CSharpFunctionalExtensions;

namespace coIT.Toolkit.QuickActions.Einstellungen.ClockodoKonfiguration
namespace coIT.Toolkit.QuickActions.Einstellungen.ClockodoKonfiguration;

public interface IClockodoKonfigurationRepository
{
public interface IClockodoKonfigurationRepository
{
public Task<Result<ClockodoEinstellungen>> Get(
CancellationToken cancellationToken = default
);
}
public Task<Result<ClockodoEinstellungen>> Get(CancellationToken cancellationToken = default);
}
9 changes: 4 additions & 5 deletions Einstellungen/DatabaseKonfiguration/DatabaseEinstellungen.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
namespace coIT.Toolkit.QuickActions.Einstellungen.DatabaseKonfiguration
namespace coIT.Toolkit.QuickActions.Einstellungen.DatabaseKonfiguration;

internal record DatabaseEinstellungen
{
internal record DatabaseEinstellungen
{
public required string ConnectionString { get; init; }
}
public required string ConnectionString { get; init; }
}
Loading

0 comments on commit 386c958

Please sign in to comment.