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": "false",
|
"AYANOVA_SERVER_TEST_MODE": "true",
|
||||||
"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\\"
|
||||||
|
|||||||
@@ -1279,7 +1279,7 @@ namespace AyaNova.Biz
|
|||||||
AyaType = AyaType.WorkOrder,
|
AyaType = AyaType.WorkOrder,
|
||||||
ObjectId = o.WorkOrderId,
|
ObjectId = o.WorkOrderId,
|
||||||
NotifySubscriptionId = sub.Id,
|
NotifySubscriptionId = sub.Id,
|
||||||
Name = WorkorderInfo.Serial.ToString()
|
Name = $"{WorkorderInfo.Serial.ToString()} - {wos.Name}"
|
||||||
};
|
};
|
||||||
await ct.NotifyEvent.AddAsync(n);
|
await ct.NotifyEvent.AddAsync(n);
|
||||||
log.LogDebug($"Adding NotifyEvent: [{n.ToString()}]");
|
log.LogDebug($"Adding NotifyEvent: [{n.ToString()}]");
|
||||||
@@ -1304,12 +1304,12 @@ namespace AyaNova.Biz
|
|||||||
{
|
{
|
||||||
NotifyEvent n = new NotifyEvent()
|
NotifyEvent n = new NotifyEvent()
|
||||||
{
|
{
|
||||||
EventType = NotifyEventType.WorkorderStatusChange,
|
EventType = NotifyEventType.WorkorderStatusAge,
|
||||||
UserId = sub.UserId,
|
UserId = sub.UserId,
|
||||||
AyaType = AyaType.WorkOrder,
|
AyaType = AyaType.WorkOrder,
|
||||||
ObjectId = o.WorkOrderId,
|
ObjectId = o.WorkOrderId,
|
||||||
NotifySubscriptionId = sub.Id,
|
NotifySubscriptionId = sub.Id,
|
||||||
Name = WorkorderInfo.Serial.ToString()
|
Name = $"{WorkorderInfo.Serial.ToString()} - {wos.Name}"
|
||||||
};
|
};
|
||||||
await ct.NotifyEvent.AddAsync(n);
|
await ct.NotifyEvent.AddAsync(n);
|
||||||
log.LogDebug($"Adding NotifyEvent: [{n.ToString()}]");
|
log.LogDebug($"Adding NotifyEvent: [{n.ToString()}]");
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ namespace AyaNova.Biz
|
|||||||
if (deliverAfter < DateTime.UtcNow)
|
if (deliverAfter < DateTime.UtcNow)
|
||||||
{
|
{
|
||||||
if (Subscription.DeliveryMethod == NotifyDeliveryMethod.App)
|
if (Subscription.DeliveryMethod == NotifyDeliveryMethod.App)
|
||||||
await DeliverInApp(notifyevent, 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.DeliveryAddress, ct);
|
||||||
}
|
}
|
||||||
@@ -117,10 +117,10 @@ namespace AyaNova.Biz
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static async Task DeliverInApp(NotifyEvent ne, AyContext ct)
|
private static async Task DeliverInApp(NotifyEvent ne, TimeSpan ageValue, AyContext ct)
|
||||||
{
|
{
|
||||||
log.LogTrace($"DeliverInApp notify event: {ne}");
|
log.LogTrace($"DeliverInApp notify event: {ne}");
|
||||||
await ct.Notification.AddAsync(new Notification() { UserId = ne.UserId, AyaType = ne.AyaType, ObjectId = ne.ObjectId, EventType = ne.EventType, NotifySubscriptionId = ne.NotifySubscriptionId, Message = ne.Message, Name = ne.Name });
|
await ct.Notification.AddAsync(new Notification() { UserId = ne.UserId, AyaType = ne.AyaType, ObjectId = ne.ObjectId, EventType = ne.EventType, NotifySubscriptionId = ne.NotifySubscriptionId, Message = ne.Message, Name = ne.Name, AgeValue = ageValue });
|
||||||
await ct.SaveChangesAsync();
|
await ct.SaveChangesAsync();
|
||||||
ct.NotifyEvent.Remove(ne);
|
ct.NotifyEvent.Remove(ne);
|
||||||
await ct.SaveChangesAsync();
|
await ct.SaveChangesAsync();
|
||||||
|
|||||||
@@ -21,12 +21,13 @@ namespace AyaNova.Models
|
|||||||
public AyaType? AyaType { get; set; }
|
public AyaType? AyaType { get; set; }
|
||||||
public long? ObjectId { get; set; }
|
public long? ObjectId { get; set; }
|
||||||
[Required]
|
[Required]
|
||||||
public string Name {get;set;}//object name or closest equivalent for display
|
public string Name { get; set; }//object name or closest equivalent for display
|
||||||
[Required]
|
[Required]
|
||||||
public NotifyEventType EventType { get; set; }
|
public NotifyEventType EventType { get; set; }
|
||||||
[Required]
|
[Required]
|
||||||
public long NotifySubscriptionId { get; set; }
|
public long NotifySubscriptionId { get; set; }
|
||||||
public string Message { get; set; }
|
public string Message { get; set; }
|
||||||
|
public TimeSpan AgeValue { get; set; }
|
||||||
[Required]
|
[Required]
|
||||||
public bool Fetched { get; set; }
|
public bool Fetched { get; set; }
|
||||||
|
|
||||||
@@ -34,7 +35,8 @@ namespace AyaNova.Models
|
|||||||
{
|
{
|
||||||
Created = DateTime.UtcNow;
|
Created = DateTime.UtcNow;
|
||||||
Fetched = false;
|
Fetched = false;
|
||||||
Name=string.Empty;
|
Name = string.Empty;
|
||||||
|
AgeValue = TimeSpan.Zero;
|
||||||
}
|
}
|
||||||
|
|
||||||
//linked entity
|
//linked entity
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ namespace AyaNova.Util
|
|||||||
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!!
|
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!!
|
||||||
private const int DESIRED_SCHEMA_LEVEL = 1;
|
private const int DESIRED_SCHEMA_LEVEL = 1;
|
||||||
|
|
||||||
internal const long EXPECTED_COLUMN_COUNT = 925;
|
internal const long EXPECTED_COLUMN_COUNT = 926;
|
||||||
internal const long EXPECTED_INDEX_COUNT = 137;
|
internal const long EXPECTED_INDEX_COUNT = 137;
|
||||||
internal const long EXPECTED_CHECK_CONSTRAINTS = 415;
|
internal const long EXPECTED_CHECK_CONSTRAINTS = 415;
|
||||||
internal const long EXPECTED_FOREIGN_KEY_CONSTRAINTS = 116;
|
internal const long EXPECTED_FOREIGN_KEY_CONSTRAINTS = 116;
|
||||||
@@ -31,7 +31,7 @@ namespace AyaNova.Util
|
|||||||
|
|
||||||
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!!
|
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!!
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////// C925:I137:CC415:FC116:V6:R2
|
///////////////////////////////////////////////////////////////// C926:I137:CC415:FC116:V6:R2
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -944,7 +944,7 @@ $BODY$ LANGUAGE PLPGSQL STABLE");
|
|||||||
//idvalue BIGINT NOT NULL, decvalue DECIMAL(38,18) NOT NULL,
|
//idvalue BIGINT NOT NULL, decvalue DECIMAL(38,18) NOT NULL,
|
||||||
|
|
||||||
await ExecQueryAsync("CREATE TABLE anotification (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, userid BIGINT NOT NULL REFERENCES auser (id), "
|
await ExecQueryAsync("CREATE TABLE anotification (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, userid BIGINT NOT NULL REFERENCES auser (id), "
|
||||||
+ "created TIMESTAMP NOT NULL, ayatype INTEGER NOT NULL, objectid BIGINT NOT NULL, name TEXT NOT NULL, eventtype INTEGER NOT NULL, "
|
+ "created TIMESTAMP NOT NULL, ayatype INTEGER NOT NULL, objectid BIGINT NOT NULL, name TEXT NOT NULL, agevalue INTERVAL, eventtype INTEGER NOT NULL, "
|
||||||
+ "notifysubscriptionid BIGINT NOT NULL REFERENCES anotifysubscription(id) ON DELETE CASCADE, message TEXT, fetched BOOL NOT NULL)");
|
+ "notifysubscriptionid BIGINT NOT NULL REFERENCES anotifysubscription(id) ON DELETE CASCADE, message TEXT, fetched BOOL NOT NULL)");
|
||||||
|
|
||||||
await ExecQueryAsync("CREATE TABLE anotifydeliverylog (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, processed TIMESTAMP NOT NULL, "
|
await ExecQueryAsync("CREATE TABLE anotifydeliverylog (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, processed TIMESTAMP NOT NULL, "
|
||||||
|
|||||||
Reference in New Issue
Block a user