This commit is contained in:
2020-06-05 19:06:31 +00:00
parent 611c19521a
commit 3111f7fdb7
2 changed files with 41 additions and 51 deletions

View File

@@ -261,7 +261,7 @@ namespace AyaNova.Api.Controllers
if (!badRequest) if (!badRequest)
{ {
//check if object exists //check if object exists
if (!await BizObjectExistsInDatabase.ExistsAsync(attachToObject)) if (!await BizObjectExistsInDatabase.ExistsAsync(attachToObject, ct))
{ {
badRequest = true; badRequest = true;
errorMessage = "Invalid attach object"; errorMessage = "Invalid attach object";

View File

@@ -1,6 +1,5 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using AyaNova.Util;
using AyaNova.Models; using AyaNova.Models;
@@ -13,102 +12,93 @@ namespace AyaNova.Biz
internal static class BizObjectExistsInDatabase 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 //Returns existance status of object type and id specified in database
internal static async Task<bool> ExistsAsync(AyaType ayaType, long id, AyContext ct = null) internal static async Task<bool> ExistsAsync(AyaTypeId tid, AyContext ct)
{ {
//new up a context?? //new up a context??
if (ct == null)
{ switch (tid.ObjectType)
ct = ServiceProviderProvider.DBContext;
}
switch (ayaType)
{ {
//CoreBizObject add here //CoreBizObject add here
case AyaType.FileAttachment: case AyaType.FileAttachment:
return await ct.FileAttachment.AnyAsync(z => z.Id == id); return await ct.FileAttachment.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.DataListView: case AyaType.DataListView:
return await ct.DataListView.AnyAsync(z => z.Id == id); return await ct.DataListView.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.FormCustom: case AyaType.FormCustom:
return await ct.FormCustom.AnyAsync(z => z.Id == id); return await ct.FormCustom.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.User: case AyaType.User:
return await ct.User.AnyAsync(z => z.Id == id); return await ct.User.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.Widget: case AyaType.Widget:
return await ct.Widget.AnyAsync(z => z.Id == id); return await ct.Widget.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.Customer: case AyaType.Customer:
return await ct.Customer.AnyAsync(z => z.Id == id); return await ct.Customer.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.Contract: case AyaType.Contract:
return await ct.Contract.AnyAsync(z => z.Id == id); return await ct.Contract.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.HeadOffice: case AyaType.HeadOffice:
return await ct.HeadOffice.AnyAsync(z => z.Id == id); return await ct.HeadOffice.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.LoanUnit: case AyaType.LoanUnit:
return await ct.LoanUnit.AnyAsync(z => z.Id == id); return await ct.LoanUnit.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.Part: case AyaType.Part:
return await ct.Part.AnyAsync(z => z.Id == id); return await ct.Part.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.PM: case AyaType.PM:
return await ct.PM.AnyAsync(z => z.Id == id); return await ct.PM.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.PMItem: case AyaType.PMItem:
return await ct.PMItem.AnyAsync(z => z.Id == id); return await ct.PMItem.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.PMTemplate: case AyaType.PMTemplate:
return await ct.PMTemplate.AnyAsync(z => z.Id == id); return await ct.PMTemplate.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.PMTemplateItem: case AyaType.PMTemplateItem:
return await ct.PMTemplateItem.AnyAsync(z => z.Id == id); return await ct.PMTemplateItem.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.Project: case AyaType.Project:
return await ct.Project.AnyAsync(z => z.Id == id); return await ct.Project.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.PurchaseOrder: case AyaType.PurchaseOrder:
return await ct.PurchaseOrder.AnyAsync(z => z.Id == id); return await ct.PurchaseOrder.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.Quote: case AyaType.Quote:
return await ct.Quote.AnyAsync(z => z.Id == id); return await ct.Quote.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.QuoteItem: case AyaType.QuoteItem:
return await ct.QuoteItem.AnyAsync(z => z.Id == id); return await ct.QuoteItem.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.QuoteTemplate: case AyaType.QuoteTemplate:
return await ct.QuoteTemplate.AnyAsync(z => z.Id == id); return await ct.QuoteTemplate.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.QuoteTemplateItem: case AyaType.QuoteTemplateItem:
return await ct.QuoteTemplateItem.AnyAsync(z => z.Id == id); return await ct.QuoteTemplateItem.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.Unit: case AyaType.Unit:
return await ct.Unit.AnyAsync(z => z.Id == id); return await ct.Unit.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.UnitModel: case AyaType.UnitModel:
return await ct.UnitModel.AnyAsync(z => z.Id == id); return await ct.UnitModel.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.Vendor: case AyaType.Vendor:
return await ct.Vendor.AnyAsync(z => z.Id == id); return await ct.Vendor.AnyAsync(z => z.Id == tid.ObjectId);
//--- WorkOrder //--- WorkOrder
case AyaType.WorkOrder: case AyaType.WorkOrder:
return await ct.WorkOrder.AnyAsync(z => z.Id == id); return await ct.WorkOrder.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.WorkOrderItem: case AyaType.WorkOrderItem:
return await ct.WorkOrderItem.AnyAsync(z => z.Id == id); return await ct.WorkOrderItem.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.WorkOrderItemExpense: case AyaType.WorkOrderItemExpense:
return await ct.WorkOrderItemExpense.AnyAsync(z => z.Id == id); return await ct.WorkOrderItemExpense.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.WorkOrderItemLabor: case AyaType.WorkOrderItemLabor:
return await ct.WorkOrderItemLabor.AnyAsync(z => z.Id == id); return await ct.WorkOrderItemLabor.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.WorkOrderItemLoan: case AyaType.WorkOrderItemLoan:
return await ct.WorkOrderItemLoan.AnyAsync(z => z.Id == id); return await ct.WorkOrderItemLoan.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.WorkOrderItemPart: case AyaType.WorkOrderItemPart:
return await ct.WorkOrderItemPart.AnyAsync(z => z.Id == id); return await ct.WorkOrderItemPart.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.WorkOrderItemPartRequest: case AyaType.WorkOrderItemPartRequest:
return await ct.WorkOrderItemPartRequest.AnyAsync(z => z.Id == id); return await ct.WorkOrderItemPartRequest.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.WorkOrderItemScheduledUser: case AyaType.WorkOrderItemScheduledUser:
return await ct.WorkOrderItemScheduledUser.AnyAsync(z => z.Id == id); return await ct.WorkOrderItemScheduledUser.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.WorkOrderItemTask: case AyaType.WorkOrderItemTask:
return await ct.WorkOrderItemTask.AnyAsync(z => z.Id == id); return await ct.WorkOrderItemTask.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.WorkOrderItemTravel: case AyaType.WorkOrderItemTravel:
return await ct.WorkOrderItemTravel.AnyAsync(z => z.Id == id); return await ct.WorkOrderItemTravel.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.WorkOrderItemUnit: case AyaType.WorkOrderItemUnit:
return await ct.WorkOrderItemUnit.AnyAsync(z => z.Id == id); return await ct.WorkOrderItemUnit.AnyAsync(z => z.Id == tid.ObjectId);
//--- //---
case AyaType.WorkOrderTemplate: case AyaType.WorkOrderTemplate:
return await ct.WorkOrderTemplate.AnyAsync(z => z.Id == id); return await ct.WorkOrderTemplate.AnyAsync(z => z.Id == tid.ObjectId);
case AyaType.WorkOrderTemplateItem: case AyaType.WorkOrderTemplateItem:
return await ct.WorkOrderTemplateItem.AnyAsync(z => z.Id == id); return await ct.WorkOrderTemplateItem.AnyAsync(z => z.Id == tid.ObjectId);
default: default:
throw new System.NotSupportedException($"AyaNova.Biz.BizObjectExistsInDatabase::ExistsAsync type {ayaType.ToString()} is not supported"); throw new System.NotSupportedException($"AyaNova.Biz.BizObjectExistsInDatabase::ExistsAsync type {tid.ObjectType.ToString()} is not supported");
} }
} }