Beispiel #1
0
        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);
        }
Beispiel #3
0
        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));
        }