diff --git a/server/AyaNova/biz/IReportAbleObject.cs b/server/AyaNova/biz/IReportAbleObject.cs
new file mode 100644
index 00000000..5f0175e7
--- /dev/null
+++ b/server/AyaNova/biz/IReportAbleObject.cs
@@ -0,0 +1,18 @@
+using AyaNova.Models;
+using System.Threading.Tasks;
+using Newtonsoft.Json.Linq;
+namespace AyaNova.Biz
+{
+ ///
+ /// Interface for biz objects that support reporting
+ ///
+ internal interface IReportAbleObject
+ {
+
+ //Get items indicated in id list in report format
+ //called by ReportBiz rendering code
+ Task GetReportData(long[] idList);
+
+ }
+
+}
\ No newline at end of file
diff --git a/server/AyaNova/biz/ReportBiz.cs b/server/AyaNova/biz/ReportBiz.cs
index 9597a177..ebb18ce9 100644
--- a/server/AyaNova/biz/ReportBiz.cs
+++ b/server/AyaNova/biz/ReportBiz.cs
@@ -267,7 +267,8 @@ namespace AyaNova.Biz
//Get data
-
+ var biz = BizObjectFactory.GetBizObject(report.ObjectType, ct);
+ var data = ((IReportAbleObject)biz).GetReportData(objectidarray);
//initialization
diff --git a/server/AyaNova/biz/WidgetBiz.cs b/server/AyaNova/biz/WidgetBiz.cs
index a0875bd7..b95196ba 100644
--- a/server/AyaNova/biz/WidgetBiz.cs
+++ b/server/AyaNova/biz/WidgetBiz.cs
@@ -11,7 +11,7 @@ using System.Collections.Generic;
namespace AyaNova.Biz
{
- internal class WidgetBiz : BizObject, IJobObject, ISearchAbleObject
+ internal class WidgetBiz : BizObject, IJobObject, ISearchAbleObject, IReportAbleObject
{
internal WidgetBiz(AyContext dbcontext, long currentUserId, long userTranslationId, AuthorizationRoles UserRoles)
{
@@ -283,6 +283,20 @@ namespace AyaNova.Biz
}
+ public async Task GetReportData(long[] idList)
+ {
+ JArray j = new JArray();
+ while (idList.Any())
+ {
+ var batch = idList.Take(100);
+ idList = idList.Skip(100).ToArray();
+ var res = await ct.Widget.Where(z => idList.Contains(z.Id)).ToArrayAsync();
+ foreach(Widget w in res){
+ j.Add(w);
+ }
+ }
+ return j;
+ }
////////////////////////////////////////////////////////////////////////////////////////////////
//JOB / OPERATIONS
@@ -358,6 +372,8 @@ namespace AyaNova.Biz
}
+
+
/////////////////////////////////////////////////////////////////////
}//eoc