Ejemplo n.º 1
0
        public void WfExternalUserTest()
        {
            WfExternalUser externalUser = new WfExternalUser();

            externalUser.Key         = "user0";
            externalUser.Name        = "zLing";
            externalUser.Gender      = Gender.Female;
            externalUser.Email       = "*****@*****.**";
            externalUser.MobilePhone = "13552630000";
            externalUser.Phone       = "0409987";
            externalUser.Title       = "programer";

            IWfProcessDescriptor processDesc = WfProcessTestCommon.CreateSimpleProcessDescriptor();

            processDesc.ExternalUsers.Add(externalUser);

            WfProcessStartupParams startupParams = new WfProcessStartupParams();

            startupParams.ProcessDescriptor = processDesc;
            IWfProcess process = WfRuntime.StartWorkflow(startupParams);

            XElementFormatter formatter = new XElementFormatter();

            XElement   rootProc      = formatter.Serialize(process);
            IWfProcess clonedProcess = (IWfProcess)formatter.Deserialize(rootProc);

            XElement resultProc = formatter.Serialize(clonedProcess);

            Assert.AreEqual(processDesc.ExternalUsers[0].Name, clonedProcess.Descriptor.ExternalUsers[0].Name);
            Assert.AreEqual(processDesc.ExternalUsers[0].Gender, clonedProcess.Descriptor.ExternalUsers[0].Gender);

            Assert.AreEqual(rootProc.ToString(), resultProc.ToString());
        }
Ejemplo n.º 2
0
        public void SimpleProcessRuntimeSerializeTest()
        {
            IWfProcess process = WfProcessTestCommon.StartupSimpleProcess();

            if (process.Activities != null)
            {
                foreach (var activity in process.Activities)
                {
                    if (activity.Descriptor != process.Descriptor.InitialActivity)
                    {
                        Assert.IsTrue(activity.Status == WfActivityStatus.NotRunning);
                        WfTransferParams transferPara = new WfTransferParams(activity.Descriptor);
                        process.MoveTo(transferPara);
                    }
                }
            }

            XElementFormatter formatter = new XElementFormatter();

            XElement root = formatter.Serialize(process);

            Console.WriteLine(root.ToString());

            IWfProcess clonedProcess = (IWfProcess)formatter.Deserialize(root);

            Assert.IsTrue(clonedProcess.Status == WfProcessStatus.Completed);

            for (int i = 0; i < clonedProcess.Activities.Count; i++)
            {
                Assert.IsTrue(clonedProcess.Activities[i].Status == WfActivityStatus.Completed);

                if (i < clonedProcess.Activities.Count - 1)
                {
                    Assert.AreEqual(clonedProcess.Activities[i].Descriptor.ToTransitions[0], clonedProcess.Activities[i + 1].Descriptor.FromTransitions[0]);
                }
            }

            Assert.IsNotNull(clonedProcess.Descriptor.Activities[process.Descriptor.InitialActivity.Key], "验证反序列化后集合字典的完整性");

            XElement reRoot = formatter.Serialize(clonedProcess);

            //31000是否允许被撤回默认值不同true false

            Assert.AreEqual(root.ToString(), reRoot.ToString());


            IWfProcess reClonedProcess = (IWfProcess)formatter.Deserialize(reRoot);

            Assert.AreEqual(clonedProcess.ToString(), reClonedProcess.ToString());
        }
Ejemplo n.º 3
0
        public void ProcessSerializeTest()
        {
            IWfProcessDescriptor processDesc = WfProcessTestCommon.CreateSimpleProcessDescriptor();

            WfProcessStartupParams startupParams = new WfProcessStartupParams();

            startupParams.ProcessDescriptor = processDesc;
            IWfProcess process = WfRuntime.StartWorkflow(startupParams);

            ((WfProcess)process).ResourceID = UuidHelper.NewUuidString();

            WfProcessContext context = process.Context;

            context.Add("UCC", "the same");

            XElementFormatter formatter = new XElementFormatter();

            //formatter.OutputShortType = false;

            XElement root = formatter.Serialize(process);

            Console.WriteLine(root.ToString());

            IWfProcess clonedProcess = (IWfProcess)formatter.Deserialize(root);

            Assert.IsNotNull(clonedProcess.Context["UCC"]);
            Assert.AreEqual(process.Context.Count, clonedProcess.Context.Count);
            Assert.AreEqual(process.Context["UCC"], clonedProcess.Context["UCC"]);
        }
Ejemplo n.º 4
0
        public void ActivitySerializeTest()
        {
            IWfProcessDescriptor processDesc = WfProcessTestCommon.CreateSimpleProcessDescriptor();

            WfProcessStartupParams startupParams = new WfProcessStartupParams();

            startupParams.ProcessDescriptor = processDesc;
            IWfProcess process = WfRuntime.StartWorkflow(startupParams);

            Sky sky = new Sky();

            sky.air   = "清新";
            sky.Cloud = 1;
            Sky space = new Sky();

            space.air   = "干净";
            space.Cloud = 1;

            process.InitialActivity.Context.Add("DDO", sky);
            process.InitialActivity.Context.Add("DFO", space);

            XElementFormatter formatter = new XElementFormatter();
            XElement          root      = formatter.Serialize(process);

            Console.WriteLine(root.ToString());

            IWfProcess clonedProcess = (IWfProcess)formatter.Deserialize(root);

            Assert.IsNotNull(clonedProcess.InitialActivity.Context["DDO"]);
            Assert.AreEqual(process.InitialActivity.Context.Count, clonedProcess.InitialActivity.Context.Count);
            Assert.AreEqual(((Sky)process.InitialActivity.Context["DDO"]).air, ((Sky)clonedProcess.InitialActivity.Context["DDO"]).air);
            Assert.AreEqual(((Sky)process.InitialActivity.Context["DDO"]).Cloud, ((Sky)clonedProcess.InitialActivity.Context["DDO"]).Cloud);
            Assert.AreEqual(((Sky)process.InitialActivity.Context["DFO"]).air, ((Sky)clonedProcess.InitialActivity.Context["DFO"]).air);
            Assert.AreEqual(((Sky)process.InitialActivity.Context["DFO"]).Cloud, ((Sky)clonedProcess.InitialActivity.Context["DFO"]).Cloud);
        }
Ejemplo n.º 5
0
        public void Update()
        {
            XElementFormatter formatter = new XElementFormatter();

            formatter.OutputShortType = false;

            string settings = formatter.Serialize(this).ToString();

            string updateSQL = string.Format("UPDATE USER_SETTINGS SET SETTINGS = {0} WHERE USER_ID = {1}",
                                             TSqlBuilder.Instance.CheckQuotationMark(settings, true),
                                             TSqlBuilder.Instance.CheckQuotationMark(this.UserID, true));

            using (DbContext context = DbContext.GetContext(ConnectionDefine.UserRelativeInfoConnectionName))
            {
                using (TransactionScope scope = TransactionScopeFactory.Create())
                {
                    if (DbHelper.RunSql(updateSQL, ConnectionDefine.UserRelativeInfoConnectionName) == 0)
                    {
                        string insertSQL = string.Format("INSERT INTO USER_SETTINGS(USER_ID, SETTINGS) VALUES({0}, {1})",
                                                         TSqlBuilder.Instance.CheckQuotationMark(this.UserID, true),
                                                         TSqlBuilder.Instance.CheckQuotationMark(settings, true));

                        DbHelper.RunSql(insertSQL, ConnectionDefine.UserRelativeInfoConnectionName);
                    }

                    scope.Complete();
                }
            }

            CacheNotifyData notifyData = new CacheNotifyData(typeof(UserSettingsCache), this.UserID, CacheNotifyType.Invalid);

            UdpCacheNotifier.Instance.SendNotifyAsync(notifyData);
            MmfCacheNotifier.Instance.SendNotify(notifyData);
        }
Ejemplo n.º 6
0
        public void PropertyValidatorCollectionSerializeTest()
        {
            PropertyValidatorDescriptorCollection pvDespCollection = PreparePropertyValidatorDescriptorCollection();

            XElementFormatter formatter = new XElementFormatter();

            XElement root = formatter.Serialize(pvDespCollection);

            Console.WriteLine(root.ToString());

            PropertyValidatorDescriptorCollection newpvDespCollection = (PropertyValidatorDescriptorCollection)formatter.Deserialize(root);

            XElement rootReserialized = formatter.Serialize(newpvDespCollection);

            Assert.AreEqual(root.ToString(), rootReserialized.ToString());
            Assert.AreEqual(pvDespCollection.Count, newpvDespCollection.Count);
        }
Ejemplo n.º 7
0
        public void DateTimePropertyValueSerializeTest()
        {
            PropertyValue pv = PrepareDateTimePropertyValue();

            XElementFormatter formatter = new XElementFormatter();

            XElement root = formatter.Serialize(pv);

            Console.WriteLine(root.ToString());

            PropertyValue newPropertyValue = (PropertyValue)formatter.Deserialize(root);

            XElement rootReserialized = formatter.Serialize(newPropertyValue);

            Assert.AreEqual(root.ToString(), rootReserialized.ToString());
            Assert.AreEqual(pv.StringValue, newPropertyValue.StringValue);
            Assert.AreEqual(pv.Definition.Name, newPropertyValue.Definition.Name);
        }
Ejemplo n.º 8
0
        protected override void BeforeInnerUpdate(InvokeWebServiceJob data, Dictionary <string, object> context)
        {
            base.BeforeInnerUpdate(data, context);

            XElementFormatter formatter = new XElementFormatter();

            formatter.OutputShortType = WorkflowSettings.GetConfig().OutputShortType;
            data.XmlData = formatter.Serialize(data.SvcOperationDefs).ToString();
        }
Ejemplo n.º 9
0
        public static WfProcessDescriptorInfo FromProcessDescriptor(IWfProcessDescriptor processDesp)
        {
            XElementFormatter formatter = new XElementFormatter();

            formatter.OutputShortType = WorkflowSettings.GetConfig().OutputShortType;

            XElement root = formatter.Serialize(processDesp);

            return(FromProcessDescriptor(processDesp, root));
        }
        public void PropertyValidatorParameterDescriptorSerializeTest()
        {
            PropertyValidatorParameterDescriptor pvpd = PreparePropertyValidatorParameterDateTimeDescriptor();

            XElementFormatter formatter = new XElementFormatter();

            XElement root = formatter.Serialize(pvpd);

            Console.WriteLine(root.ToString());

            PropertyValidatorParameterDescriptor newPropertyValue = (PropertyValidatorParameterDescriptor)formatter.Deserialize(root);

            XElement rootReserialized = formatter.Serialize(newPropertyValue);

            Assert.AreEqual(root.ToString(), rootReserialized.ToString());
            Assert.AreEqual(pvpd.ParamValue, newPropertyValue.ParamValue);
            Assert.AreEqual(pvpd.ParamName, newPropertyValue.ParamName);
            Assert.AreEqual(pvpd.DataType, newPropertyValue.DataType);
        }
Ejemplo n.º 11
0
        public IWfProcessDescriptor Clone()
        {
            XElementFormatter formatter = new XElementFormatter();

            formatter.OutputShortType            = WorkflowSettings.GetConfig().OutputShortType;
            formatter.FieldCanXElementSerialize += new FieldCanXElementSerializeHandler(formatter_FieldCanXElementSerialize);

            XElement root = formatter.Serialize(this);

            return((IWfProcessDescriptor)formatter.Deserialize(root));
        }
Ejemplo n.º 12
0
        public void PropertyValidatorSerializeTest()
        {
            PropertyValidatorDescriptor pv = PreparePropertyValidatorDescriptor();

            XElementFormatter formatter = new XElementFormatter();

            XElement root = formatter.Serialize(pv);

            Console.WriteLine(root.ToString());

            PropertyValidatorDescriptor newPropertyValue = (PropertyValidatorDescriptor)formatter.Deserialize(root);

            XElement rootReserialized = formatter.Serialize(newPropertyValue);

            Assert.AreEqual(root.ToString(), rootReserialized.ToString());
            Assert.AreEqual(pv.Tag, newPropertyValue.Tag);
            Assert.AreEqual(pv.TypeDescription, newPropertyValue.TypeDescription);
            Assert.AreEqual(pv.Name, newPropertyValue.Name);
            Assert.AreEqual(pv.Parameters.Count, newPropertyValue.Parameters.Count);
        }
Ejemplo n.º 13
0
        public void SaveDescriptor(IWfProcessDescriptor processDesp)
        {
            processDesp.NullCheck("processDesp");

            XElementFormatter formatter = WfProcessDescriptorManager.CreateFormatter();

            XElement xml = formatter.Serialize(processDesp);

            SaveXml(processDesp, xml);

            SendCacheNotifyByProcessKey(processDesp.Key);
        }
        public void ProcessRequest(HttpContext context)
        {
            string roleID = context.Request["roleID"];

            if (string.IsNullOrEmpty(context.Request["roleID"]) == false)
            {
                SOARole role = new SOARole()
                {
                    ID = roleID
                };

                SOARolePropertyDefinitionCollection rowsColl = SOARolePropertyDefinitionAdapter.Instance.LoadByRole(role);

                XDocument rolePropertiesDoc = new XDocument(new XDeclaration("1.0", "utf-8", "true"), new XElement("SOARoleProperties"));

                XElementFormatter formatter = new XElementFormatter();

                formatter.OutputShortType = false;

                XElement xeRoleProperties = formatter.Serialize(rowsColl);

                rolePropertiesDoc.Element("SOARoleProperties").Add(xeRoleProperties);

                context.Response.Clear();
                context.Response.ContentType     = "text/xml";
                context.Response.ContentEncoding = Encoding.UTF8;

                string fileName = string.Empty;

                if (context.Request["roleName"].IsNotEmpty())
                {
                    fileName = string.Format("{0}", context.Request["roleName"]);
                }

                if (fileName.IsNullOrEmpty() && context.Request["roleCode"].IsNotEmpty())
                {
                    fileName = string.Format("{0}", context.Request["roleCode"]);
                }

                if (fileName.IsNullOrEmpty())
                {
                    fileName = roleID;
                }

                fileName += "_Properties";

                context.Response.AppendHeader("content-disposition", string.Format("attachment;fileName={0}.xml", context.Response.EncodeFileNameInContentDisposition(fileName)));
                rolePropertiesDoc.Save(context.Response.OutputStream);
                context.Response.End();
            }
        }
Ejemplo n.º 15
0
        public void PropertyValueCollectionSerializeTest()
        {
            PropertyValueCollection pvc = new PropertyValueCollection();

            pvc.Add(PreparePropertyValue());

            XElementFormatter formatter = new XElementFormatter();

            XElement root = formatter.Serialize(pvc);

            Console.WriteLine(root.ToString());

            PropertyValueCollection newPvc = (PropertyValueCollection)formatter.Deserialize(root);

            Assert.AreEqual(pvc.Count, newPvc.Count);
            Assert.AreEqual(pvc[0].StringValue, newPvc[pvc[0].Definition.Name].StringValue);
        }
Ejemplo n.º 16
0
        public void SimpleProcessDescriptorSerializeTest()
        {
            IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor();

            XElementFormatter formatter = new XElementFormatter();

            XElement root = formatter.Serialize(processDesp);

            Console.WriteLine(root.ToString());

            IWfProcessDescriptor clonedProcessDesp = (IWfProcessDescriptor)formatter.Deserialize(root);

            Assert.IsTrue(clonedProcessDesp.InitialActivity.CanReachTo(clonedProcessDesp.CompletedActivity));
            Assert.AreEqual(clonedProcessDesp, clonedProcessDesp.InitialActivity.Process);
            Assert.AreEqual(clonedProcessDesp, clonedProcessDesp.CompletedActivity.Process);
            //因增加了一个活动点,此处这样比较断言肯定失败.故此将其注销掉
            //Assert.AreEqual(clonedProcessDesp.InitialActivity.ToTransitions[0], clonedProcessDesp.CompletedActivity.FromTransitions[0]);
        }
Ejemplo n.º 17
0
        public void ProcessSerializeExecutionTimeTest()
        {
            IWfProcessDescriptor processDesc = WfProcessTestCommon.CreateSimpleProcessDescriptor();

            int totalProcesses = 40;

            //准备流程实例
            List <IWfProcess> processes = ProcessTestHelper.StartupMultiProcesses(processDesc, totalProcesses);

            ProcessTestHelper.OutputExecutionTime(() =>
            {
                foreach (IWfProcess process in processes)
                {
                    XElementFormatter formatter = new XElementFormatter();
                    XElement root = formatter.Serialize(process);
                }
            },
                                                  string.Format("序列化{0}个流程", totalProcesses));
        }
Ejemplo n.º 18
0
        public void SimpleProcessDescriptorWithResourceSerializeTest()
        {
            IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor();

            processDesp.InitialActivity.Resources.Add(new WfUserResourceDescriptor((IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object));

            XElementFormatter formatter = new XElementFormatter();

            XElement root = formatter.Serialize(processDesp);

            Console.WriteLine(root.ToString());

            IWfProcessDescriptor clonedProcessDesp = (IWfProcessDescriptor)formatter.Deserialize(root);

            Assert.IsTrue(clonedProcessDesp.InitialActivity.CanReachTo(clonedProcessDesp.CompletedActivity));
            Assert.AreEqual(processDesp.InitialActivity.Resources.Count, clonedProcessDesp.InitialActivity.Resources.Count);

            Assert.AreEqual(clonedProcessDesp, clonedProcessDesp.InitialActivity.Process);
            Assert.AreEqual(clonedProcessDesp, clonedProcessDesp.CompletedActivity.Process);
        }
Ejemplo n.º 19
0
        public void WfActivityMatrixResourceSerializationTest()
        {
            IWfProcessDescriptor processDesp = WfProcessTestCommon.GetDynamicProcessDesp();

            XElementFormatter formatter = new XElementFormatter();

            XElement             rootProc          = formatter.Serialize(processDesp);
            IWfProcessDescriptor clonedProcessDesp = (IWfProcessDescriptor)formatter.Deserialize(rootProc);

            IWfActivityDescriptor normalActDesp       = processDesp.Activities["NormalActivity"];
            IWfActivityDescriptor clonedNormalActDesp = clonedProcessDesp.Activities["NormalActivity"];

            Assert.IsNotNull(normalActDesp);
            Assert.IsNotNull(clonedNormalActDesp);

            WfActivityMatrixResourceDescriptor matrixResource       = (WfActivityMatrixResourceDescriptor)normalActDesp.Resources[0];
            WfActivityMatrixResourceDescriptor clonedMatrixResource = (WfActivityMatrixResourceDescriptor)clonedNormalActDesp.Resources[0];

            Assert.AreEqual(matrixResource.PropertyDefinitions.Count, clonedMatrixResource.PropertyDefinitions.Count);
            Assert.AreEqual(matrixResource.Rows.Count, clonedMatrixResource.Rows.Count);
        }
Ejemplo n.º 20
0
        public void SaveChanges(string userId)
        {
            XElementFormatter formatter = new XElementFormatter();

            formatter.OutputShortType = false;

            string settings = formatter.Serialize(this).ToString();

            string updateSQL = string.Format("UPDATE USER_RECENT_DATA SET DATA = {0} WHERE USER_ID = {1} AND CATEGORY = {2}",
                                             TSqlBuilder.Instance.CheckUnicodeQuotationMark(settings),
                                             TSqlBuilder.Instance.CheckUnicodeQuotationMark(userId),
                                             TSqlBuilder.Instance.CheckUnicodeQuotationMark(this.Name));

            using (DbContext context = DbContext.GetContext(ConnectionDefine.UserRelativeInfoConnectionName))
            {
                using (TransactionScope scope = TransactionScopeFactory.Create())
                {
                    if (DbHelper.RunSql(updateSQL, ConnectionDefine.UserRelativeInfoConnectionName) == 0)
                    {
                        string insertSQL = string.Format("INSERT INTO USER_RECENT_DATA(USER_ID,CATEGORY, DATA) VALUES({0}, {1}, {2})",
                                                         TSqlBuilder.Instance.CheckUnicodeQuotationMark(userId),
                                                         TSqlBuilder.Instance.CheckUnicodeQuotationMark(this.Name),
                                                         TSqlBuilder.Instance.CheckUnicodeQuotationMark(settings));

                        DbHelper.RunSql(insertSQL, ConnectionDefine.UserRelativeInfoConnectionName);
                    }

                    scope.Complete();
                }
            }

            CacheNotifyData notifyData = new CacheNotifyData(typeof(UserRecentDataCategoryCache), new UserRecentDataCategoryCacheKey(userId, this.Name), CacheNotifyType.Invalid);

            UdpCacheNotifier.Instance.SendNotifyAsync(notifyData);
            MmfCacheNotifier.Instance.SendNotify(notifyData);

            //可有可无,在NLB环境下意义不大。沈峥
            UserRecentDataCategoryCache.Instance.Remove(new UserRecentDataCategoryCacheKey(userId, this.Name));
        }
Ejemplo n.º 21
0
        public void Update()
        {
            XElementFormatter formatter = new XElementFormatter();

            formatter.OutputShortType = WorkflowSettings.GetConfig().OutputShortType;

            string properties = formatter.Serialize(this).ToString();

            string updateSQL = string.Format("UPDATE WF.GLOBAL_PARAMETERS SET [PROPERTIES] = {0} WHERE {1}",
                                             TSqlBuilder.Instance.CheckQuotationMark(properties, true),
                                             GetWhereSqlClauseBuilder(this.Key).ToSqlString(TSqlBuilder.Instance));

            using (DbContext context = DbContext.GetContext(WorkflowSettings.GetConfig().ConnectionName))
            {
                using (TransactionScope scope = TransactionScopeFactory.Create())
                {
                    if (DbHelper.RunSql(updateSQL, WorkflowSettings.GetConfig().ConnectionName) == 0)
                    {
                        InsertSqlClauseBuilder iBuilder = new InsertSqlClauseBuilder();

                        iBuilder.AppendItem("[KEY]", this.Key);
                        iBuilder.AppendItem("[PROPERTIES]", properties);
                        iBuilder.AppendTenantCode(typeof(WfGlobalParameters));

                        string insertSQL = string.Format("INSERT INTO WF.GLOBAL_PARAMETERS {0}",
                                                         iBuilder.ToSqlString(TSqlBuilder.Instance));

                        DbHelper.RunSql(insertSQL, WorkflowSettings.GetConfig().ConnectionName);
                    }

                    scope.Complete();
                }
            }

            CacheNotifyData notifyData = new CacheNotifyData(typeof(WfGlobalParametersCache), CalculateCacheKey(this.Key), CacheNotifyType.Invalid);

            UdpCacheNotifier.Instance.SendNotifyAsync(notifyData);
            MmfCacheNotifier.Instance.SendNotify(notifyData);
        }
Ejemplo n.º 22
0
        /// <summary>
        /// 从流程对象生成入库的对象
        /// </summary>
        /// <param name="process"></param>
        /// <returns></returns>
        public static WfProcessInstanceData FromProcess(IWfProcess process)
        {
            process.NullCheck("process");

            WfProcessInstanceData instanceData = new WfProcessInstanceData();

            instanceData.InstanceID      = process.ID;
            instanceData.ResourceID      = process.ResourceID;
            instanceData.Status          = process.Status;
            instanceData.StartTime       = process.StartTime;
            instanceData.EndTime         = process.EndTime;
            instanceData.ApplicationName = process.Descriptor.ApplicationName;
            instanceData.ProcessName     = GetRuntimeProcessName(process);

            process.RuntimeProcessName = instanceData.ProcessName;

            instanceData.DescriptorKey    = process.Descriptor.Key;
            instanceData.ProgramName      = process.Descriptor.ProgramName;
            instanceData._Creator         = process.Creator;
            instanceData._Department      = process.OwnerDepartment;
            instanceData.Sequence         = process.Sequence;
            instanceData.OwnerActivityID  = ((WfProcess)process).OwnerActivityID;
            instanceData.OwnerTemplateKey = ((WfProcess)process).OwnerTemplateKey;
            instanceData.Committed        = process.Committed;
            instanceData.ExtData          = process.Context.GetValue("SerilizationExtData", GetDefaultExtData(process));

            XElementFormatter formatter = new XElementFormatter();

            formatter.OutputShortType = WorkflowSettings.GetConfig().OutputShortType;

            instanceData.Data = formatter.Serialize(process).ToString();

            if (process.CurrentActivity != null)
            {
                instanceData.CurrentActivityID = process.CurrentActivity.ID;
            }

            return(instanceData);
        }
Ejemplo n.º 23
0
        public void LruCollectionSerializationText()
        {
            TestLruCollection list = new TestLruCollection(4);

            for (int i = 0; i < 5; i++)
            {
                list.Add("S" + i);
            }

            XElementFormatter formatter = new XElementFormatter();

            XElement root = formatter.Serialize(list);

            Console.WriteLine(root.ToString());

            TestLruCollection deserializedList = (TestLruCollection)formatter.Deserialize(root);

            Assert.AreEqual(list.Count, deserializedList.Count);

            for (int i = 0; i < list.Count; i++)
            {
                Assert.AreEqual(list[i], deserializedList[i]);
            }
        }
Ejemplo n.º 24
0
        public void SimpleProcessDescriptorWithDeptResSerializeTest()
        {
            WfConverterHelper.RegisterConverters();

            WfProcessDescriptor processDesp = (WfProcessDescriptor)WfProcessTestCommon.CreateSimpleProcessDescriptor();

            IUser         user = (IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object;
            IOrganization orga = user.Parent;
            WfDepartmentResourceDescriptor deptResuDesp = new WfDepartmentResourceDescriptor(orga);

            processDesp.InitialActivity.Resources.Add(deptResuDesp);

            string result = JSONSerializerExecute.Serialize(processDesp);

            processDesp = JSONSerializerExecute.Deserialize <WfProcessDescriptor>(result);

            XElementFormatter formatter = new XElementFormatter();

            XElement root = formatter.Serialize(processDesp);

            Console.WriteLine(root.ToString());

            IWfProcessDescriptor clonedProcessDesp = (IWfProcessDescriptor)formatter.Deserialize(root);
        }
Ejemplo n.º 25
0
        public void ProcessWithReturnLineSerializationTest()
        {
            IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptorWithReturnLine();

            XElementFormatter formatter = new XElementFormatter();

            XElement root = formatter.Serialize(processDesp);

            Console.WriteLine(root.ToString());
            processDesp = (IWfProcessDescriptor)formatter.Deserialize(root);

            IWfActivityDescriptor normalActDesp = processDesp.Activities["NormalActivity"];

            ToTransitionsDescriptorCollection transitions = normalActDesp.ToTransitions;

            foreach (string key in transitions.GetAllKeys())
            {
                Assert.IsTrue(key.IsNotEmpty());

                IWfTransitionDescriptor transition = transitions[key];

                Assert.AreEqual(key, transition.Key);
            }
        }
Ejemplo n.º 26
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string sProcessKeys = Request["wfProcessKeys"].ToString();

            string[] arrProcessKeys = sProcessKeys.Split(',');

            var xDoc = new XDocument(
                new XDeclaration("1.0", "utf-8", "true"),
                new XElement("WorkflowProcesses")
                );

            for (int i = 0; i < arrProcessKeys.Length; i++)
            {
                XElementFormatter formatter = new XElementFormatter();

                formatter.OutputShortType = false;
                WfProcessDescriptor processDesc = (WfProcessDescriptor)WfProcessDescriptorManager.LoadDescriptor(arrProcessKeys[i]);
                XElement            xeWfProcess = formatter.Serialize(processDesc);

                xDoc.Element("WorkflowProcesses").Add(xeWfProcess);
            }

            Response.ContentType     = "text/xml";
            Response.ContentEncoding = Encoding.UTF8;
            if (arrProcessKeys.Count() > 1)
            {
                Response.AppendHeader("content-disposition", "attachment;fileName=ExportedProcess.xml");
            }
            else
            {
                Response.AppendHeader("content-disposition", string.Format("attachment;fileName={0}.xml", HttpUtility.UrlEncode(arrProcessKeys[0])));
            }
            //"attachment;fileName=ExportedProcess.xml");

            xDoc.Save(Response.OutputStream);
        }
Ejemplo n.º 27
0
        private static XElement SerializeProcess(IWfProcess process)
        {
            XElementFormatter formatter = new XElementFormatter();

            return(formatter.Serialize(process));
        }
Ejemplo n.º 28
0
        private static string GetSerilizedProcess(TxProcess process)
        {
            XElementFormatter formatter = new XElementFormatter();

            return(formatter.Serialize(process).ToString());
        }
Ejemplo n.º 29
0
        private static string GetSerilizedServiceDefs(WfServiceOperationDefinitionCollection svcOperationDefs)
        {
            XElementFormatter formatter = new XElementFormatter();

            return(formatter.Serialize(svcOperationDefs).ToString());
        }