/// <inheritdoc />
        public EZLayout PrepareEZLayout(ErgodoxLayout ergodoxLayout)
        {
            Logger.TraceMethod();

            var      ezLayoutMaker = new EZLayoutMaker();
            EZLayout ezLayout      = ezLayoutMaker.PrepareEZLayout(ergodoxLayout);

            return(ezLayout);
        }
        private static EZLayout CreateLayers(int layerNumber)
        {
            var keyboardLayout = new EZLayout();

            for (int i = 0; i < layerNumber; i++)
            {
                keyboardLayout.EZLayers.Add(new EZLayer {
                    Index  = i,
                    EZKeys = new List <EZKey> {
                        new EZKey()
                    }
                });
            }

            return(keyboardLayout);
        }
        public void LoadCompleteLayout(int numberOfKey, int numberOfLayer, bool noLayoutAvailable)
        {
            //Arrange
            var layoutTemplate = new List <KeyTemplate>();
            var ezKeys         = new List <EZKey>();

            for (int i = 0; i < numberOfKey; i++)
            {
                layoutTemplate.Add(new KeyTemplate(i, i, 54, 81));
                ezKeys.Add(new EZKey());
            }

            var keyboardLayout = new EZLayout();

            for (int i = 0; i < numberOfLayer; i++)
            {
                keyboardLayout.EZLayers.Add(new EZLayer {
                    Index  = i,
                    EZKeys = new List <EZKey>(ezKeys)
                });
            }

            var mockWindowService = new Mock <IWindowService>();
            var mockLayoutService = new Mock <ILayoutService>();

            mockLayoutService.Setup(l => l.SupportsGeometry(null)).Returns(true);
            mockLayoutService.Setup(l => l.GetLayoutTemplate(null)).ReturnsAsync(layoutTemplate).Verifiable();
            var mockSettingsService = new Mock <ISettingsService>();

            mockSettingsService.SetupProperty(s => s.EZLayout, keyboardLayout);

            //Act
            var displayLayoutViewModel = new DisplayLayoutViewModel(mockWindowService.Object, mockLayoutService.Object, mockSettingsService.Object);

            //Assert
            Assert.Equal(noLayoutAvailable, displayLayoutViewModel.NoLayoutAvailable);
            mockLayoutService.Verify(l => l.GetLayoutTemplate(null), Times.AtMost(numberOfLayer));
            Assert.Equal(numberOfKey, displayLayoutViewModel.CurrentLayoutTemplate.Count);
        }
        public EZLayout PrepareEZLayout(ErgodoxLayout ergodoxLayout)
        {
            Logger.TraceMethod();
            Logger.DebugInputParam(nameof(ergodoxLayout), ergodoxLayout);

            var ezLayout = new EZLayout {
                HashId = ergodoxLayout.HashId, Name = ergodoxLayout.Title, Geometry = ergodoxLayout.Geometry
            };

            var ergodoxLayers = ergodoxLayout.Revision.Layers ?? ergodoxLayout.Revision.Layers;

            if (ergodoxLayers?.Any() != null)
            {
                foreach (var ergodoxLayer in ergodoxLayers)
                {
                    var ezLayer = PrepareEZLayer(ergodoxLayer);
                    ezLayout.EZLayers.Add(ezLayer);
                }
            }

            Logger.DebugOutputParam(nameof(ezLayout), ezLayout);

            return(ezLayout);
        }