using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; 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 { //Returns existance status of object type and id specified in database internal static async Task ExistsAsync(AyaType aType, long id, AyContext ct) { //new up a context?? switch (aType) { //CoreBizObject add here case AyaType.NoType://no type always exists and this is used by orphaned attachments return true; case AyaType.FileAttachment: return await ct.FileAttachment.AnyAsync(z => z.Id == id); case AyaType.DataListSavedFilter: return await ct.DataListSavedFilter.AnyAsync(z => z.Id == id); case AyaType.FormCustom: return await ct.FormCustom.AnyAsync(z => z.Id == id); case AyaType.User: return await ct.User.AnyAsync(z => z.Id == id); case AyaType.Widget: return await ct.Widget.AnyAsync(z => z.Id == id); case AyaType.Customer: return await ct.Customer.AnyAsync(z => z.Id == id); case AyaType.CustomerNote: return await ct.CustomerNote.AnyAsync(z => z.Id == id); case AyaType.Contract: return await ct.Contract.AnyAsync(z => z.Id == id); case AyaType.HeadOffice: return await ct.HeadOffice.AnyAsync(z => z.Id == id); case AyaType.LoanUnit: return await ct.LoanUnit.AnyAsync(z => z.Id == id); case AyaType.Memo: return await ct.Memo.AnyAsync(z => z.Id == id); case AyaType.Part: return await ct.Part.AnyAsync(z => z.Id == id); case AyaType.PartWarehouse: return await ct.PartWarehouse.AnyAsync(z => z.Id == id); case AyaType.PartAssembly: return await ct.PartAssembly.AnyAsync(z => z.Id == id); case AyaType.PM: return await ct.PM.AnyAsync(z => z.Id == id); case AyaType.PMItem: return await ct.PMItem.AnyAsync(z => z.Id == id); case AyaType.PMTemplate: return await ct.PMTemplate.AnyAsync(z => z.Id == id); case AyaType.PMTemplateItem: return await ct.PMTemplateItem.AnyAsync(z => z.Id == id); case AyaType.Project: return await ct.Project.AnyAsync(z => z.Id == id); case AyaType.PurchaseOrder: return await ct.PurchaseOrder.AnyAsync(z => z.Id == id); case AyaType.Quote: return await ct.Quote.AnyAsync(z => z.Id == id); case AyaType.QuoteItem: return await ct.QuoteItem.AnyAsync(z => z.Id == id); case AyaType.QuoteTemplate: return await ct.QuoteTemplate.AnyAsync(z => z.Id == id); case AyaType.QuoteTemplateItem: return await ct.QuoteTemplateItem.AnyAsync(z => z.Id == id); case AyaType.Unit: return await ct.Unit.AnyAsync(z => z.Id == id); case AyaType.UnitModel: return await ct.UnitModel.AnyAsync(z => z.Id == id); case AyaType.Vendor: return await ct.Vendor.AnyAsync(z => z.Id == id); //--- WorkOrder case AyaType.WorkOrder: return await ct.WorkOrder.AnyAsync(z => z.Id == id); case AyaType.WorkOrderItem: return await ct.WorkOrderItem.AnyAsync(z => z.Id == id); case AyaType.WorkOrderItemExpense: return await ct.WorkOrderItemExpense.AnyAsync(z => z.Id == id); case AyaType.WorkOrderItemLabor: return await ct.WorkOrderItemLabor.AnyAsync(z => z.Id == id); case AyaType.WorkOrderItemLoan: return await ct.WorkOrderItemLoan.AnyAsync(z => z.Id == id); case AyaType.WorkOrderItemPart: return await ct.WorkOrderItemPart.AnyAsync(z => z.Id == id); case AyaType.WorkOrderItemPartRequest: return await ct.WorkOrderItemPartRequest.AnyAsync(z => z.Id == id); case AyaType.WorkOrderItemScheduledUser: return await ct.WorkOrderItemScheduledUser.AnyAsync(z => z.Id == id); case AyaType.WorkOrderItemTask: return await ct.WorkOrderItemTask.AnyAsync(z => z.Id == id); case AyaType.WorkOrderItemTravel: return await ct.WorkOrderItemTravel.AnyAsync(z => z.Id == id); case AyaType.WorkOrderItemUnit: return await ct.WorkOrderItemUnit.AnyAsync(z => z.Id == id); case AyaType.WorkOrderItemOutsideService: return await ct.WorkOrderItemOutsideService.AnyAsync(z => z.Id == id); //--- case AyaType.WorkOrderTemplate: return await ct.WorkOrderTemplate.AnyAsync(z => z.Id == id); case AyaType.WorkOrderTemplateItem: return await ct.WorkOrderTemplateItem.AnyAsync(z => z.Id == id); case AyaType.Report: return await ct.Report.AnyAsync(z => z.Id == id); case AyaType.Reminder: return await ct.Reminder.AnyAsync(z => z.Id == id); case AyaType.Review: return await ct.Review.AnyAsync(z => z.Id == id); case AyaType.ServiceRate: return await ct.ServiceRate.AnyAsync(z => z.Id == id); case AyaType.TravelRate: return await ct.TravelRate.AnyAsync(z => z.Id == id); case AyaType.TaxCode: return await ct.TaxCode.AnyAsync(z => z.Id == id); case AyaType.ServiceBank: return await ct.ServiceBank.AnyAsync(z => z.Id == id); case AyaType.CustomerServiceRequest: return await ct.CustomerServiceRequest.AnyAsync(z => z.Id == id); default: throw new System.NotSupportedException($"AyaNova.Biz.BizObjectExistsInDatabase::ExistsAsync type {aType.ToString()} is not supported"); } } ///////////////////////////////////////////////////////////////////// }//eoc }//eons