Dev2.Core.Tests.DeployNavigationViewModelTest.BuildExplorerItems C# (CSharp) Method

BuildExplorerItems() private method

private BuildExplorerItems ( IResourceRepository resourceRepository ) : StudioResourceRepository
resourceRepository IResourceRepository
return Dev2.AppResources.Repositories.StudioResourceRepository
        StudioResourceRepository BuildExplorerItems(IResourceRepository resourceRepository)
        {
            var resourceModels = resourceRepository.All();
            var localhostItemModel = new ExplorerItemModel { DisplayName = "localhost", EnvironmentId = Guid.Empty, ResourceType = ResourceType.Server };

            if(resourceModels != null)
            {
                foreach(var resourceModel in resourceModels)
                {
                    var resourceItemModel = new ExplorerItemModel { ResourceId = resourceModel.ID, ResourcePath = resourceModel.Category, EnvironmentId = Guid.Empty, DisplayName = resourceModel.ResourceName };
                    ResourceType correctTyping = ResourceType.WorkflowService;
                    switch(resourceModel.ResourceType)
                    {
                        case Studio.Core.AppResources.Enums.ResourceType.WorkflowService:
                            correctTyping = ResourceType.WorkflowService;
                            break;
                        case Studio.Core.AppResources.Enums.ResourceType.Service:
                            correctTyping = ResourceType.DbService;
                            break;
                        case Studio.Core.AppResources.Enums.ResourceType.Source:
                            correctTyping = ResourceType.WebSource;
                            break;
                    }
                    resourceItemModel.ResourceType = correctTyping;

                    var categoryItem = localhostItemModel.Children.FirstOrDefault(model => model.DisplayName == resourceModel.Category);
                    if(categoryItem == null)
                    {
                        categoryItem = new ExplorerItemModel { Parent = localhostItemModel, DisplayName = resourceModel.Category, EnvironmentId = Guid.Empty, ResourceType = ResourceType.Folder, ResourcePath = "" };
                        localhostItemModel.Children.Add(categoryItem);
                    }
                    resourceItemModel.Parent = categoryItem;
                    categoryItem.Children.Add(resourceItemModel);
                }
            }
            var studioResourceRepository = new StudioResourceRepository(localhostItemModel, _Invoke);
            var explorerResourceRepository = new Mock<IClientExplorerResourceRepository>().Object;
            studioResourceRepository.GetExplorerProxy = guid => explorerResourceRepository;
            return studioResourceRepository;
        }