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));
}
}
}
}