Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions MessagingService.EmailAggregate.Tests/EmailAggregateTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,6 @@ public void EmailAggregate_MarkMessageAsDelivered_MessageMarkedAsDelivered() {

[Theory]
[InlineData(MessageStatus.NotSet)]
[InlineData(MessageStatus.Delivered)]
[InlineData(MessageStatus.Rejected)]
[InlineData(MessageStatus.Failed)]
[InlineData(MessageStatus.Spam)]
Expand Down Expand Up @@ -139,7 +138,6 @@ public void EmailAggregate_MarkMessageAsRejected_MessageMarkedAsRejected() {
[Theory]
[InlineData(MessageStatus.NotSet)]
[InlineData(MessageStatus.Delivered)]
[InlineData(MessageStatus.Rejected)]
[InlineData(MessageStatus.Failed)]
[InlineData(MessageStatus.Spam)]
[InlineData(MessageStatus.Bounced)]
Expand Down Expand Up @@ -192,7 +190,6 @@ public void EmailAggregate_MarkMessageAsFailed_MessageMarkedAsFailed() {
[InlineData(MessageStatus.NotSet)]
[InlineData(MessageStatus.Delivered)]
[InlineData(MessageStatus.Rejected)]
[InlineData(MessageStatus.Failed)]
[InlineData(MessageStatus.Spam)]
[InlineData(MessageStatus.Bounced)]
public void EmailAggregate_MarkMessageAsFailed_IncorrectState_ErrorThrown(MessageStatus messageStatus) {
Expand Down Expand Up @@ -246,7 +243,6 @@ public void EmailAggregate_MarkMessageAsBounced_MessageMarkedAsBounced() {
[InlineData(MessageStatus.Rejected)]
[InlineData(MessageStatus.Failed)]
[InlineData(MessageStatus.Spam)]
[InlineData(MessageStatus.Bounced)]
public void EmailAggregate_MarkMessageAsBounced_IncorrectState_ErrorThrown(MessageStatus messageStatus) {
EmailAggregate emailAggregate = EmailAggregate.Create(TestData.MessageId);

Expand Down Expand Up @@ -297,7 +293,6 @@ public void EmailAggregate_MarkMessageAsSpam_MessageMarkedAsSpam() {
[InlineData(MessageStatus.Delivered)]
[InlineData(MessageStatus.Rejected)]
[InlineData(MessageStatus.Failed)]
[InlineData(MessageStatus.Spam)]
[InlineData(MessageStatus.Bounced)]
public void EmailAggregate_MarkMessageAsSpam_IncorrectState_ErrorThrown(MessageStatus messageStatus) {
EmailAggregate emailAggregate = EmailAggregate.Create(TestData.MessageId);
Expand Down
10 changes: 10 additions & 0 deletions MessagingService.EmailMessageAggregate/EmailAggregate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ public static class EmailAggregateExtensions{
public static void MarkMessageAsBounced(this EmailAggregate aggregate, String providerStatus,
DateTime bouncedDateTime)
{
if (aggregate.DeliveryStatusList[aggregate.ResendCount] == MessageStatus.Bounced)
return;
aggregate.CheckMessageCanBeSetToBounced();

EmailMessageBouncedEvent messageBouncedEvent = new EmailMessageBouncedEvent(aggregate.AggregateId, providerStatus, bouncedDateTime);
Expand All @@ -25,6 +27,8 @@ public static void MarkMessageAsBounced(this EmailAggregate aggregate, String pr
public static void MarkMessageAsDelivered(this EmailAggregate aggregate, String providerStatus,
DateTime deliveredDateTime)
{
if (aggregate.DeliveryStatusList[aggregate.ResendCount] == MessageStatus.Delivered)
return;
aggregate.CheckMessageCanBeSetToDelivered();

EmailMessageDeliveredEvent messageDeliveredEvent = new EmailMessageDeliveredEvent(aggregate.AggregateId, providerStatus, deliveredDateTime);
Expand All @@ -35,6 +39,8 @@ public static void MarkMessageAsDelivered(this EmailAggregate aggregate, String
public static void MarkMessageAsFailed(this EmailAggregate aggregate, String providerStatus,
DateTime failedDateTime)
{
if (aggregate.DeliveryStatusList[aggregate.ResendCount] == MessageStatus.Failed)
return;
aggregate.CheckMessageCanBeSetToFailed();

EmailMessageFailedEvent messageFailedEvent = new EmailMessageFailedEvent(aggregate.AggregateId, providerStatus, failedDateTime);
Expand All @@ -45,6 +51,8 @@ public static void MarkMessageAsFailed(this EmailAggregate aggregate, String pro
public static void MarkMessageAsRejected(this EmailAggregate aggregate, String providerStatus,
DateTime rejectedDateTime)
{
if (aggregate.DeliveryStatusList[aggregate.ResendCount] == MessageStatus.Rejected)
return;
aggregate.CheckMessageCanBeSetToRejected();

EmailMessageRejectedEvent messageRejectedEvent = new EmailMessageRejectedEvent(aggregate.AggregateId, providerStatus, rejectedDateTime);
Expand All @@ -55,6 +63,8 @@ public static void MarkMessageAsRejected(this EmailAggregate aggregate, String p
public static void MarkMessageAsSpam(this EmailAggregate aggregate, String providerStatus,
DateTime spamDateTime)
{
if (aggregate.DeliveryStatusList[aggregate.ResendCount] == MessageStatus.Spam)
return;
aggregate.CheckMessageCanBeSetToSpam();

EmailMessageMarkedAsSpamEvent messageMarkedAsSpamEvent = new EmailMessageMarkedAsSpamEvent(aggregate.AggregateId, providerStatus, spamDateTime);
Expand Down
4 changes: 0 additions & 4 deletions MessagingService.SMSAggregate.Tests/SMSAggregateTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ public void SMSAggregate_MarkMessageAsDelivered_MessageMarkedAsDelivered()
[Theory]
[InlineData(MessageStatus.NotSet)]
[InlineData(MessageStatus.Expired)]
[InlineData(MessageStatus.Delivered)]
[InlineData(MessageStatus.Undeliverable)]
[InlineData(MessageStatus.InProgress)]
[InlineData(MessageStatus.Rejected)]
Expand Down Expand Up @@ -117,7 +116,6 @@ public void SMSAggregate_MarkMessageAsExpired_MessageMarkedAsExpired()

[Theory]
[InlineData(MessageStatus.NotSet)]
[InlineData(MessageStatus.Expired)]
[InlineData(MessageStatus.Delivered)]
[InlineData(MessageStatus.Undeliverable)]
[InlineData(MessageStatus.InProgress)]
Expand Down Expand Up @@ -175,7 +173,6 @@ public void SMSAggregate_MarkMessageAsUndeliverable_MessageMarkedAsUndeliverable
[InlineData(MessageStatus.NotSet)]
[InlineData(MessageStatus.Expired)]
[InlineData(MessageStatus.Delivered)]
[InlineData(MessageStatus.Undeliverable)]
[InlineData(MessageStatus.InProgress)]
[InlineData(MessageStatus.Rejected)]
public void SMSAggregate_MarkMessageAsUndeliverable_IncorrectState_ErrorThrown(MessageStatus messageStatus)
Expand Down Expand Up @@ -233,7 +230,6 @@ public void SMSAggregate_MarkMessageAsRejected_MessageMarkedAsRejected()
[InlineData(MessageStatus.Delivered)]
[InlineData(MessageStatus.Undeliverable)]
[InlineData(MessageStatus.InProgress)]
[InlineData(MessageStatus.Rejected)]
public void SMSAggregate_MarkMessageAsRejected_IncorrectState_ErrorThrown(MessageStatus messageStatus)
{
SMSAggregate smsAggregate = SMSAggregate.Create(TestData.MessageId);
Expand Down
11 changes: 10 additions & 1 deletion MessagingService.SMSMessageAggregate/SMSAggregate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ public static MessageStatus GetDeliveryStatus(this SMSAggregate aggregate, Int32
public static void MarkMessageAsDelivered(this SMSAggregate aggregate,
String providerStatus,
DateTime failedDateTime){
if (aggregate.DeliveryStatusList[aggregate.ResendCount] == MessageStatus.Delivered)
return;

aggregate.CheckMessageCanBeSetToDelivered();

SMSMessageDeliveredEvent messageDeliveredEvent = new SMSMessageDeliveredEvent(aggregate.AggregateId, providerStatus, failedDateTime);
Expand All @@ -31,6 +34,8 @@ public static void MarkMessageAsDelivered(this SMSAggregate aggregate,
public static void MarkMessageAsExpired(this SMSAggregate aggregate,
String providerStatus,
DateTime failedDateTime){
if (aggregate.DeliveryStatusList[aggregate.ResendCount] == MessageStatus.Expired)
return;
aggregate.CheckMessageCanBeSetToExpired();

SMSMessageExpiredEvent messageExpiredEvent = new SMSMessageExpiredEvent(aggregate.AggregateId, providerStatus, failedDateTime);
Expand All @@ -41,6 +46,8 @@ public static void MarkMessageAsExpired(this SMSAggregate aggregate,
public static void MarkMessageAsRejected(this SMSAggregate aggregate,
String providerStatus,
DateTime failedDateTime){
if (aggregate.DeliveryStatusList[aggregate.ResendCount] == MessageStatus.Rejected)
return;
aggregate.CheckMessageCanBeSetToRejected();

SMSMessageRejectedEvent messageRejectedEvent = new SMSMessageRejectedEvent(aggregate.AggregateId, providerStatus, failedDateTime);
Expand All @@ -51,6 +58,8 @@ public static void MarkMessageAsRejected(this SMSAggregate aggregate,
public static void MarkMessageAsUndeliverable(this SMSAggregate aggregate,
String providerStatus,
DateTime failedDateTime){
if (aggregate.DeliveryStatusList[aggregate.ResendCount] == MessageStatus.Undeliverable)
return;
aggregate.CheckMessageCanBeSetToUndeliverable();

SMSMessageUndeliveredEvent messageUndeliveredEvent = new SMSMessageUndeliveredEvent(aggregate.AggregateId, providerStatus, failedDateTime);
Expand Down Expand Up @@ -120,7 +129,7 @@ public static void SendRequestToProvider(this SMSAggregate aggregate,
aggregate.ApplyAndAppend(requestSentToProviderEvent);
}

private static void CheckMessageCanBeSetToDelivered(this SMSAggregate aggregate){
private static void CheckMessageCanBeSetToDelivered(this SMSAggregate aggregate) {
if (aggregate.DeliveryStatusList[aggregate.ResendCount] != MessageStatus.Sent){
throw new InvalidOperationException($"Message at status {aggregate.DeliveryStatusList[aggregate.ResendCount]} cannot be set to delivered");
}
Expand Down
Loading