From c824fb531d72f34ec88df7ce06743aca26932d27 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 29 Jul 2020 17:55:34 +0000 Subject: [PATCH] --- .../ayanova/docs/form-home-notifications.md | 6 +- .../NotifySubscriptionController.cs | 34 +++- .../DataList/NotifySubscriptionDataList.cs | 188 +++++++++--------- 3 files changed, 133 insertions(+), 95 deletions(-) diff --git a/docs/8.0/ayanova/docs/form-home-notifications.md b/docs/8.0/ayanova/docs/form-home-notifications.md index 990dc171..e7d4e7c6 100644 --- a/docs/8.0/ayanova/docs/form-home-notifications.md +++ b/docs/8.0/ayanova/docs/form-home-notifications.md @@ -1,3 +1,5 @@ -# FORM-HOME-NOTIFICATIONS +# NOTIFICATIONS + +This form shows "in app" notifications received in the last 90 days. +Notifications are kept for 90 days then automatically deleted. -This is a placeholder page for sections that are not written yet diff --git a/server/AyaNova/Controllers/NotifySubscriptionController.cs b/server/AyaNova/Controllers/NotifySubscriptionController.cs index 3c0b4d70..725ed6c9 100644 --- a/server/AyaNova/Controllers/NotifySubscriptionController.cs +++ b/server/AyaNova/Controllers/NotifySubscriptionController.cs @@ -6,6 +6,8 @@ using Microsoft.Extensions.Logging; using AyaNova.Models; using AyaNova.Api.ControllerHelpers; using AyaNova.Biz; +using System.Linq; +using Microsoft.EntityFrameworkCore; namespace AyaNova.Api.Controllers { @@ -33,7 +35,7 @@ namespace AyaNova.Api.Controllers serverState = apiServerState; } - /// + /// /// Create NotifySubscription /// /// @@ -122,7 +124,7 @@ namespace AyaNova.Api.Controllers else return BadRequest(new ApiErrorResponse(biz.Errors)); } - return Ok(ApiOkResponse.Response(new { Concurrency = o.Concurrency })); + return Ok(ApiOkResponse.Response(new { Concurrency = o.Concurrency })); } /// @@ -145,6 +147,34 @@ namespace AyaNova.Api.Controllers return NoContent(); } + + /// + /// Get Subscription list + /// + /// User's notification subscription list + [HttpGet("list")] + public async Task GetQueue() + { + if (serverState.IsClosed) + return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); + + //NOTE: in future if getting list for another user should just duplicate this method but add the parameter for user id + //and checking of rights + long UserId = UserIdFromContext.Id(HttpContext.Items); + + var ret = await ct.NotifySubscription.Where(z => z.UserId == UserId).Select(z => new + { + z.Id, + z.UserId, + z.EventType, + z.AyaType, + z.DeliveryMethod, + z.DeliveryAddress, + z.Tags + }).ToListAsync(); + return Ok(ApiOkResponse.Response(ret)); + } + //------------ diff --git a/server/AyaNova/DataList/NotifySubscriptionDataList.cs b/server/AyaNova/DataList/NotifySubscriptionDataList.cs index c742d6ff..e09ca2f5 100644 --- a/server/AyaNova/DataList/NotifySubscriptionDataList.cs +++ b/server/AyaNova/DataList/NotifySubscriptionDataList.cs @@ -1,114 +1,120 @@ -using System.Collections.Generic; -using Newtonsoft.Json.Linq; -using AyaNova.Biz; -namespace AyaNova.DataList -{ - internal class NotifySubscriptionDataList : AyaDataList - { - public NotifySubscriptionDataList() - { - DefaultListObjectType = AyaType.NotifySubscription; - SQLFrom = "from anotifysubscription"; - var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType); - AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; - //Default ListView - dynamic dlistView = new JArray(); - dynamic cm = new JObject(); - cm.fld = "id"; - dlistView.Add(cm); +//DEPRECATED: due to not working properly, can't easily set to only show current logged in user's subscriptions so it was showing all +//which might be useful for a management type of situation but for a single user it's shit - cm = new JObject(); - cm.fld = "ayatype"; - dlistView.Add(cm); +// using System.Collections.Generic; +// using Newtonsoft.Json.Linq; +// using AyaNova.Biz; +// namespace AyaNova.DataList +// { +// internal class NotifySubscriptionDataList : AyaDataList +// { - cm = new JObject(); - cm.fld = "eventtype"; - dlistView.Add(cm); +// public NotifySubscriptionDataList() +// { +// DefaultListObjectType = AyaType.NotifySubscription; +// SQLFrom = "from anotifysubscription"; +// var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType); +// AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; - cm = new JObject(); - cm.fld = "deliverymethod"; - dlistView.Add(cm); +// //Default ListView +// dynamic dlistView = new JArray(); - cm = new JObject(); - cm.fld = "deliveryaddress"; - dlistView.Add(cm); +// dynamic cm = new JObject(); +// cm.fld = "id"; +// dlistView.Add(cm); - cm = new JObject(); - cm.fld = "tags"; - dlistView.Add(cm); +// cm = new JObject(); +// cm.fld = "ayatype"; +// dlistView.Add(cm); + +// cm = new JObject(); +// cm.fld = "eventtype"; +// dlistView.Add(cm); + +// cm = new JObject(); +// cm.fld = "deliverymethod"; +// dlistView.Add(cm); + +// cm = new JObject(); +// cm.fld = "deliveryaddress"; +// dlistView.Add(cm); + +// cm = new JObject(); +// cm.fld = "tags"; +// dlistView.Add(cm); - DefaultListView = dlistView.ToString(Newtonsoft.Json.Formatting.None); - FieldDefinitions = new List(); +// DefaultListView = dlistView.ToString(Newtonsoft.Json.Formatting.None); +// FieldDefinitions = new List(); - FieldDefinitions.Add(new AyaDataListFieldDefinition - { - TKey = "ID", - FieldKey = "id", - UiFieldDataType = (int)UiFieldDataType.Integer, - SqlIdColumnName = "anotifysubscription.id", - SqlValueColumnName = "anotifysubscription.id", - AyaObjectType = (int)AyaType.NotifySubscription, - IsRowId = true - }); +// FieldDefinitions.Add(new AyaDataListFieldDefinition +// { +// TKey = "ID", +// FieldKey = "id", +// UiFieldDataType = (int)UiFieldDataType.Integer, +// SqlIdColumnName = "anotifysubscription.id", +// SqlValueColumnName = "anotifysubscription.id", +// AyaObjectType = (int)AyaType.NotifySubscription, +// IsRowId = true +// }); - FieldDefinitions.Add(new AyaDataListFieldDefinition - { - TKey = "AyaType", - FieldKey = "ayatype", - UiFieldDataType = (int)UiFieldDataType.Enum, - EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(AyaType).ToString()) - }); +// FieldDefinitions.Add(new AyaDataListFieldDefinition +// { +// TKey = "AyaType", +// FieldKey = "ayatype", +// UiFieldDataType = (int)UiFieldDataType.Enum, +// EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(AyaType).ToString()) +// }); - FieldDefinitions.Add(new AyaDataListFieldDefinition - { - TKey = "NotifyEventType", - FieldKey = "eventtype", - UiFieldDataType = (int)UiFieldDataType.Enum, - EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(NotifyEventType).ToString()) - }); +// FieldDefinitions.Add(new AyaDataListFieldDefinition +// { +// TKey = "NotifyEventType", +// FieldKey = "eventtype", +// UiFieldDataType = (int)UiFieldDataType.Enum, +// EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(NotifyEventType).ToString()) +// }); - // FieldDefinitions.Add(new AyaDataListFieldDefinition - // { - // TKey = "FileAttachment", - // FieldKey = "displayfilename", - // AyaObjectType = (int)AyaType.FileAttachment, - // UiFieldDataType = (int)UiFieldDataType.Text, - // SqlIdColumnName = "afileattachment.id", - // SqlValueColumnName = "afileattachment.displayfilename", - // IsRowId = true - // }); +// // FieldDefinitions.Add(new AyaDataListFieldDefinition +// // { +// // TKey = "FileAttachment", +// // FieldKey = "displayfilename", +// // AyaObjectType = (int)AyaType.FileAttachment, +// // UiFieldDataType = (int)UiFieldDataType.Text, +// // SqlIdColumnName = "afileattachment.id", +// // SqlValueColumnName = "afileattachment.displayfilename", +// // IsRowId = true +// // }); - FieldDefinitions.Add(new AyaDataListFieldDefinition - { - TKey = "NotifyDeliveryMethod", - FieldKey = "deliverymethod", - UiFieldDataType = (int)UiFieldDataType.Enum, - EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(NotifyDeliveryMethod).ToString()) - }); +// FieldDefinitions.Add(new AyaDataListFieldDefinition +// { +// TKey = "NotifyDeliveryMethod", +// FieldKey = "deliverymethod", +// UiFieldDataType = (int)UiFieldDataType.Enum, +// EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(NotifyDeliveryMethod).ToString()) +// }); - FieldDefinitions.Add(new AyaDataListFieldDefinition - { - TKey = "NotifyDeliveryAddress", - FieldKey = "deliveryaddress", - UiFieldDataType = (int)UiFieldDataType.Text - }); +// FieldDefinitions.Add(new AyaDataListFieldDefinition +// { +// TKey = "NotifyDeliveryAddress", +// FieldKey = "deliveryaddress", +// UiFieldDataType = (int)UiFieldDataType.Text +// }); - FieldDefinitions.Add(new AyaDataListFieldDefinition - { - TKey = "InTags", - FieldKey = "tags", - UiFieldDataType = (int)UiFieldDataType.Tags - }); +// FieldDefinitions.Add(new AyaDataListFieldDefinition +// { +// TKey = "InTags", +// FieldKey = "tags", +// UiFieldDataType = (int)UiFieldDataType.Tags +// }); - } - }//eoc -}//eons \ No newline at end of file +// } +// }//eoc +// }//eons \ No newline at end of file