public BerlinClockRows Build(Time time)
        {
            var timePart = ExtractTimePart(time);
            var amountOfTurnedOnLampsAtFirstRow  = timePart / FirstRowLampValue;
            var amountOfTurnedOffLampsAtFirstRow = FirstRowLampsAmount - amountOfTurnedOnLampsAtFirstRow;

            var amountOfTurnedOnLampsAtSecondRow  = (timePart - (amountOfTurnedOnLampsAtFirstRow * FirstRowLampValue)) / SecondRowLampValue;
            var amountOfTurnedOffLampsAtSecondRow = SecondRowLampsAmount - amountOfTurnedOnLampsAtSecondRow;

            return(new BerlinClockRows
            {
                FirstRow = _berlinClockRowRenderer.Render(new BerlinClockRendererRequest
                {
                    AmountOfTurnedOnLamps = amountOfTurnedOnLampsAtFirstRow,
                    AmountOfTurnedOffLamps = amountOfTurnedOffLampsAtFirstRow,
                    TurnedOnLampSign = TurnedOnLampSign,
                    AdditionalFormatting = FirstRowAdditionalFormatting
                }),
                SecondRow = _berlinClockRowRenderer.Render(new BerlinClockRendererRequest
                {
                    AmountOfTurnedOnLamps = amountOfTurnedOnLampsAtSecondRow,
                    AmountOfTurnedOffLamps = amountOfTurnedOffLampsAtSecondRow,
                    TurnedOnLampSign = TurnedOnLampSign
                })
            });
        }