Пример #1
0
        private void serialize_dc_todelete(Dictionary <string, InstanceValue> instanceData, Dictionary <string, InstanceValue> instanceMetadata)
        {
            System.Runtime.Serialization.DataContractSerializerSettings settings = new System.Runtime.Serialization.DataContractSerializerSettings
            {
                PreserveObjectReferences = true,
                KnownTypes = _knownTypes
            };

            System.Runtime.Serialization.DataContractSerializer serializer = new System.Runtime.Serialization.DataContractSerializer(instanceData.GetType(), settings);

            string serializedCorrelation = null;

            using (MemoryStream ms = new MemoryStream())
            {
                serializer.WriteObject(ms, Correlation);
                serializedCorrelation = System.Text.Encoding.UTF8.GetString(ms.ToArray());
            }

            string serializedInstanceData = null;

            using (MemoryStream ms = new MemoryStream())
            {
                serializer.WriteObject(ms, instanceData);
                serializedInstanceData = System.Text.Encoding.UTF8.GetString(ms.ToArray());
            }

            string serializedInstanceMetadata = null;

            using (MemoryStream ms = new MemoryStream())
            {
                serializer.WriteObject(ms, instanceMetadata);
                serializedInstanceMetadata = System.Text.Encoding.UTF8.GetString(ms.ToArray());
            }

            File.WriteAllText(_storePath("Correlation"), serializedCorrelation);
            File.WriteAllText(_storePath("InstanceData"), serializedInstanceData);
            File.WriteAllText(_storePath("InstanceMetadata"), serializedInstanceMetadata);
            //File.WriteAllText(_storePathInstanceData, serializedInstanceData);
            //File.WriteAllText(_storePathInstanceMetadata, serializedInstanceMetadata);
        }
Пример #2
0
        private void deserialize_dc_todelete(out Dictionary <string, InstanceValue> instanceData, out Dictionary <string, InstanceValue> instanceMetadata)
        {
            System.Runtime.Serialization.DataContractSerializerSettings settings = new System.Runtime.Serialization.DataContractSerializerSettings
            {
                PreserveObjectReferences = true,
                KnownTypes = _knownTypes
            };
            System.Runtime.Serialization.DataContractSerializer deserializer = new System.Runtime.Serialization.DataContractSerializer(typeof(Dictionary <string, InstanceValue>), settings);

            var serializedInstanceData = File.ReadAllText(_storePath("InstanceData"));

            using (MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(serializedInstanceData)))
            {
                instanceData = (Dictionary <string, InstanceValue>)deserializer.ReadObject(ms);
            }

            var serializedInstanceMetadata = File.ReadAllText(_storePath("InstanceMetadata"));

            using (MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(serializedInstanceMetadata)))
            {
                instanceMetadata = (Dictionary <string, InstanceValue>)deserializer.ReadObject(ms);
            }
        }
 public DataContractSerializer(System.Type type, System.Runtime.Serialization.DataContractSerializerSettings settings)
 {
 }
Пример #4
0
        private bool SaveWorkflow(InstancePersistenceContext context, SaveWorkflowCommand command)
        {
            if (context.InstanceVersion == -1)
            {
                context.BindAcquiredLock(0);
            }

            if (command.CompleteInstance)
            {
                context.CompletedInstance();
                if (!KeepInstanceDataAfterCompletion)
                {
                    DeleteFiles(context.InstanceView.InstanceId);
                }
            }
            else
            {
                Dictionary <string, InstanceValue> instanceData     = SerializeablePropertyBagConvertXNameInstanceValue(command.InstanceData);
                Dictionary <string, InstanceValue> instanceMetadata = SerializeInstanceMetadataConvertXNameInstanceValue(context, command);

                try
                {
                    //var serializedInstanceData = JsonConvert.SerializeObject(instanceData, Formatting.Indented, _jsonSerializerSettings);
                    ////File.WriteAllText(_storeDirectoryPath + "\\" + context.InstanceView.InstanceId + "-InstanceData", serializedInstanceData);
                    //File.WriteAllText(_storePathInstanceData, serializedInstanceData);
                    //var test_deserializ = JsonConvert.DeserializeObject<Dictionary<string, InstanceValue>>(serializedInstanceData, _jsonSerializerSettings);

                    //var serializedInstanceMetadata = JsonConvert.SerializeObject(instanceMetadata, Formatting.Indented, _jsonSerializerSettings);
                    ////File.WriteAllText(_storeDirectoryPath + "\\" + context.InstanceView.InstanceId + "-InstanceMetadata", serializedInstanceMetadata);
                    //File.WriteAllText(_storePathInstanceMetadata, serializedInstanceMetadata);
                    serialize_dc(instanceData, instanceMetadata);
                }
                catch (Exception exc)
                {
                    System.Runtime.Serialization.DataContractSerializerSettings settings = new System.Runtime.Serialization.DataContractSerializerSettings
                    {
                        PreserveObjectReferences = true,
                        KnownTypes = _knownTypes
                    };

                    string s1 = null;
                    System.Runtime.Serialization.DataContractSerializer serializer = new System.Runtime.Serialization.DataContractSerializer(instanceData.GetType(), settings);
                    using (MemoryStream ms = new MemoryStream())
                    {
                        serializer.WriteObject(ms, instanceData);
                        s1 = System.Text.Encoding.UTF8.GetString(ms.ToArray());
                    }

                    Dictionary <string, InstanceValue> obj = null;
                    System.Runtime.Serialization.DataContractSerializer deserializer = new System.Runtime.Serialization.DataContractSerializer(instanceData.GetType(), settings);
                    using (MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(s1)))
                    {
                        obj = (Dictionary <string, InstanceValue>)deserializer.ReadObject(ms);
                    }


                    throw;
                }

                foreach (KeyValuePair <XName, InstanceValue> property in command.InstanceMetadataChanges)
                {
                    context.WroteInstanceMetadataValue(property.Key, property.Value);
                }

                context.PersistedInstance(command.InstanceData);
                if (command.CompleteInstance)
                {
                    context.CompletedInstance();
                }

                if (command.UnlockInstance || command.CompleteInstance)
                {
                    context.InstanceHandle.Free();
                }
            }

            return(true);
        }