public override void ClearHistory(Sitecore.Data.Items.Item item)
        {
            var query = Query.And(
                Query.EQ("Id", item.ID.Guid),
                Query.EQ("Language", item.Language.ToString()),
                Query.EQ("Version", item.Version.ToInt32())
                );

            WorkflowHistories.Remove(query);
        }
        public override void AddHistory(Sitecore.Data.Items.Item item, string oldState, string newState, string text)
        {
            WorkflowHistory history = new WorkflowHistory();

            history.Id       = item.ID.Guid;
            history.Language = item.Language.ToString();
            history.NewState = newState;
            history.Now      = DateTime.Now;
            history.OldState = oldState;
            history.Text     = text;
            history.User     = Context.GetUserName();
            history.Version  = item.Version.ToInt32();

            WorkflowHistories.Save(history);
        }
        public override WorkflowEvent[] GetHistory(Sitecore.Data.Items.Item item)
        {
            var query = Query.And(
                Query.EQ("Id", item.ID.Guid),
                Query.EQ("Language", item.Language.ToString()),
                Query.EQ("Version", item.Version.ToInt32())
                );

            var results = WorkflowHistories.Find(query);

            List <WorkflowEvent> list = new List <WorkflowEvent>();

            foreach (var result in results)
            {
                WorkflowEvent workflow = new WorkflowEvent(result.OldState, result.NewState, result.Text, result.User, result.Now);
                list.Add(workflow);
            }
            return(list.ToArray());
        }