Files
raven/server/AyaNova/biz/BizObjectExistsInDatabase.cs

107 lines
4.4 KiB
C#

using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using AyaNova.Util;
using AyaNova.Models;
namespace AyaNova.Biz
{
//THIS IS USED BY THE ATTACHMENT CONTROLLER
//IN THEORY WE ONLY NEED TO CHECK FOR ATTACHABLE TYPES, BUT I CAN SEE IT'S POTENTIAL USEFULNESS DOWN THE ROAD FOR OTHER THINGS
internal static class BizObjectExistsInDatabase
{
//THIS IS THE METHOD CALLED BY THE ATTACHMENT CONTROLLER
internal static async Task<bool> ExistsAsync(AyaTypeId tid)
{
return await ExistsAsync(tid.ObjectType, tid.ObjectId);
}
//Returns existance status of object type and id specified in database
internal static async Task<bool> ExistsAsync(AyaType aytype, long id, AyContext ct = null)
{
//new up a context??
if (ct == null)
{
ct = ServiceProviderProvider.DBContext;
}
switch (aytype)
{
//CoreBizObject add here
case AyaType.FileAttachment:
return await ct.FileAttachment.AnyAsync(m => m.Id == id);
case AyaType.DataListView:
return await ct.DataListView.AnyAsync(m => m.Id == id);
case AyaType.FormCustom:
return await ct.FormCustom.AnyAsync(m => m.Id == id);
case AyaType.User:
return await ct.User.AnyAsync(m => m.Id == id);
case AyaType.Widget:
return await ct.Widget.AnyAsync(m => m.Id == id);
case AyaType.Customer:
return await ct.Customer.AnyAsync(m => m.Id == id);
case AyaType.Contract:
return await ct.Contract.AnyAsync(m => m.Id == id);
case AyaType.HeadOffice:
return await ct.HeadOffice.AnyAsync(m => m.Id == id);
case AyaType.LoanUnit:
return await ct.LoanUnit.AnyAsync(m => m.Id == id);
case AyaType.Part:
return await ct.Part.AnyAsync(m => m.Id == id);
case AyaType.PM:
return await ct.PM.AnyAsync(m => m.Id == id);
case AyaType.PMItem:
return await ct.PMItem.AnyAsync(m => m.Id == id);
case AyaType.PMTemplate:
return await ct.PMTemplate.AnyAsync(m => m.Id == id);
case AyaType.PMTemplateItem:
return await ct.PMTemplateItem.AnyAsync(m => m.Id == id);
case AyaType.Project:
return await ct.Project.AnyAsync(m => m.Id == id);
case AyaType.PurchaseOrder:
return await ct.PurchaseOrder.AnyAsync(m => m.Id == id);
case AyaType.Quote:
return await ct.Quote.AnyAsync(m => m.Id == id);
case AyaType.QuoteItem:
return await ct.QuoteItem.AnyAsync(m => m.Id == id);
case AyaType.QuoteTemplate:
return await ct.QuoteTemplate.AnyAsync(m => m.Id == id);
case AyaType.QuoteTemplateItem:
return await ct.QuoteTemplateItem.AnyAsync(m => m.Id == id);
case AyaType.Unit:
return await ct.Unit.AnyAsync(m => m.Id == id);
case AyaType.UnitModel:
return await ct.UnitModel.AnyAsync(m => m.Id == id);
case AyaType.Vendor:
return await ct.Vendor.AnyAsync(m => m.Id == id);
case AyaType.WorkOrder:
return await ct.WorkOrder.AnyAsync(m => m.Id == id);
case AyaType.WorkOrderItem:
return await ct.WorkOrderItem.AnyAsync(m => m.Id == id);
case AyaType.WorkOrderTemplate:
return await ct.WorkOrderTemplate.AnyAsync(m => m.Id == id);
case AyaType.WorkOrderTemplateItem:
return await ct.WorkOrderTemplateItem.AnyAsync(m => m.Id == id);
default:
throw new System.NotSupportedException($"AyaNova.Biz.BizObjectExistsInDatabase::ExistsAsync type {aytype.ToString()} is not supported");
}
}
/////////////////////////////////////////////////////////////////////
}//eoc
}//eons