public VirtualStudioViewModel(VirtualStudioWithArrangementDto virtualStudioDto) { ComponentRepository = new StudioComponentRepositoryViewModel(virtualStudioDto.ComponentRepository); foreach (var node in virtualStudioDto.ComponentNodes) { ComponentViewModel component; if (node.Component.IsPlaceholder) { component = new PlaceholderViewModel(node.Component); } else { component = ComponentRepository.Clients.First(c => c.Id == node.Component.Id); } ComponentNodes.Add(new ComponentNodeViewModel { Component = component, PositionX = node.X, PositionY = node.Y }); } foreach (var connection in virtualStudioDto.Connections) { var input = FindInputInComponentNodes(connection.InputComponentId, connection.InputId); var output = FindOutputInComponentNodes(connection.OutputComponentId, connection.OutputId); Connections.Add(new ConnectionViewModel(connection.Id, input, output, connection.State)); } }
public void Creates_the_ViewModel_from_dto() { var dto = new VirtualStudioWithArrangementDto() { ComponentRepository = new StudioComponentRepositoryDto { Clients = new List <StudioComponentDto> { new StudioComponentDto { Id = 5, IsPlaceholder = false, Outputs = new List <StudioComponentEndpointDto> { new StudioComponentEndpointDto { IOType = Shared.EndpointIOType.Output, Id = 1 } } } }, Placeholders = new List <StudioComponentDto> { new StudioComponentDto { Id = 6, IsPlaceholder = true, Inputs = new List <StudioComponentEndpointDto> { new StudioComponentEndpointDto { IOType = Shared.EndpointIOType.Input, Id = 1 } } } } }, ComponentNodes = new List <ComponentNodeDto> { new ComponentNodeDto { Component = new StudioComponentDto { Id = 5, IsPlaceholder = false, Outputs = new List <StudioComponentEndpointDto> { new StudioComponentEndpointDto { IOType = Shared.EndpointIOType.Output, Id = 1 } } } }, new ComponentNodeDto { Component = new StudioComponentDto { Id = 7, IsPlaceholder = true, Inputs = new List <StudioComponentEndpointDto> { new StudioComponentEndpointDto { IOType = Shared.EndpointIOType.Input, Id = 1 } } } }, }, Connections = new List <StudioConnectionDto> { new StudioConnectionDto { Id = 1, InputComponentId = 7, InputId = 1, OutputComponentId = 5, OutputId = 1, State = Shared.ConnectionState.Connected } } }; var vm = new VirtualStudioViewModel(dto); Assert.AreEqual(vm.ComponentNodes[0].Component.Outputs[0], vm.Connections[0].Output); Assert.AreEqual(vm.ComponentRepository.Clients[0], vm.ComponentNodes[0].Component); Assert.AreNotEqual(vm.ComponentRepository.Placeholders[0], vm.ComponentNodes[1].Component); }
private VirtualStudioViewModel CreateTestViewModel() { var dto = new VirtualStudioWithArrangementDto() { ComponentRepository = new StudioComponentRepositoryDto { Clients = new List <StudioComponentDto> { new StudioComponentDto { Id = 4, IsPlaceholder = false, Inputs = new List <StudioComponentEndpointDto> { new StudioComponentEndpointDto { IOType = Shared.EndpointIOType.Input, Id = 1 } } }, new StudioComponentDto { Id = 5, IsPlaceholder = false, Outputs = new List <StudioComponentEndpointDto> { new StudioComponentEndpointDto { IOType = Shared.EndpointIOType.Output, Id = 1 } } } }, Placeholders = new List <StudioComponentDto> { new StudioComponentDto { Id = 6, IsPlaceholder = true, Inputs = new List <StudioComponentEndpointDto> { new StudioComponentEndpointDto { IOType = Shared.EndpointIOType.Input, Id = 1 } } }, new StudioComponentDto { Id = 8, IsPlaceholder = true, Outputs = new List <StudioComponentEndpointDto> { new StudioComponentEndpointDto { IOType = Shared.EndpointIOType.Output, Id = 1 } } } } }, ComponentNodes = new List <ComponentNodeDto> { new ComponentNodeDto { Component = new StudioComponentDto { Id = 7, IsPlaceholder = true, Inputs = new List <StudioComponentEndpointDto> { new StudioComponentEndpointDto { IOType = Shared.EndpointIOType.Input, Id = 1 } } }, }, new ComponentNodeDto { Component = new StudioComponentDto { Id = 5, IsPlaceholder = false, Outputs = new List <StudioComponentEndpointDto> { new StudioComponentEndpointDto { IOType = Shared.EndpointIOType.Output, Id = 1 } } } } }, Connections = new List <StudioConnectionDto> { new StudioConnectionDto { Id = 1, InputComponentId = 7, InputId = 1, OutputComponentId = 5, OutputId = 1, State = Shared.ConnectionState.Connected } } }; return(new VirtualStudioViewModel(dto)); }