Exemple #1
0
        public static void SetAttribute(this WonkaProduct poTargetProduct, WonkaRefAttr poTargetAttr, string psTargetValue)
        {
            if (poTargetProduct.GetProductGroup(poTargetAttr.GroupId).GetRowCount() <= 0)
            {
                poTargetProduct.GetProductGroup(poTargetAttr.GroupId).AppendRow();
            }

            poTargetProduct.GetProductGroup(poTargetAttr.GroupId)[0][poTargetAttr.AttrId] = psTargetValue;
        }
Exemple #2
0
        public WonkaProductEnumerator(WonkaProduct poProduct)
        {
            if (poProduct == null)
            {
                throw new Exception("ERROR!  Product provided is null.");
            }

            moProduct = poProduct;
            moGrpEnum = moProduct.ProductGroups.GetEnumerator();
        }
Exemple #3
0
        public static bool SetAttribute(this WonkaProduct poTargetProduct, WonkaRefAttr poTargetAttr, string psTargetValue)
        {
            bool bSuccess = true;

            if (poTargetProduct.GetProductGroup(poTargetAttr.GroupId).GetRowCount() <= 0)
            {
                poTargetProduct.GetProductGroup(poTargetAttr.GroupId).AppendRow();
            }

            poTargetProduct.GetProductGroup(poTargetAttr.GroupId)[0][poTargetAttr.AttrId] = psTargetValue;

            return(bSuccess);
        }
Exemple #4
0
        public static string GetAttributeValue(this WonkaProduct poTargetProduct, WonkaRefAttr poTargetAttr)
        {
            string sAttrValue = "";

            if (poTargetProduct.HasProductGroup(poTargetAttr.GroupId))
            {
                if (poTargetProduct.GetProductGroup(poTargetAttr.GroupId)[0].ContainsKey(poTargetAttr.AttrId))
                {
                    sAttrValue = poTargetProduct.GetProductGroup(poTargetAttr.GroupId)[0][poTargetAttr.AttrId];
                }
            }

            return(sAttrValue);
        }
Exemple #5
0
        /// <summary>
        ///
        /// This method will update all contents of this Product with those of the provided one.
        ///
        /// <param name="poThatProduct">The Product from which we will copy our sought data</param>
        /// <param name="pbMergeFlag">Indicator of whether the provided data should completely overlay or merge with the contents of this Product</param>
        /// <returns>None</returns>
        /// </summary>
        public void Update(WonkaProduct ThatProduct, bool pbMergeFlag = true)
        {
            if (pbMergeFlag)
            {
                foreach (WonkaPrdGroup ThatPrdGroup in ThatProduct)
                {
                    this.Update(ThatPrdGroup, pbMergeFlag);
                }

                var iThatProductField = ThatProduct.ProductFieldIndex.GetEnumerator();
                while (iThatProductField.MoveNext())
                {
                    WonkaProductField ThatProductField = iThatProductField.Current.Value;

                    if (this.ProductFieldIndex.Keys.Contains(ThatProductField.FieldId))
                    {
                        this.ProductFieldIndex[ThatProductField.FieldId] = ThatProductField;
                    }
                }
            }
            else
            {
                ClearData();

                foreach (WonkaPrdGroup ThatPrdGroup in ThatProduct)
                {
                    this.Update(ThatPrdGroup, pbMergeFlag);
                }

                ClearFields();

                this.ProductFieldIndex = ThatProduct.ProductFieldIndex;
            }

            ClearErrors();
            this.ProductErrors = ThatProduct.ProductErrors;

            this.ResequenceGroups = ThatProduct.ResequenceGroups;

            this.IsAppendFasttrackEnabled = ThatProduct.IsAppendFasttrackEnabled;
            this.IsBatch = ThatProduct.IsBatch;
            this.IsGroupAppendEnabled  = ThatProduct.IsGroupAppendEnabled;
            this.IsGroupReplaceEnabled = ThatProduct.IsGroupReplaceEnabled;
            this.ProductId             = ThatProduct.ProductId;

            this.OwnerSourceIds = ThatProduct.OwnerSourceIds;
            this.TransactionId  = ThatProduct.TransactionId;
        }
Exemple #6
0
        /// <summary>
        ///
        /// This method will iterate through a list of Products and nullify (i.e., assign an empty value)
        /// every Attribute indicated in the TargetAttributes list.
        ///
        /// NOTE: This method will nullify Attributes only for the first DataRow of the Group.
        ///
        /// <param name="poProducts">The product list that we are iterating through</param>
        /// <param name="poTargetAttributes">The Attributes that we intend to nullify</param>
        /// <returns>None</returns>
        /// </summary>
        public static void Nullify(List <WonkaProduct> poProducts, HashSet <int> poTargetAttributes)
        {
            string sNullifyValue = "";

            Dictionary <int, string> ApplyValues = new Dictionary <int, string>();

            foreach (int nTempAttrId in poTargetAttributes)
            {
                ApplyValues[nTempAttrId] = sNullifyValue;
            }

            foreach (WonkaProduct TempProduct in poProducts)
            {
                WonkaProduct.PopulateProduct(TempProduct, ApplyValues);
            }
        }
Exemple #7
0
        /// <summary>
        ///
        /// This method will assign the Attribute values for a new DataRow
        /// created for their respective Group.
        ///
        /// <param name="poProduct">The Product that we are assigning these Attribute values</param>
        /// <param name="poAttrValues">The Attribute values that we are going to set inside the provided Product</param>
        /// <returns>None</returns>
        /// </summary>
        public static void PopulateProductGroup(WonkaProduct poProduct, int pnGroupId, Dictionary <int, string> poAttrValues)
        {
            WonkaPrdGroup        TempPrdGroup = poProduct.ProductGroups[pnGroupId];
            WonkaPrdGroupDataRow TempDataRow  = TempPrdGroup.AppendRow();

            var iAttrValueEnum = poAttrValues.GetEnumerator();

            while (iAttrValueEnum.MoveNext())
            {
                int    nAttrId    = iAttrValueEnum.Current.Key;
                string sAttrValue = iAttrValueEnum.Current.Value;

                WonkaRefAttr TempAttribute = WonkaRefEnvironment.GetInstance().GetAttributeByAttrId(nAttrId);

                if (TempAttribute.GroupId != pnGroupId)
                {
                    continue;
                }

                TempDataRow.SetData(nAttrId, sAttrValue);
            }
        }
Exemple #8
0
        /// <summary>
        ///
        /// This method will assign the Attribute values specifically to the first DataRow
        /// of their respective Group.
        ///
        /// NOTE: This method will nullify Attributes only for the first DataRow of the Group.
        ///
        /// <param name="poProduct">The Product that we are assigning these Attribute values</param>
        /// <param name="poAttrValues">The Attribute values that we are going to set inside the provided Product</param>
        /// <returns>None</returns>
        /// </summary>
        public static void PopulateProduct(WonkaProduct poProduct, Dictionary <int, string> poAttrValues)
        {
            var iAttrValueEnum = poAttrValues.GetEnumerator();

            while (iAttrValueEnum.MoveNext())
            {
                int    nAttrId    = iAttrValueEnum.Current.Key;
                string sAttrValue = iAttrValueEnum.Current.Value;

                WonkaRefAttr  TempAttribute = WonkaRefEnvironment.GetInstance().GetAttributeByAttrId(nAttrId);
                WonkaPrdGroup TempPrdGroup  = poProduct.ProductGroups[TempAttribute.GroupId];

                if (TempPrdGroup.GetRowCount() <= 0)
                {
                    TempPrdGroup.AppendRow();
                }

                WonkaPrdGroupDataRow GrpDataRow = TempPrdGroup.GetRow(0);

                GrpDataRow.SetData(nAttrId, sAttrValue);
            }
        }
Exemple #9
0
 public WonkaProduct(WonkaProduct poThatProduct) : this()
 {
     Update(poThatProduct);
 }