public virtual void updateClassifications() { PXResultset <KNSIKCClassification> existingClassifications = Classifications.Select(); List <string> existingNames = new List <string>(); List <string> newNames = new List <string>(); KCSiteMaster connection = Connection.SelectSingle(); KCARestClient client = new KCARestClient(connection); KCInventoryItemAPIHelper helper = new KCInventoryItemAPIHelper(client); FillClassificationsFromCA(helper, newNames); existingClassifications.RowCast <KNSIKCClassification>().ForEach(x => existingNames.Add(x.ClassificationName)); foreach (string newName in newNames) { if (!existingNames.Contains(newName)) { Classifications.Insert(new KNSIKCClassification() { ClassificationName = newName }); } } foreach (string existingName in existingNames) { if (!newNames.Contains(existingName)) { KNSIKCClassification item = Classifications.Select().RowCast <KNSIKCClassification>().Where(x => x.ClassificationName.Equals(existingName)).FirstOrDefault(); Classifications.Delete(item); IEnumerable deletedMapping = ClassificationMapping.Select().RowCast <KNSIKCClassificationsMapping>().Where(x => x.ClassificationID == item.ClassificationID); deletedMapping.RowCast <KNSIKCClassificationsMapping>().ForEach(x => { CleanClassificationMapping(ref x); ClassificationMapping.Update(x); }); } } Actions.PressSave(); }
public List <string> GetClassificationAttributes(KCInventoryItemAPIHelper helper) { List <KNSIKCClassificationsMapping> classificationsMapping = GetMappedClassifications(); List <string> classificationsAttributes = new List <string>(); APIResultOfArrayOfClassificationConfigurationInformation classifications = helper.GetClassifications(); List <ClassificationConfigurationInformationAttribute[]> attributeArrays = new List <ClassificationConfigurationInformationAttribute[]>(); if (classifications.ResultData == null) { throw new PXException(KCMessages.NoClassificationsFound); } foreach (ClassificationConfigurationInformation classification in classifications.ResultData) { KNSIKCClassification savedClassification = Classifications.Select().RowCast <KNSIKCClassification>().Where(x => x.ClassificationName.Equals(classification.Name)).FirstOrDefault(); foreach (KNSIKCClassificationsMapping mapping in classificationsMapping) { if (savedClassification != null && mapping.IsMapped == true && mapping.ClassificationID == savedClassification.ClassificationID) { attributeArrays.Add(classification.ClassificationConfigurationInformationAttributeArray); } } } foreach (ClassificationConfigurationInformationAttribute[] attributeArray in attributeArrays) { if (attributeArray != null && attributeArray.Count() > 0) { foreach (ClassificationConfigurationInformationAttribute attribute in attributeArray) { classificationsAttributes.Add(attribute.Name.Trim().ToUpper()); } } } return(classificationsAttributes); }