Files
ayanova7/source/bizobjects/AyaLib/GZTW.AyaNova.BLL/ListFactory.cs
2018-06-29 19:47:36 +00:00

284 lines
11 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
namespace GZTW.AyaNova.BLL
{
/// <summary>
/// Factory class for returning read only collection lists by key name
/// </summary>
public sealed class ListFactory
{
/// <summary>
/// Fetch a read only collection list
/// </summary>
/// <param name="key">Key name of collection (same as report name property in collection)</param>
/// <param name="filter">XML Criteria and Order by filter</param>
/// <param name="maxrecords">TOP number of records or -1 for all records</param>
/// <returns>Read only collection object</returns>
public static object GetList(string key, string filter, int maxrecords)
{
return GetList(key, filter, maxrecords, null);
}
/// <summary>
/// Fetch a read only collection list with optional list of id's
/// to return discrete items only
/// </summary>
/// <param name="key"></param>
/// <param name="filter"></param>
/// <param name="maxrecords"></param>
/// <param name="idlist">Generic List(GUID) of id's to return or null if not a factor</param>
/// <returns></returns>
public static object GetList(string key, string filter, int maxrecords, List<Guid> idlist )
{
//Lists all assume null idlist means all
//if called with a null or empty idlist should
//return all as normal so this ensures idlist
//is null if empty
if (idlist != null && idlist.Count == 0)
idlist = null;
switch (key)
{
#region client related
case "ClientList":
return ClientList.Get(filter, maxrecords, idlist);
case "ClientListDetailed":
return ClientListDetailed.Get(filter, maxrecords, idlist);
case "HeadOfficeList":
return HeadOfficeList.Get(filter, maxrecords, idlist);
case "HeadOfficeListDetailed":
return HeadOfficeListDetailed.Get(filter, maxrecords, idlist);
case "ContractList":
return ContractList.Get(filter, maxrecords, idlist);
case "ProjectList":
return ProjectList.Get(filter, maxrecords, idlist);
case "ClientServiceRequestList":
return ClientServiceRequestList.Get(filter, maxrecords, idlist);
#endregion client related
#region Service workorders
case "WorkorderServiceList":
return WorkorderServiceList.Get(filter, maxrecords, idlist);
case "WorkorderServiceDetailed":
return WorkorderServiceDetailedReportData.Get(filter, maxrecords, idlist);
case "WorkorderServiceItemList":
return WorkorderServiceItemList.Get(filter, maxrecords, idlist);
case "WorkorderServiceScheduledUserList":
return WorkorderServiceScheduledUserList.Get(filter, maxrecords, idlist);
case "WorkorderServicePartList":
return WorkorderServicePartList.Get(filter, maxrecords, idlist);
case "WorkorderServiceLaborList":
return WorkorderServiceLaborList.Get(filter, maxrecords, idlist);
case "WorkorderServiceTravelList":
return WorkorderServiceTravelList.Get(filter, maxrecords, idlist);
case "WorkorderServiceLoanList":
return WorkorderServiceLoanList.Get(filter, maxrecords, idlist);
case "WorkorderServiceExpenseList":
return WorkorderServiceExpenseList.Get(filter, maxrecords, idlist);
case "WorkorderServiceCustomList":
return WorkorderServiceCustomList.Get(filter, maxrecords, idlist);
case "TemplateServiceList":
return TemplateServiceList.Get(filter, maxrecords, idlist);
#endregion service workorders
#region Quotes
case "WorkorderQuoteList":
return WorkorderQuoteList.Get(filter, maxrecords, idlist);
case "WorkorderQuoteDetailed":
return WorkorderQuoteDetailedReportData.Get(filter, maxrecords, idlist);
case "WorkorderQuoteItemList":
return WorkorderQuoteItemList.Get(filter, maxrecords, idlist);
case "WorkorderQuoteScheduledUserList":
return WorkorderQuoteScheduledUserList.Get(filter, maxrecords, idlist);
case "WorkorderQuotePartList":
return WorkorderQuotePartList.Get(filter, maxrecords, idlist);
case "WorkorderQuoteLaborList":
return WorkorderQuoteLaborList.Get(filter, maxrecords, idlist);
case "WorkorderQuoteTravelList":
return WorkorderQuoteTravelList.Get(filter, maxrecords, idlist);
case "WorkorderQuoteCustomList":
return WorkorderQuoteCustomList.Get(filter, maxrecords, idlist);
case "TemplateQuoteList":
return TemplateQuoteList.Get(filter, maxrecords, idlist);
#endregion quotes
#region PM's
case "WorkorderPMList":
return WorkorderPMList.Get(filter, maxrecords, idlist);
case "WorkorderPMDetailed":
return WorkorderPMDetailedReportData.Get(filter, maxrecords, idlist);
case "WorkorderPMItemList":
return WorkorderPMItemList.Get(filter, maxrecords, idlist);
case "WorkorderPMScheduledUserList":
return WorkorderPMScheduledUserList.Get(filter, maxrecords, idlist);
case "WorkorderPMPartList":
return WorkorderPMPartList.Get(filter, maxrecords, idlist);
case "WorkorderPMLaborList":
return WorkorderPMLaborList.Get(filter, maxrecords, idlist);
case "WorkorderPMTravelList":
return WorkorderPMTravelList.Get(filter, maxrecords, idlist);
case "WorkorderPMCustomList":
return WorkorderPMCustomList.Get(filter, maxrecords, idlist);
case "TemplatePreventiveMaintenanceList":
return TemplatePreventiveMaintenanceList.Get(filter, maxrecords, idlist);
#endregion
#region Inventory related
case "PartList":
return PartList.Get(filter, maxrecords, idlist);
case "PurchaseOrderList":
return PurchaseOrderList.Get(filter, maxrecords, idlist);
case "PurchaseOrderListDetailed"://case 764
return PurchaseOrderListDetailed.Get(filter, maxrecords, idlist);
case "PurchaseOrderDetailed":
return PurchaseOrderDetailedReportData.Get(filter, maxrecords, idlist);
case "PurchaseOrderReceiptList":
return PurchaseOrderReceiptList.Get(filter, maxrecords, idlist);
case "PurchaseOrderReceiptListDetailed"://case 765
return PurchaseOrderReceiptListDetailed.Get(filter, maxrecords, idlist);
case "PartInventoryAdjustmentList":
return PartInventoryAdjustmentList.Get(filter, maxrecords, idlist);
case "PartInventoryAdjustmentListDetailed"://case 1394
return PartInventoryAdjustmentListDetailed.Get(filter, maxrecords, idlist);
case "PartInventoryAdjustmentDetailed"://case 1513
return PartInventoryAdjustmentDetailedReportData.Get(filter, maxrecords, idlist);
//
case "PartWarehouseInventoryList":
return PartWarehouseInventoryList.Get(filter, maxrecords, idlist);
case "WorkorderItemPartRequestList":
return WorkorderItemPartRequestList.Get(filter, maxrecords, idlist);
#endregion
#region Unit related
case "UnitList":
return UnitList.Get(filter, maxrecords, idlist);
case "UnitModelList":
return UnitModelList.Get(filter, maxrecords, idlist);
case "LoanItemList":
return LoanItemList.Get(filter, maxrecords, idlist);
#endregion
#region Vendor related
case "VendorList":
return VendorList.Get(filter, maxrecords, idlist);
case "VendorListDetailed":
return VendorListDetailed.Get(filter, maxrecords, idlist);
#endregion
#region Search related
case "SearchResultList":
return SearchResultList.Get(filter, maxrecords, idlist);
#endregion
#region User's lists
case "MemoList":
return MemoList.Get(filter, maxrecords, idlist);
//case 1967
case "ScheduleMarkerList":
return ScheduleMarkerList.Get(filter, maxrecords, idlist);
#endregion
#region Admin lists
case "UserList":
{
//case 1172 - only retrieve a list of the single lite user
//so that the user doesn't see all the possibly existing users from going from full to lite
//in the user grid list and also doesn't see the administrator user
if (AyaBizUtils.Lite)
{
if (idlist == null)
idlist = new List<Guid>();
else
idlist.Clear();
idlist.Add(User.LiteUserID);
}
return UserList.Get(filter, maxrecords, idlist);
}
case "ReportList":
return ReportList.Get(filter, maxrecords, idlist);
case "AyaFileList":
return AyaFileList.Get(filter, maxrecords, idlist);
//case 1967
case "ScheduleMarkerListAllUsers":
return ScheduleMarkerListAllUsers.Get(filter, maxrecords, idlist);
#endregion
default:
throw new ApplicationException("ListFactory - list: " + key + " Not recognized");
}
}
}
}