Catrobat.IDE.Core.ViewModels.Editor.Formula.FormulaKeyboardViewModel.DeserializeFormulaKeyCollection C# (CSharp) Method

DeserializeFormulaKeyCollection() private static method

private static DeserializeFormulaKeyCollection ( string>.IEnumerable graph, FormulaKey>.ILookup localVariables, FormulaKey>.ILookup globalVariables ) : IEnumerable
graph string>.IEnumerable
localVariables FormulaKey>.ILookup
globalVariables FormulaKey>.ILookup
return IEnumerable
        private static IEnumerable<FormulaKey> DeserializeFormulaKeyCollection(
            IEnumerable<SerializableTuple<int, string>> graph, 
            ILookup<string, FormulaKey> localVariables, 
            ILookup<string, FormulaKey> globalVariables)
        {
            return graph == null ? null : graph.Select(g => (Tuple<int, string>) g).Select(g =>
            {
                var key = (FormulaEditorKey) g.Item1;
                switch (key)
                {
                    case FormulaEditorKey.LocalVariable: return localVariables[g.Item2].FirstOrDefault();
                    case FormulaEditorKey.GlobalVariable: return globalVariables[g.Item2].FirstOrDefault();
                    default: return new FormulaKey(key, null);
                }
            }).Where(data => data != null);
        }