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); //--- 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); default: throw new System.NotSupportedException($"AyaNova.BLL.BizObjectFactory::GetBizObject type {ayaType.ToString()} is not supported"); } } ///////////////////////////////////////////////////////////////////// }//eoc }//eons