public void CheckIn(WorkSessionStateContainer hibernationContainer, Guid workSessionId)
        {
            HibernatedItem item = new HibernatedItem(workSessionId, hibernationContainer.Descriptor.DocumentPathOrID, DateTime.Now,
                                                     WorkSessionStateDatabaseSerializer.Serialize(hibernationContainer.Descriptor), WorkSessionStateDatabaseSerializer.Serialize(hibernationContainer.Chamber));

            CurrentHibernationStorage.CheckIn(item);
        }
        public static WorkSessionStateContainer Deserialize(HibernatedItem item, bool descriptorOnly)
        {
            var formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();

            HibernationChamberDescriptor header = (HibernationChamberDescriptor)formatter.Deserialize(new MemoryStream(item.Header));
            HibernationChamber           body   = descriptorOnly ? null : (HibernationChamber)formatter.Deserialize(new MemoryStream(item.Content));

            return(new WorkSessionStateContainer(header, body));
        }
Example #3
0
 public void CheckIn(HibernatedItem item)
 {
     if (HasItem(item.WorkSessionId))
     {
         UpdateItem(item);
     }
     else
     {
         AddItem(item);
     }
 }
        protected WorkSessionStateContainer CheckOut(Guid workSessionId, bool descriptorOnly)
        {
            HibernatedItem            item      = CurrentHibernationStorage.CheckOut(workSessionId);
            WorkSessionStateContainer container = null;

            if (item != null)
            {
                container = WorkSessionStateDatabaseSerializer.Deserialize(item, descriptorOnly);
                CurrentHibernationStorage.DeleteItem(workSessionId);
            }
            return(container);
        }
Example #5
0
 void AddItem(HibernatedItem item)
 {
     using (SqlConnection connection = new SqlConnection(settings.ConnectionString)) {
         string commandText = "INSERT INTO [#TableName#] ([#WorkSessionId#], [#DocumentId#], [#HibernationTime#], [#Header#], [#Content#]) VALUES (@WorkSessionId, @DocumentId, @HibernationTime, @Header, @Content)";
         commandText = HibernationTableQueryHelper.PatchSQLCommandText(commandText, settings);
         SqlCommand command = new SqlCommand(commandText, connection);
         command.Parameters.Add(new SqlParameter("@WorkSessionId", item.WorkSessionId));
         command.Parameters.Add(new SqlParameter("@DocumentId", item.DocumentId));
         command.Parameters.Add(new SqlParameter("@HibernationTime", item.HibernationTime));
         command.Parameters.Add(new SqlParameter("@Header", item.Header));
         command.Parameters.Add(new SqlParameter("@Content", item.Content));
         connection.Open();
         command.ExecuteNonQuery();
         connection.Close();
     }
 }
Example #6
0
 void UpdateItem(HibernatedItem item)
 {
     using (SqlConnection connection = new SqlConnection(settings.ConnectionString)) {
         string commandText = "UPDATE [#TableName#] SET [#DocumentId#]=@DocumentId, [#HibernationTime#]=@HibernationTime, [#Header#]=@Header, [#Content#]=@Content WHERE [#WorkSessionId#]=@WorkSessionId";
         commandText = HibernationTableQueryHelper.PatchSQLCommandText(commandText, settings);
         SqlCommand command = new SqlCommand(commandText, connection);
         command.Parameters.Add(new SqlParameter("@WorkSessionId", item.WorkSessionId));
         command.Parameters.Add(new SqlParameter("@DocumentId", item.DocumentId));
         command.Parameters.Add(new SqlParameter("@HibernationTime", item.HibernationTime));
         command.Parameters.Add(new SqlParameter("@Header", item.Header));
         command.Parameters.Add(new SqlParameter("@Content", item.Content));
         connection.Open();
         command.ExecuteNonQuery();
         connection.Close();
     }
 }
Example #7
0
        public HibernatedItem GetItemByWorkSessionId(Guid workSessionId)
        {
            HibernatedItem item = null;

            using (SqlConnection connection = new SqlConnection(settings.ConnectionString)) {
                string commandText = "SELECT [#WorkSessionId#], [#DocumentId#], [#HibernationTime#], [#Header#], [#Content#] FROM [#TableName#] WHERE [#WorkSessionId#] = @WorkSessionId";
                commandText = HibernationTableQueryHelper.PatchSQLCommandText(commandText, settings);
                SqlCommand command = new SqlCommand(commandText, connection);
                command.Parameters.Add(new SqlParameter("WorkSessionId", workSessionId));
                connection.Open();
                using (SqlDataReader reader = command.ExecuteReader()) {
                    if (reader.Read())
                    {
                        item                 = new HibernatedItem(workSessionId);
                        item.DocumentId      = (string)reader[settings.ColumnNames.DocumentId];
                        item.HibernationTime = Convert.ToDateTime(reader[settings.ColumnNames.HibernationTime]);
                        item.Header          = (byte[])reader[settings.ColumnNames.Header];
                        item.Content         = (byte[])reader[settings.ColumnNames.Content];
                    }
                    connection.Close();
                }
            }
            return(item);
        }