예제 #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)
        }
예제 #2
0
        /// <summary>
        /// Получение XML документа из объекта данных
        /// </summary>
        /// <param name="dataObject"> Сам объект данных </param>
        /// <param name="serializeAggregators"> Следует ли сериализовать детейлы </param>
        /// <param name="setObjectLoadingStateLoaded"> Установить LoadingState объекта в Loaded </param>
        /// <param name="setObjectStatusCreated"> Установить ObjectStatus объекта в Created </param>
        /// <param name="serializeMasters"> Проводить полную сериализацию мастеров объектов </param>
        /// <returns> Сериализованное представление объекта </returns>
        public static XmlDocument DataObject2XMLDocument(
            ref ICSSoft.STORMNET.DataObject dataObject,
            bool serializeAggregators,
            bool setObjectLoadingStateLoaded,
            bool setObjectStatusCreated,
            bool serializeMasters)
        {
            var xmlDoc = new XmlDocument();

            if (dataObject.GetStatus() != ObjectStatus.Deleted)
            { // Удалённые объекты сохранять не следует
                xmlDoc.LoadXml(@"<" + "STORMNETXMLDataService" + " />");
                var xmlMainEl = (XmlElement)xmlDoc.FirstChild;
                var xmlEl     = (XmlElement)xmlMainEl.AppendChild(xmlDoc.CreateElement(dataObject.GetType().ToString()));

                var assemblies = new SortedList();

                prv_DataObject2XmlElement(
                    xmlEl,
                    dataObject,
                    assemblies,
                    serializeAggregators,
                    setObjectLoadingStateLoaded,
                    setObjectStatusCreated,
                    serializeMasters,
                    new List <string>());

                var xmlAssemblies = (XmlElement)xmlDoc.CreateElement("Assemblies");
                for (int i = 0; i < assemblies.Count; i++)
                {
                    var xmlAssembly = (XmlElement)xmlAssemblies.AppendChild(xmlDoc.CreateElement((string)assemblies.GetKey(i)));
                    xmlAssembly.SetAttribute("Assembly", (string)assemblies.GetByIndex(i));
                }

                xmlMainEl.AppendChild(xmlAssemblies);
            }
            else if (setObjectStatusCreated)
            { // Необходимо вернуть пустой, вновь созданный объект
                ConstructorInfo ci = dataObject.GetType().GetConstructor(new System.Type[0]);
                dataObject = (DataObject)ci.Invoke(new object[0]);
            }

            return(xmlDoc);
        }