Files
raven/server/AyaNova/PickList/PickListFactory.cs
2021-07-22 23:51:01 +00:00

112 lines
4.5 KiB
C#

using System.Collections.Generic;
using AyaNova.Biz;
using AyaNova.Models;
namespace AyaNova.PickList
{
internal static class PickListFactory
{
//Instantiate list object specified from type
internal static IAyaPickList GetAyaPickList(AyaType ayaType)
{
switch (ayaType)
{
//CoreBizObject add here if it will be "picked" on any other form
case AyaType.Contract:
return new ContractPickList() as IAyaPickList;
case AyaType.Customer:
return new CustomerPickList() as IAyaPickList;
case AyaType.HeadOffice:
return new HeadOfficePickList() as IAyaPickList;
// case AyaType.Widget:
// return new WidgetPickList() as IAyaPickList;
case AyaType.User:
return new UserPickList() as IAyaPickList;
case AyaType.Vendor:
return new VendorPickList() as IAyaPickList;
case AyaType.Part:
return new PartPickList() as IAyaPickList;
case AyaType.PartWarehouse:
return new PartWarehousePickList() as IAyaPickList;
case AyaType.PartAssembly:
return new PartAssemblyPickList() as IAyaPickList;
case AyaType.Project:
return new ProjectPickList() as IAyaPickList;
case AyaType.ServiceRate:
return new ServiceRatePickList() as IAyaPickList;
case AyaType.TaxCode:
return new TaxCodePickList() as IAyaPickList;
case AyaType.TravelRate:
return new TravelRatePickList() as IAyaPickList;
case AyaType.UnitModel:
return new UnitModelPickList() as IAyaPickList;
case AyaType.Unit:
return new UnitPickList() as IAyaPickList;
case AyaType.LoanUnit:
return new LoanUnitPickList() as IAyaPickList;
case AyaType.WorkOrderTemplate:
return new WorkOrderTemplatePickList() as IAyaPickList;
case AyaType.TaskGroup:
return new TaskGroupPickList() as IAyaPickList;
case AyaType.Report:
return new ReportPickList() as IAyaPickList;
//@##### WARNING: BE SURE TO ADD NEW TYPES BELOW OR USERS WON"T BE ABLE TO EDIT THE TEMPLATE FOR THEM
default:
throw new System.NotImplementedException($"PICKLIST {ayaType} NOT IMPLEMENTED");
}
//return null;
}
//List all the PickList-able object types available
internal static List<NameIdItem> GetListOfAllPickListTypes(long TranslationId)
{
List<string> TranslationKeysToFetch = new List<string>();
List<NameIdItem> ret = new List<NameIdItem>();
List<AyaType> values = new List<AyaType>();
values.Add(AyaType.Contract);
values.Add(AyaType.Customer);
values.Add(AyaType.HeadOffice);
values.Add(AyaType.LoanUnit);
values.Add(AyaType.Part);
values.Add(AyaType.PartWarehouse);
values.Add(AyaType.PartAssembly);
values.Add(AyaType.Project);
values.Add(AyaType.Report);
values.Add(AyaType.ServiceRate);
values.Add(AyaType.TaskGroup);
values.Add(AyaType.TaxCode);
values.Add(AyaType.TravelRate);
values.Add(AyaType.Unit);
values.Add(AyaType.UnitModel);
values.Add(AyaType.User);
values.Add(AyaType.Vendor);
values.Add(AyaType.WorkOrderTemplate);
//### NEW ONES HERE
foreach (AyaType t in values)
{
// if (t.HasAttribute(typeof(CoreBizObjectAttribute)))
// {
var name = t.ToString();
TranslationKeysToFetch.Add(name);
ret.Add(new NameIdItem() { Name = name, Id = (long)t });
// }
}
var LT = TranslationBiz.GetSubsetStaticAsync(TranslationKeysToFetch, TranslationId).Result;
foreach (NameIdItem i in ret)
{
i.Name = LT[i.Name];
}
return ret;
}
}//eoc
}//eons