Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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);
        }