public MicroServicesDataEventAction GetEventAction(IDataEvent eventInfo)
        {
            if (eventInfo == null)
            {
                throw new ArgumentNullException("eventInfo");
            }

            var itemAction       = eventInfo.Action;
            var workFlowStatus   = sitefinityDataEventProxy.GetPropertyValue <string>(eventInfo, Constants.ApprovalWorkflowState);
            var itemStatus       = sitefinityDataEventProxy.GetPropertyValue <string>(eventInfo, Constants.ItemStatus);
            var recycleBinAction = sitefinityDataEventProxy.GetPropertyValue <RecycleBinAction>(eventInfo, Constants.RecycleBinAction);

            if (itemAction == Constants.ItemActionDeleted || (workFlowStatus == Constants.WorkflowStatusUnpublished && recycleBinAction != RecycleBinAction.RestoreFromRecycleBin))
            {
                //Unpublished or deleted Check for this first
                return(MicroServicesDataEventAction.UnpublishedOrDeleted);
            }
            else if (workFlowStatus == Constants.WorkflowStatusPublished && itemStatus == Constants.ItemStatusLive)
            {
                //Published
                return(MicroServicesDataEventAction.PublishedOrUpdated);
            }
            else if (workFlowStatus == Constants.WorkflowStatusDraft && itemStatus == Constants.ItemStatusMaster)
            {
                return(MicroServicesDataEventAction.Draft);
            }

            return(MicroServicesDataEventAction.Ignored);
        }
Beispiel #2
0
        public void GetEventActionTest(MicroServicesDataEventAction expectedAction, string eventAction, string workflowState, RecycleBinAction recycleBinAction)
        {
            //Setup
            A.CallTo(() => fakeDataEvent.Action).Returns(eventAction);
            A.CallTo(() => fakeSitefinityDataEventProxy.GetPropertyValue <string>(fakeDataEvent, Constants.ApprovalWorkflowState)).Returns(workflowState);
            A.CallTo(() => fakeSitefinityDataEventProxy.GetPropertyValue <RecycleBinAction>(fakeDataEvent, Constants.RecycleBinAction)).Returns(recycleBinAction);
            A.CallTo(() => fakeSitefinityDataEventProxy.GetPropertyValue <string>(fakeDataEvent, Constants.ItemStatus)).Returns(Constants.ItemStatusLive);

            //Act
            var dataEventHandler = new DataEventActions(fakeSitefinityDataEventProxy);
            var result           = dataEventHandler.GetEventAction(fakeDataEvent);

            //Asserts
            result.Should().Be(expectedAction);
        }