Beispiel #1
0
        /// <summary>
        /// Deserializes stored data
        /// </summary>
        /// <param name="doInParaller">if set to <c>true</c> [do in paraller].</param>
        /// <returns></returns>
        protected Dictionary <String, T> GetDataItems(Boolean doInParaller = true)
        {
            aceConcurrentBag <instanceItemContainer <T> > bag = new aceConcurrentBag <instanceItemContainer <T> >();
            Dictionary <String, T> output = new Dictionary <String, T>();

            if (doInParaller)
            {
                Parallel.ForEach(bagContent, (i) =>
                {
                    bag.Add(GetItem(i));
                });
            }
            else
            {
                foreach (var i in bagContent)
                {
                    bag.Add(GetItem(i));
                }
            }

            foreach (var i in bag)
            {
                output.Add(i.id, i.instance);
                if (i.instance is IDataPackageItem)
                {
                    IDataPackageItem item_IDataPackageItem = (IDataPackageItem)i.instance;
                    item_IDataPackageItem.OnLoaded();
                }
            }

            return(output);
        }
Beispiel #2
0
#pragma warning disable CS1574 // XML comment has cref attribute 'content' that could not be resolved
        /// <summary>
        /// Serializes and stores an item into <see cref="content"/> collection. , before serialization it calls <see cref="IDataPackageItem.OnBeforeSave"/>
        /// </summary>
        /// <param name="wrapper">The wrapper to use for <see cref="dataItemContainer.id"/> and <see cref="dataItemContainer.instanceXml"/> creation</param>
        /// <param name="xmlSer">The XML serializer to use instead of its own.</param>
        /// <remarks>Makes the container using <see cref="GetInstanceToPack(TWrapper)"/> and <see cref="GetDataPackageID(TWrapper)"/>. Calls <see cref="IDataPackageItem.OnBeforeSave"/> between these two.</remarks>
        /// <returns></returns>
        protected virtual dataItemContainer AddDataItem(TWrapper wrapper, XmlSerializer xmlSer = null)
#pragma warning restore CS1574 // XML comment has cref attribute 'content' that could not be resolved
        {
            dataItemContainer iContainer = new dataItemContainer();
            T item = GetInstanceToPack(wrapper);

            if (item is IDataPackageItem)
            {
                IDataPackageItem item_IDataPackageItem = (IDataPackageItem)item;
                item_IDataPackageItem.OnBeforeSave();
            }

            iContainer.id = GetDataPackageID(wrapper);

            TextWriter writer = new StringWriter();

            if (xmlSer == null)
            {
                xmlSer = xSer;
            }

            xmlSer.Serialize(writer, item);
            writer.Close();

            iContainer.instanceXml = writer.ToString();

            content.Add(iContainer);
            return(iContainer);
        }