Skip to content

Commit

Permalink
Merge pull request #12 from OS2Valghalla/dev
Browse files Browse the repository at this point in the history
    Bug fixes
    General maintenance
    New features: more notifications in task assignment, new templates in communication
ramogens-OS2 authored Mar 11, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
2 parents 77c5939 + 4a07a5c commit 9c6f1bd
Showing 187 changed files with 34,570 additions and 89,258 deletions.
10 changes: 9 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -365,4 +365,12 @@ FodyWeavers.xsd
# package-lock.json
Valghalla.Internal.Web/package-lock.json
Valghalla.External.Web/package-lock.json
/Valghalla.Internal.API/appsettings.json

# custom
.vscode
.angular
packages.lock.json
Environment
appsettings.Development.json
Valghalla.Internal.Web/src/environments/environment.development.ts
Valghalla.External.Web/src/environments/environment.development.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace Valghalla.Application.Cache
{
public interface IAppMemoryCache
public interface ITenantMemoryCache
{
TItem? GetOrCreate<TItem>(string key, Func<TItem> factory);
Task<TItem?> GetOrCreateAsync<TItem>(string key, Func<Task<TItem>> factory);
4 changes: 3 additions & 1 deletion Valghalla.Application/Communication/CommunicationType.cs
Original file line number Diff line number Diff line change
@@ -7,6 +7,8 @@ public enum CommunicationType
TaskCancellation,
TaskInvitationReminder,
TaskReminder,
TaskRetractedInvitation
TaskRetractedInvitation,
RemovedFromTask,
RemovedByValidation,
}
}
4 changes: 4 additions & 0 deletions Valghalla.Application/Communication/ICommunicationHelper.cs
Original file line number Diff line number Diff line change
@@ -4,6 +4,10 @@ public interface ICommunicationHelper
{
string ReplaceTokens(string template, CommunicationRelatedInfo info);
Task<bool> ValidateTaskInvitationAsync(Guid participantId, Guid taskAssignmentId, CancellationToken cancellationToken);
Task<bool> ValidateRemovedFromTaskAsync(Guid participantId, Guid taskAssignmentId, CancellationToken cancellationToken);
Task<bool> ValidateTaskInvitationReminderAsync(Guid participantId, Guid taskAssignmentId, CancellationToken cancellationToken);
Task<bool> ValidateTaskReminderAsync(Guid participantId, Guid taskAssignmentId, CancellationToken cancellationToken);
Task<bool> ValidateTaskRegistrationAsync(Guid participantId, Guid taskAssignmentId, CancellationToken cancellationToken);
Task<bool> ValidateTaskInvitationRetractedAsync(Guid taskAssignmentId, CancellationToken cancellationToken);
}
}
Original file line number Diff line number Diff line change
@@ -4,10 +4,9 @@ public interface ICommunicationQueryRepository
{
Task<TaskAssignmentCommunicationInfo?> GetTaskAssignmentCommunicationInfoAsync(Guid taskAssignmentId, CancellationToken cancellationToken);
Task<CommunicationRelatedInfo?> GetCommunicationRelatedInfoAsync(Guid participantId, Guid taskAssignmentId, CancellationToken cancellationToken);
Task<CommunicationRelatedInfo?> GetTaskAssignmentInfoAsync(Guid taskAssignmentId, CancellationToken cancellationToken);
Task<CommunicationRelatedInfo?> GetTaskAssignmentInfoAsync(Guid rejectedTaskId, Guid participantId, CancellationToken cancellationToken);
Task<CommunicationRelatedInfo?> GetRejectedTaskInfoAsync(Guid rejectedTaskId, CancellationToken cancellationToken);
Task<CommunicationTemplate?> GetTaskInvitationCommunicationTemplateAsync(Guid taskAssignmentId, CancellationToken cancellationToken);
Task<CommunicationTemplate?> GetRemovedFromTaskCommunicationTemplateAsync(Guid taskAssignmentId, CancellationToken cancellationToken);
Task<CommunicationTemplate?> GetTaskRegistrationCommunicationTemplateAsync(Guid taskAssignmentId, CancellationToken cancellationToken);
Task<CommunicationTemplate?> GetTaskCancellationCommunicationTemplateAsync(Guid taskAssignmentId, CancellationToken cancellationToken);
Task<CommunicationTemplate?> GetTaskInvitationReminderCommunicationTemplateAsync(Guid taskAssignmentId, CancellationToken cancellationToken);
4 changes: 4 additions & 0 deletions Valghalla.Application/Communication/ICommunicationService.cs
Original file line number Diff line number Diff line change
@@ -3,8 +3,12 @@
public interface ICommunicationService
{
Task SendTaskInvitationAsync(Guid participantId, Guid taskAssignmentId, CancellationToken cancellationToken);
Task SendRemovedFromTaskAsync(Guid participantId, Guid taskAssignmentId, CancellationToken cancellationToken);
Task SendTaskRegistrationAsync(Guid participantId, Guid taskAssignmentId, CancellationToken cancellationToken);
Task SendTaskCancellationAsync(Guid participantId, Guid taskAssignmentId, CancellationToken cancellationToken);
Task SendTaskInvitationRetractedAsync(Guid participantId, Guid taskAssignmentId, CancellationToken cancellationToken);
Task SendTaskInvitationReminderAsync(Guid participantId, Guid taskAssignmentId, DateTime? invitationDate, DateTime? invitationReminderDate, DateTime taskDate, CancellationToken cancellationToken);
Task SendTaskReminderAsync(Guid participantId, Guid taskAssignmentId, DateTime? reminderDate, DateTime taskDate, CancellationToken cancellationToken);
Task SendGroupMessageAsync(IList<CommunicationTaskParticipantInfo> tasks, int templateType, string templateSubject, string templateContent, List<Guid> fileReferenceIds, CancellationToken cancellationToken);
}
}
Original file line number Diff line number Diff line change
@@ -9,5 +9,6 @@ public sealed record TaskAssignmentCommunicationInfo
public bool Responsed { get; init; }
public bool Accepted { get; init; }
public bool Active { get; init; }
public DateTime? ReminderDate { get; set; }
}
}
1 change: 1 addition & 0 deletions Valghalla.Application/Configuration/AppConfiguration.cs
Original file line number Diff line number Diff line change
@@ -11,5 +11,6 @@ public class AppConfiguration : IConfiguration
public string SmsSender { get; init; } = null!;
public string MailSender { get; init; } = null!;
public string MailAddress { get; init; } = null!;
public string TaskReminderDay { get; init; } = null!;
}
}
2 changes: 2 additions & 0 deletions Valghalla.Application/Constants.cs
Original file line number Diff line number Diff line change
@@ -23,6 +23,8 @@ public static class DefaultCommunicationTemplates
public const string InvitationReminderStringId = "dc92a364-fce3-42b2-b383-0a322b3b18ba";
public const string TaskReminderStringId = "21b06039-57af-4835-be6e-f227117d91c3";
public const string RetractedInvitationStringId = "e1f1dd14-bf2a-4ba4-b9e5-d8d98dc9561b";
public const string RemovedFromTaskStringId = "bb4bb9bf-398a-41b5-a541-8bfc59e1b552";
public const string RemovedByValidationStringId = "b1a0f0eb-2962-46be-91a2-50753615c1d5";
}

public class Validation
2 changes: 1 addition & 1 deletion Valghalla.Application/Mail/IMailMessageService.cs
Original file line number Diff line number Diff line change
@@ -2,6 +2,6 @@
{
public interface IMailMessageService
{
Task<bool> SendWithAttachmentsAsync(MailDataWithAttachments mailData, CancellationToken cancellationToken);
Task SendWithAttachmentsAsync(MailDataWithAttachments mailData, CancellationToken cancellationToken);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace Valghalla.Application.Queue.Messages
{
public sealed record RemovedFromTaskJobMessage
{
public Guid ParticipantId { get; init; }
public Guid TaskAssignmentId { get; init; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace Valghalla.Application.Queue.Messages
{
public sealed record TaskInvitationRetractedJobMessage
{
public Guid ParticipantId { get; init; }
public Guid TaskAssignmentId { get; init; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace Valghalla.Application.Queue.Messages
{
public sealed record TaskSendInvitationReminderJobMessage
{
public Guid ParticipantId { get; init; }
public Guid TaskAssignmentId { get; init; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace Valghalla.Application.Queue.Messages
{
public sealed record TaskSendReminderJobMessage
{
public Guid ParticipantId { get; init; }
public Guid TaskAssignmentId { get; init; }
}
}
4 changes: 4 additions & 0 deletions Valghalla.Database/Entities/Tables/ElectionEntity.cs
Original file line number Diff line number Diff line change
@@ -18,6 +18,8 @@ public partial class ElectionEntity : IChangeTrackingEntity
public Guid? InvitationReminderCommunicationTemplateId { get; set; }
public Guid? TaskReminderCommunicationTemplateId { get; set; }
public Guid? RetractedInvitationCommunicationTemplateId { get; set; }
public Guid? RemovedFromTaskCommunicationTemplateId { get; set; }
public Guid? RemovedByValidationCommunicationTemplateId { get; set; }

public DateTime CreatedAt { get; set; }
public Guid CreatedBy { get; set; }
@@ -36,5 +38,7 @@ public partial class ElectionEntity : IChangeTrackingEntity
public virtual CommunicationTemplateEntity? InvitationReminderCommunicationTemplate { get; set; }
public virtual CommunicationTemplateEntity? TaskReminderCommunicationTemplate { get; set; }
public virtual CommunicationTemplateEntity? RetractedInvitationCommunicationTemplate { get; set; }
public virtual CommunicationTemplateEntity? RemovedFromTaskCommunicationTemplate { get; set; }
public virtual CommunicationTemplateEntity? RemovedByValidationCommunicationTemplate { get; set; }
public virtual ICollection<ElectionTaskTypeCommunicationTemplateEntity> ElectionTaskTypeCommunicationTemplates { get; } = new List<ElectionTaskTypeCommunicationTemplateEntity>();
}
Original file line number Diff line number Diff line change
@@ -12,6 +12,8 @@ public partial class ElectionTaskTypeCommunicationTemplateEntity: IChangeTrackin
public Guid? InvitationReminderCommunicationTemplateId { get; set; }
public Guid? TaskReminderCommunicationTemplateId { get; set; }
public Guid? RetractedInvitationCommunicationTemplateId { get; set; }
public Guid? RemovedFromTaskCommunicationTemplateId { get; set; }
public Guid? RemovedByValidationCommunicationTemplateId { get; set; }
public DateTime CreatedAt { get; set; }
public Guid CreatedBy { get; set; }
public DateTime? ChangedAt { get; set; }
@@ -26,5 +28,7 @@ public partial class ElectionTaskTypeCommunicationTemplateEntity: IChangeTrackin
public virtual CommunicationTemplateEntity? InvitationReminderCommunicationTemplate { get; set; }
public virtual CommunicationTemplateEntity? TaskReminderCommunicationTemplate { get; set; }
public virtual CommunicationTemplateEntity? RetractedInvitationCommunicationTemplate { get; set; }
public virtual CommunicationTemplateEntity? RemovedFromTaskCommunicationTemplate { get; set; }
public virtual CommunicationTemplateEntity? RemovedByValidationCommunicationTemplate { get; set; }
}
}
3 changes: 3 additions & 0 deletions Valghalla.Database/Entities/Tables/TaskAssignmentEntity.cs
Original file line number Diff line number Diff line change
@@ -17,6 +17,9 @@ public partial class TaskAssignmentEntity : IChangeTrackingEntity, IElectionConn
public bool RegistrationSent { get; set; }
public string HashValue { get; set; } = null!;
public Guid? InvitationCode { get; set; }
public DateTime? InvitationDate { get; set; }
public DateTime? TaskReminderDate { get; set; }
public DateTime? InvitationReminderDate { get; set; }
public DateTime CreatedAt { get; set; }
public Guid CreatedBy { get; set; }
public DateTime? ChangedAt { get; set; }
Original file line number Diff line number Diff line change
@@ -37,6 +37,8 @@ internal static void Configure(ModelBuilder modelBuilder)
entity.HasOne(e => e.InvitationReminderCommunicationTemplate).WithMany().HasForeignKey(x => x.InvitationReminderCommunicationTemplateId).OnDelete(DeleteBehavior.SetNull);
entity.HasOne(e => e.TaskReminderCommunicationTemplate).WithMany().HasForeignKey(x => x.TaskReminderCommunicationTemplateId).OnDelete(DeleteBehavior.SetNull);
entity.HasOne(e => e.RetractedInvitationCommunicationTemplate).WithMany().HasForeignKey(x => x.RetractedInvitationCommunicationTemplateId).OnDelete(DeleteBehavior.SetNull);
entity.HasOne(e => e.RemovedFromTaskCommunicationTemplate).WithMany().HasForeignKey(x => x.RemovedFromTaskCommunicationTemplateId).OnDelete(DeleteBehavior.SetNull);
entity.HasOne(e => e.RemovedByValidationCommunicationTemplate).WithMany().HasForeignKey(x => x.RemovedByValidationCommunicationTemplateId).OnDelete(DeleteBehavior.SetNull);
});

modelBuilder.Entity<ElectionTypeEntity>(entity =>
@@ -105,6 +107,8 @@ internal static void Configure(ModelBuilder modelBuilder)
entity.HasOne(e => e.InvitationReminderCommunicationTemplate).WithMany().HasForeignKey(x => x.InvitationReminderCommunicationTemplateId).OnDelete(DeleteBehavior.SetNull);
entity.HasOne(e => e.TaskReminderCommunicationTemplate).WithMany().HasForeignKey(x => x.TaskReminderCommunicationTemplateId).OnDelete(DeleteBehavior.SetNull);
entity.HasOne(e => e.RetractedInvitationCommunicationTemplate).WithMany().HasForeignKey(x => x.RetractedInvitationCommunicationTemplateId).OnDelete(DeleteBehavior.SetNull);
entity.HasOne(e => e.RemovedFromTaskCommunicationTemplate).WithMany().HasForeignKey(x => x.RemovedFromTaskCommunicationTemplateId).OnDelete(DeleteBehavior.SetNull);
entity.HasOne(e => e.RemovedByValidationCommunicationTemplate).WithMany().HasForeignKey(x => x.RemovedByValidationCommunicationTemplateId).OnDelete(DeleteBehavior.SetNull);
});
}
}
Loading

0 comments on commit 9c6f1bd

Please sign in to comment.