private static void CBOMV2ConfiguratorData2Model(List <CBOMV2Model.CBOMV2Category> categoryRecords, ConfiguratorRecord currentNode) { List <CBOMV2Model.CBOMV2Category> subRecords = (from q in categoryRecords where q.ParentHieId == currentNode.CBOMV2HieID orderby q.SeqNo, q.CategoryName select q).ToList(); if (subRecords.Count == 0) { return; } foreach (CBOMV2Model.CBOMV2Category subRecord in subRecords) { ConfiguratorRecord subModel = new ConfiguratorRecord(subRecord.Id, subRecord.CategoryName, subRecord.CategoryDesc, subRecord.SeqNo, subRecord.CategoryType, subRecord.Qty, 1, Convert.ToBoolean(subRecord.isDefault), Convert.ToBoolean(subRecord.isRequired), Convert.ToBoolean(subRecord.isExpand), Convert.ToBoolean(subRecord.isLooseItem), subRecord.HieId); currentNode.Children.Add(subModel); CBOMV2ConfiguratorData2Model(categoryRecords, subModel); } }
public static ConfiguratorModel GetCBOMV1ConfiguratorModel(string rootId, string salesOrg, string cbomOrg) { // 1. Get all records include Root, categories, components from DB List <CBOMV1Model.CBOMV1Category> categoryRecords = CBOMV1Model.GetCBOMV1CategoryRecords(rootId, salesOrg, cbomOrg); categoryRecords.RemoveAll(item => (item.CategoryType == CategoryType.Component || item.CategoryType == CategoryType.SharedComponent) && !isPartOrdereable(item.CategoryName, salesOrg)); CBOMV1Model.CBOMV1Category rootRecord = (from q in categoryRecords where q.Id == rootId select q).ToList().FirstOrDefault(); // 2. Convert DB records to ConfiguratorRecord which contains whole tree structure ConfiguratorRecord rootNode = new ConfiguratorRecord(rootRecord.Id, rootRecord.CategoryName, rootRecord.CategoryDesc, 0, CategoryType.Root, 1, 1, true, false, true, false, ""); CBOMV1Category2Model(categoryRecords, rootNode); // 3. Add rootNode to standard ViewModel ConfiguratorModel ConfiguratorModel rootModel = new ConfiguratorModel(salesOrg, cbomOrg, 1, "", "", rootNode); return(rootModel); }
public ConfiguratorModel(string salesOrg, string cbomOrg, int version, string companyId, string currency, ConfiguratorRecord rootNode) { this.SalesOrg = salesOrg; this.CBOMOrg = cbomOrg; this.Version = version; this.CompanyID = companyId; this.Currency = currency; this.RootNode = rootNode; }