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

Rename() private method

private Rename ( string newName ) : bool
newName string
return bool
        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;
        }