Dev2.Models.ExplorerItemModel.Rollback C# (CSharp) Method

Rollback() private method

private Rollback ( ) : void
return void
        private void Rollback()
        {
            IPopupController popup = CustomContainer.Get<IPopupController>();
            var res = popup.ShowRollbackVersionMessage(string.Format("{0} (v.{1})", Parent.DisplayName, VersionInfo.VersionNumber));

            if(res == MessageBoxResult.Yes)
            {
                var environmentModel = EnvironmentRepository.Instance.FindSingle(model => model.ID == EnvironmentId);
                if(environmentModel == null)
                {
                    return;
                }

                IContextualResourceModel resourceModel = environmentModel.ResourceRepository
                                                                         .FindSingle(model => model.ID == Parent.ResourceId)
                                                                         as IContextualResourceModel;
                if(resourceModel != null)
                {
                    IMainViewModel mainViewModel = CustomContainer.Get<IMainViewModel>();
                    var isOpen = mainViewModel.IsWorkFlowOpened(resourceModel);
                    if(isOpen)
                    {
                        EventPublishers.Aggregator.Publish(new RemoveResourceAndCloseTabMessage(resourceModel, true));
                    }
                    _studioResourceRepository.RollbackTo(VersionInfo, EnvironmentId);

                    if(isOpen)
                    {
                        EventPublishers.Aggregator.Publish(new AddWorkSurfaceMessage(resourceModel));
                    }
                }
            }
        }