This commit is contained in:
2018-09-17 23:10:49 +00:00
parent 6641179132
commit 987dd0c549
4 changed files with 142 additions and 6 deletions

View File

@@ -2,6 +2,8 @@ namespace AyaNova.Biz
{
/// <summary>
/// All AyaNova types and their attributes indicating what features that type will support (tagging, attachments etc)
/// </summary>
@@ -25,10 +27,16 @@ namespace AyaNova.Biz
AyaNova7Import = 10,
TrialSeeder = 11,
Metrics = 12,
Locale = 13,
UserOptions=14,
TagGroup = 15,
TagGroupMap = 16
Locale = 13,
UserOptions = 14,
TagGroup = 15,
TagGroupMap = 16
//NOTE: New objects added here need to also be added to the following classes:
//AyaNova.Biz.BizObjectExistsInDatabase
//AyaNova.Biz.BizObjectFactory
//AyaNova.Biz.BizRoles
}

View File

@@ -0,0 +1,65 @@
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.JsonPatch;
using EnumsNET;
using AyaNova.Util;
using AyaNova.Api.ControllerHelpers;
using AyaNova.Biz;
using AyaNova.Models;
namespace AyaNova.Biz
{
//TODO: UNTESTED, UNUSED (SO FAR)CODE
//This was just blocked out because I know I will need it in future
internal static class BizObjectExistsInDatabase
{
internal static bool Exists(AyaTypeId tid)
{
return Exists(tid.ObjectType, tid.ObjectId);
}
//Returns existance status of object type and id specified in database
internal static bool Exists(AyaType aytype, long id, AyContext ct = null)
{
//new up a context??
if (ct == null)
{
ct = ServiceProviderProvider.DBContext;
}
switch (aytype)
{
case AyaType.User:
return ct.User.Any(m => m.Id == id);
case AyaType.Widget:
return ct.Widget.Any(m => m.Id == id);
case AyaType.Tag:
return ct.Tag.Any(m => m.Id == id);
case AyaType.TagGroup:
return ct.TagGroup.Any(m => m.Id == id);
default:
throw new System.NotSupportedException($"AyaNova.BLL.BizObjectExistsInDatabase::Exists type {aytype.ToString()} is not supported");
}
}
/////////////////////////////////////////////////////////////////////
}//eoc
}//eons

View File

@@ -0,0 +1,62 @@
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.JsonPatch;
using EnumsNET;
using AyaNova.Util;
using AyaNova.Api.ControllerHelpers;
using AyaNova.Biz;
using AyaNova.Models;
namespace AyaNova.Biz
{
//TODO: UNTESTED, UNUSED (SO FAR)CODE
//This was just blocked out because I know I will need it in future
internal static class BizObjectNameFetcher
{
internal static string Name(AyaTypeId tid)
{
return Name(tid.ObjectType, tid.ObjectId);
}
//Returns existance status of object type and id specified in database
internal static string Name(AyaType aytype, long id, AyContext ct = null)
{
//new up a context??
if (ct == null)
{
ct = ServiceProviderProvider.DBContext;
}
switch (aytype)
{
case AyaType.User:
return ct.User.Where(m => m.Id == id).Select(m => m.Name).FirstOrDefault();
case AyaType.Widget:
return ct.Widget.Where(m => m.Id == id).Select(m => m.Name).FirstOrDefault();
case AyaType.Tag:
return ct.Tag.Where(m => m.Id == id).Select(m => m.Name).FirstOrDefault();
case AyaType.TagGroup:
return ct.TagGroup.Where(m => m.Id == id).Select(m => m.Name).FirstOrDefault();
default:
throw new System.NotSupportedException($"AyaNova.BLL.BizObjectNameFetcher::Name type {aytype.ToString()} is not supported");
}
}
/////////////////////////////////////////////////////////////////////
}//eoc
}//eons