Esempio n. 1
0
        protected override void PrepareDataObjectForEdit(ICSSoft.STORMNET.DataObject dobject)
        {
            // *** Start programmer edit section *** (PrepareDataObjectForEdit (DataObject) start)

            // *** End programmer edit section *** (PrepareDataObjectForEdit (DataObject) start)
            m_objView = ICSSoft.STORMNET.Information.GetView("MainObjE", typeof(SimpleTestAuditProject.MainObj));
            if (((dobject.GetStatus(false) != ICSSoft.STORMNET.ObjectStatus.Created) ||
                 dobject.Prototyped))
            {
                ICSSoft.STORMNET.Business.DataServiceProvider.DataService.LoadObject(m_objView, dobject, false, false);
                dobject.InitDataCopy();
            }
            // *** Start programmer edit section *** (PrepareDataObjectForEdit (DataObject) end)

            // *** End programmer edit section *** (PrepareDataObjectForEdit (DataObject) end)
        }
Esempio n. 2
0
        /// <summary>
        /// Извлечение объекта данных из строки
        /// </summary>
        /// <param name="xmlEl"> Текущий элемент xml </param>
        /// <param name="dataObject"> Текущий объект данных </param>
        /// <param name="assemblies"> Необходимые сборки </param>
        /// <param name="DataObjectCache"> DataObjectCache </param>
        /// <param name="deserializedObjectsList"> Словарь десериализованных объектов с их первичными ключами </param>
        private static void prv_XmlElement2DataObject(
            XmlElement xmlEl,
            ICSSoft.STORMNET.DataObject dataObject,
            SortedList assemblies,
            DataObjectCache DataObjectCache,
            Dictionary <string, ICSSoft.STORMNET.DataObject> deserializedObjectsList)
        {
            if (!deserializedObjectsList.ContainsKey(dataObject.__PrimaryKey.ToString()))
            {
                deserializedObjectsList.Add(dataObject.__PrimaryKey.ToString(), dataObject);
            }

            var storableprops = new ArrayList(Information.GetStorablePropertyNames(dataObject.GetType()));
            var order         = new StringCollection();

            order.AddRange(Information.GetLoadingOrder(dataObject.GetType()));

            foreach (string propname in order)
            { // Прочитка в соответствии с указанным порядком
                prv_ReadProperty(xmlEl, dataObject, propname, assemblies, DataObjectCache, deserializedObjectsList);
            }

            XmlAttributeCollection xmlattributes = xmlEl.Attributes;
            XmlNodeList            xmlchilds     = xmlEl.ChildNodes;

            if (xmlattributes != null)
            {
                foreach (XmlAttribute xmlattribute in xmlattributes)
                {
                    if (!order.Contains(xmlattribute.Name) && storableprops.Contains(xmlattribute.Name))
                    {
                        prv_ReadAttribute(xmlattribute, dataObject);
                    }
                }
            }

            if (xmlchilds != null)
            {
                foreach (XmlNode xmlchild in xmlchilds)
                {
                    Type proptype = Information.GetPropertyType(dataObject.GetType(), xmlchild.Name);
                    if (proptype.IsSubclassOf(typeof(DataObject)))
                    { // Это мастер
                        prv_ReadMaster(xmlchild, dataObject, assemblies, DataObjectCache, deserializedObjectsList);
                    }
                    else
                    { // Это детейл
                        if (!order.Contains(xmlchild.Name))
                        {
                            var         detail           = (DetailArray)Information.GetPropValueByName(dataObject, xmlchild.Name);
                            XmlNodeList xmldetailobjects = xmlchild.ChildNodes;
                            if (xmldetailobjects != null)
                            {
                                prv_ReadDetail(xmldetailobjects, detail, assemblies, DataObjectCache, deserializedObjectsList);
                            }
                        }
                    }
                }
            }

            if (xmlEl.HasAttribute("DynamicProperties"))
            {
                if (xmlEl.HasAttribute("DynamicProperties"))
                {
                    string dpstr = xmlEl.GetAttribute("DynamicProperties");
                    if (string.IsNullOrEmpty(dpstr))
                    {
                        dataObject.DynamicProperties = new NameObjectCollection();
                    }
                    else
                    {
                        dataObject.DynamicProperties = (NameObjectCollection)ObjectFromString(dpstr);
                    }
                }
            }

            dataObject.InitDataCopy();
            dataObject.SetLoadingState(LoadingState.Loaded);
            dataObject.SetStatus(ObjectStatus.UnAltered);
        }