示例#1
0
        /// <summary>
        /// Method executes when a contentdirectory events a change in a container.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="NewValue"></param>
        private void Sink_OnContainerUpdateIDsChanged(CpContentDirectory sender, System.String NewValue)
        {
            string    csv_containers = NewValue;
            Hashtable cache          = new Hashtable();
            DText     parser         = new DText();
            DText     parser2        = new DText();

            parser.ATTRMARK  = ",";
            parser2.ATTRMARK = ",";

            if (csv_containers != "")
            {
                parser[0] = csv_containers;
                int dcnt = parser.DCOUNT();

                for (int i = 1; i <= dcnt; i++)
                {
                    string id, update;
                    if (Accumulator_ContainerUpdateIDs.Delimitor == ",")
                    {
                        id     = parser[i++];
                        update = parser[i];
                    }
                    else
                    {
                        string pair = parser[i];
                        parser2[0] = pair;
                        id         = parser2[1];
                        update     = parser2[2];
                    }

                    CpMediaContainer cpc = (CpMediaContainer)this.GetDescendent(id, cache);

                    if (cpc != null)
                    {
                        try
                        {
                            UInt32 updateId = UInt32.Parse(update);
                            if (updateId != cpc.UpdateID)
                            {
                                cpc.ForceUpdate(false);
                            }
                        }
                        catch
                        {
                            cpc.ForceUpdate(false);
                        }
                    }
                }
            }

            cache.Clear();
        }