private bool Rename(string newName)
{
var environmentModel = EnvironmentRepository.Instance.FindSingle(model => model.ID == EnvironmentId);
if(ResourceType == ResourceType.Folder)
{
var itemExists = null != _studioResourceRepository.FindItem(a => a.ResourceType == ResourceType.Folder && a.ResourcePath == GetRenamePath(ResourcePath, newName));
if ((Children.Count == 0) && itemExists)
{
EventPublishers.Aggregator.Publish(new DisplayMessageBoxMessage("Error Renaming Folder", "You are not allowed to Rename an empty folder to an existing folder name", MessageBoxImage.Warning));
return false;
}
_studioResourceRepository.RenameFolder(this, newName);
}
else
if(environmentModel != null)
{
var resourceModel = environmentModel.ResourceRepository.FindSingle(a => a.ID == 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));
}
if(ResourceType == ResourceType.Folder)
{
_studioResourceRepository.RenameFolder(this, newName);
}
else
{
_studioResourceRepository.RenameItem(this, newName);
}
RefreshName(newName);
if(isOpen)
{
EventPublishers.Aggregator.Publish(new AddWorkSurfaceMessage(resourceModel));
}
}
}
return true;
}