Files
raven/server/AyaNova/biz/BizObjectFactory.cs
2021-07-13 17:55:36 +00:00

138 lines
6.2 KiB
C#

using AyaNova.Util;
using AyaNova.Models;
namespace AyaNova.Biz
{
internal static class BizObjectFactory
{
//Returns the biz object class that corresponds to the type presented
//Used by SEARCH, REPORTING and objects with JOBS
internal static BizObject GetBizObject(AyaType ayaType,
AyContext ct,
long userId = 1,
AuthorizationRoles roles = AuthorizationRoles.All,
long translationId = 0)
{
if (translationId == 0)
translationId = ServerBootConfig.AYANOVA_DEFAULT_TRANSLATION_ID;
switch (ayaType)
{
//CoreBizObject add here
case AyaType.ServerJob:
return new JobOperationsBiz(ct, userId, roles);
case AyaType.TrialSeeder:
return new TrialBiz(ct, userId, roles);
case AyaType.Translation:
return new TranslationBiz(ct, userId, translationId, roles);
case AyaType.DataListSavedFilter:
return new DataListSavedFilterBiz(ct, userId, translationId, roles);
case AyaType.FormCustom:
return new FormCustomBiz(ct, userId, translationId, roles);
case AyaType.Widget:
return new WidgetBiz(ct, userId, translationId, roles);
case AyaType.FileAttachment:
return new AttachmentBiz(ct, userId, roles);
case AyaType.Customer:
return new CustomerBiz(ct, userId, translationId, roles);
case AyaType.CustomerNote:
return new CustomerNoteBiz(ct, userId, translationId, roles);
case AyaType.User:
return new UserBiz(ct, userId, translationId, roles);
case AyaType.Memo:
return new MemoBiz(ct, userId, translationId, roles);
case AyaType.Contract:
return new ContractBiz(ct, userId, translationId, roles);
case AyaType.HeadOffice:
return new HeadOfficeBiz(ct, userId, translationId, roles);
case AyaType.LoanUnit:
return new LoanUnitBiz(ct, userId, translationId, roles);
case AyaType.Part:
return new PartBiz(ct, userId, translationId, roles);
case AyaType.PartWarehouse:
return new PartWarehouseBiz(ct, userId, translationId, roles);
case AyaType.PartAssembly:
return new PartAssemblyBiz(ct, userId, translationId, roles);
case AyaType.PartInventory:
return new PartInventoryBiz(ct, userId, translationId, roles);
case AyaType.PM:
return new PMBiz(ct, userId, translationId, roles);
case AyaType.PMTemplate:
return new PMTemplateBiz(ct, userId, translationId, roles);
case AyaType.Project:
return new ProjectBiz(ct, userId, translationId, roles);
case AyaType.PurchaseOrder:
return new PurchaseOrderBiz(ct, userId, translationId, roles);
case AyaType.Quote:
return new QuoteBiz(ct, userId, translationId, roles);
case AyaType.QuoteTemplate:
return new QuoteTemplateBiz(ct, userId, translationId, roles);
case AyaType.Unit:
return new UnitBiz(ct, userId, translationId, roles);
case AyaType.UnitModel:
return new UnitModelBiz(ct, userId, translationId, roles);
case AyaType.Vendor:
return new VendorBiz(ct, userId, translationId, roles);
//--- WorkOrder
case AyaType.WorkOrder:
case AyaType.WorkOrderItem:
case AyaType.WorkOrderItemExpense:
case AyaType.WorkOrderItemLabor:
case AyaType.WorkOrderItemLoan:
case AyaType.WorkOrderItemPart:
case AyaType.WorkOrderItemPartRequest:
case AyaType.WorkOrderItemScheduledUser:
case AyaType.WorkOrderItemTask:
case AyaType.WorkOrderItemTravel:
case AyaType.WorkOrderItemUnit:
case AyaType.WorkOrderItemOutsideService:
return new WorkOrderBiz(ct, userId, translationId, roles, UserType.NotService);//default to not service for now arbitrarily on the principle of least access
//---
case AyaType.WorkOrderTemplate:
return new WorkOrderTemplateBiz(ct, userId, translationId, roles);
case AyaType.Reminder:
return new ReminderBiz(ct, userId, translationId, roles);
case AyaType.Review:
return new ReviewBiz(ct, userId, translationId, roles);
case AyaType.ServiceRate:
return new ServiceRateBiz(ct, userId, translationId, roles);
case AyaType.TravelRate:
return new TravelRateBiz(ct, userId, translationId, roles);
case AyaType.TaxCode:
return new TaxCodeBiz(ct, userId, translationId, roles);
// case AyaType.ServiceBank:
// return new ServiceBankBiz(ct, userId, translationId, roles);
case AyaType.CustomerServiceRequest:
return new CustomerServiceRequestBiz(ct, userId, translationId, roles);
case AyaType.TaskGroup:
return new TaskGroupBiz(ct, userId, translationId, roles);
default:
throw new System.NotSupportedException($"AyaNova.BLL.BizObjectFactory::GetBizObject type {ayaType.ToString()} is not supported");
}
}
/////////////////////////////////////////////////////////////////////
}//eoc
}//eons