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.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); //--- PM 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.PMItemExpense: return await ct.PMItemExpense.AnyAsync(z => z.Id == id); case AyaType.PMItemLabor: return await ct.PMItemLabor.AnyAsync(z => z.Id == id); case AyaType.PMItemLoan: return await ct.PMItemLoan.AnyAsync(z => z.Id == id); case AyaType.PMItemPart: return await ct.PMItemPart.AnyAsync(z => z.Id == id); case AyaType.PMItemScheduledUser: return await ct.PMItemScheduledUser.AnyAsync(z => z.Id == id); case AyaType.PMItemTask: return await ct.PMItemTask.AnyAsync(z => z.Id == id); case AyaType.PMItemTravel: return await ct.PMItemTravel.AnyAsync(z => z.Id == id); case AyaType.PMItemUnit: return await ct.PMItemUnit.AnyAsync(z => z.Id == id); case AyaType.PMItemOutsideService: return await ct.PMItemOutsideService.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); //--- Quote 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.QuoteItemExpense: return await ct.QuoteItemExpense.AnyAsync(z => z.Id == id); case AyaType.QuoteItemLabor: return await ct.QuoteItemLabor.AnyAsync(z => z.Id == id); case AyaType.QuoteItemLoan: return await ct.QuoteItemLoan.AnyAsync(z => z.Id == id); case AyaType.QuoteItemPart: return await ct.QuoteItemPart.AnyAsync(z => z.Id == id); case AyaType.QuoteItemScheduledUser: return await ct.QuoteItemScheduledUser.AnyAsync(z => z.Id == id); case AyaType.QuoteItemTask: return await ct.QuoteItemTask.AnyAsync(z => z.Id == id); case AyaType.QuoteItemTravel: return await ct.QuoteItemTravel.AnyAsync(z => z.Id == id); case AyaType.QuoteItemUnit: return await ct.QuoteItemUnit.AnyAsync(z => z.Id == id); case AyaType.QuoteItemOutsideService: return await ct.QuoteItemOutsideService.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.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); case AyaType.CustomerNotifySubscription: return await ct.CustomerNotifySubscription.AnyAsync(z => z.Id == id); default: throw new System.NotSupportedException($"AyaNova.Biz.BizObjectExistsInDatabase::ExistsAsync type {aType.ToString()} is not supported"); } } ///////////////////////////////////////////////////////////////////// }//eoc }//eons