This commit is contained in:
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@@ -53,7 +53,7 @@
|
|||||||
"AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles",
|
"AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles",
|
||||||
"AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles",
|
"AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles",
|
||||||
"AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles",
|
"AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles",
|
||||||
"AYANOVA_SERVER_TEST_MODE": "true",
|
"AYANOVA_SERVER_TEST_MODE": "false",
|
||||||
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small",
|
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small",
|
||||||
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7",
|
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7",
|
||||||
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\"
|
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\"
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ namespace AyaNova.Biz
|
|||||||
if (Subscription.DeliveryMethod == NotifyDeliveryMethod.App)
|
if (Subscription.DeliveryMethod == NotifyDeliveryMethod.App)
|
||||||
await DeliverInApp(notifyevent, Subscription.AgeValue, ct);
|
await DeliverInApp(notifyevent, Subscription.AgeValue, ct);
|
||||||
else if (Subscription.DeliveryMethod == NotifyDeliveryMethod.SMTP)
|
else if (Subscription.DeliveryMethod == NotifyDeliveryMethod.SMTP)
|
||||||
await DeliverSMTP(notifyevent, Subscription.DeliveryAddress, ct);
|
await DeliverSMTP(notifyevent, Subscription.AgeValue, Subscription.DeliveryAddress, ct);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -128,7 +128,7 @@ namespace AyaNova.Biz
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
private static async Task DeliverSMTP(NotifyEvent ne, string deliveryAddress, AyContext ct)
|
private static async Task DeliverSMTP(NotifyEvent ne, TimeSpan ageValue, string deliveryAddress, AyContext ct)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -147,6 +147,15 @@ namespace AyaNova.Biz
|
|||||||
TranslationKeysToFetch.Add("Server");
|
TranslationKeysToFetch.Add("Server");
|
||||||
var EventTypeTranslationKey = "NotifyEvent" + ne.EventType.ToString();
|
var EventTypeTranslationKey = "NotifyEvent" + ne.EventType.ToString();
|
||||||
TranslationKeysToFetch.Add(EventTypeTranslationKey);
|
TranslationKeysToFetch.Add(EventTypeTranslationKey);
|
||||||
|
if (ageValue != TimeSpan.Zero)
|
||||||
|
{
|
||||||
|
TranslationKeysToFetch.Add("TimeSpanDays");
|
||||||
|
TranslationKeysToFetch.Add("TimeSpanHours");
|
||||||
|
TranslationKeysToFetch.Add("TimeSpanMinutes");
|
||||||
|
TranslationKeysToFetch.Add("TimeSpanSeconds");
|
||||||
|
}
|
||||||
|
|
||||||
|
//get translations
|
||||||
var transid = await ct.UserOptions.AsNoTracking().Where(x => x.UserId == ne.UserId).Select(x => x.TranslationId).FirstOrDefaultAsync();
|
var transid = await ct.UserOptions.AsNoTracking().Where(x => x.UserId == ne.UserId).Select(x => x.TranslationId).FirstOrDefaultAsync();
|
||||||
var LT = await TranslationBiz.GetSubsetStaticAsync(TranslationKeysToFetch, transid);
|
var LT = await TranslationBiz.GetSubsetStaticAsync(TranslationKeysToFetch, transid);
|
||||||
|
|
||||||
@@ -165,17 +174,21 @@ namespace AyaNova.Biz
|
|||||||
|
|
||||||
var subject = $"AY:{AyaTypeTranslated}:{name}:{SubscriptionTypeName}";
|
var subject = $"AY:{AyaTypeTranslated}:{name}:{SubscriptionTypeName}";
|
||||||
|
|
||||||
|
//Age relevant notification
|
||||||
|
string AgeDisplay = "";
|
||||||
|
if (ageValue != TimeSpan.Zero)
|
||||||
|
AgeDisplay = $"({AyaNova.Util.DateUtil.FormatTimeSpan(ageValue, LT["TimeSpanDays"], LT["TimeSpanHours"], LT["TimeSpanMinutes"], LT["TimeSpanSeconds"])})\n";
|
||||||
|
|
||||||
|
//var test=AyaNova.Util.DateUtil.FormatTimeSpan(new TimeSpan(2,3,4,5), LT["TimeSpanDays"], LT["TimeSpanHours"], LT["TimeSpanMinutes"], LT["TimeSpanSeconds"]);
|
||||||
|
|
||||||
IMailer m = AyaNova.Util.ServiceProviderProvider.Mailer;
|
IMailer m = AyaNova.Util.ServiceProviderProvider.Mailer;
|
||||||
|
|
||||||
var body = "";
|
var body = "";
|
||||||
//NOTE: if need any other exemptions besides backup status make a separate static function "CanOpen(NotifyEventType)"
|
//NOTE: if need any other exemptions besides backup status make a separate static function "CanOpen(NotifyEventType)"
|
||||||
|
|
||||||
|
|
||||||
if (ne.ObjectId != 0 || ne.EventType == NotifyEventType.BackupStatus)
|
if (ne.ObjectId != 0 || ne.EventType == NotifyEventType.BackupStatus)
|
||||||
{
|
{
|
||||||
body = $"{AyaTypeTranslated}\n{OpenObjectUrlBuilder(ne.AyaType, ne.ObjectId, ne.EventType)}\n";
|
body = $"{AgeDisplay}{AyaTypeTranslated}\n{OpenObjectUrlBuilder(ne.AyaType, ne.ObjectId, ne.EventType)}\n";
|
||||||
}
|
}
|
||||||
body += ne.Message;
|
body += ne.Message;
|
||||||
|
|
||||||
@@ -196,6 +209,7 @@ namespace AyaNova.Biz
|
|||||||
await m.SendEmailAsync(deliveryAddress, subject, body, ServerGlobalOpsSettingsCache.Notify);
|
await m.SendEmailAsync(deliveryAddress, subject, body, ServerGlobalOpsSettingsCache.Notify);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
await NotifyEventHelper.AddGeneralNotifyEvent(NotifyEventType.GeneralNotification, $"Test of general notification system", "Error", null, ne.UserId);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -122,6 +122,38 @@ namespace AyaNova.Util
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// returns passed in timespan to human readable format
|
||||||
|
/// as short as possible using passed in time span translations
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string FormatTimeSpan(TimeSpan timeSpan, string dayz = "days", string hourz = "hours", string minutez = "minutes", string secondz = "seconds")
|
||||||
|
{
|
||||||
|
if (timeSpan == TimeSpan.Zero)
|
||||||
|
return "";
|
||||||
|
|
||||||
|
var components = new List<Tuple<int, string>>
|
||||||
|
{
|
||||||
|
Tuple.Create((int) timeSpan.TotalDays, dayz),
|
||||||
|
Tuple.Create(timeSpan.Hours, hourz),
|
||||||
|
Tuple.Create(timeSpan.Minutes, minutez),
|
||||||
|
Tuple.Create(timeSpan.Seconds, secondz),
|
||||||
|
};
|
||||||
|
|
||||||
|
components.RemoveAll(i => i.Item1 == 0);
|
||||||
|
System.Text.StringBuilder sb = new System.Text.StringBuilder();
|
||||||
|
foreach (var t in components)
|
||||||
|
{
|
||||||
|
sb.Append(t.Item1);
|
||||||
|
sb.Append(" ");
|
||||||
|
sb.Append(t.Item2);
|
||||||
|
sb.Append(" ");
|
||||||
|
}
|
||||||
|
|
||||||
|
return sb.ToString().Trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}//eoc
|
}//eoc
|
||||||
|
|
||||||
}//eons
|
}//eons
|
||||||
Reference in New Issue
Block a user