public static FittingPreset CreateFrom(GenxyString preset) { var dictionary = preset.ToDictionary(); var name = dictionary.GetOrDefault <string>(k.name); var robot = EntityDefault.Get(dictionary.GetOrDefault <int>(k.robot)); var modules = dictionary.GetOrDefault <IDictionary <string, object> >(k.modules, () => new Dictionary <string, object>()).Select(kvp => ModuleInfo.CreateFrom((IDictionary <string, object>)kvp.Value)); return(new FittingPreset(name, robot, modules)); }