private OSDMap NewsFromGroupNotices(OSDMap map)
{
OSDMap resp = new OSDMap();
resp["GroupNotices"] = new OSDArray();
resp["Total"] = 0;
IGenericsConnector generics = DataPlugins.RequestPlugin<IGenericsConnector>();
IGroupsServiceConnector groups = DataPlugins.RequestPlugin<IGroupsServiceConnector>();
if (generics == null || groups == null)
{
return resp;
}
OSDMap useValue = new OSDMap();
useValue["Use"] = OSD.FromBoolean(true);
List<UUID> GroupIDs = generics.GetOwnersByGeneric("Group", "WebUI_newsSource", useValue);
if (GroupIDs.Count <= 0)
{
return resp;
}
foreach (UUID groupID in GroupIDs)
{
GroupRecord group = groups.GetGroupRecord(AdminAgentID, groupID, "");
if (!group.ShowInList)
{
GroupIDs.Remove(groupID);
}
}
uint start = map.ContainsKey("Start") ? uint.Parse(map["Start"].ToString()) : 0;
uint count = map.ContainsKey("Count") ? uint.Parse(map["Count"].ToString()) : 10;
OSDMap args = new OSDMap();
args["Start"] = OSD.FromString(start.ToString());
args["Count"] = OSD.FromString(count.ToString());
args["Groups"] = new OSDArray(GroupIDs.ConvertAll(x=>OSD.FromString(x.ToString())));
return GroupNotices(args);
}