Ejemplo n.º 1
0
        private IEnumerable <(string name, IPresetAware oldValue, Lamp newValue)> GetPresetValuesForLamps(Preset preset)
        {
            Lamp defaultLamp = new Lamp()
            {
                Strenght = 0
            };
            var lamps = preset.LampValues.Keys
                        .Where(i => groupService.IsNameExisting(i))
                        .SelectMany(i => groupService.GetLampsInGroup(i).Select(j => (name: j, value: preset.LampValues[i])))
                        .Union(preset.LampValues.Keys.Where(i => lightService.IsNameExisting(i)).Select(j => (name: j, value: preset.LampValues[j])))
                        .Select(i => (name: i.name, oldValue: lightService.GetTransitionable(i.name), newValue: i.value));

            lamps = lamps
                    .Union(lightService.GetLampsNotNamed(lamps.Select(i => i.name))
                           .Select(i => (i, lightService.GetTransitionable(i), defaultLamp))
                           ).ToList();

            lamps = lamps
                    .Select(i => i.name)
                    .Distinct()
                    .Select(i => lamps.FirstOrDefault(j => j.name == i))
                    .ToList();
            return(lamps);
        }