Beispiel #1
0
        public static SharedMetadata GetMetadata(SharedEntryType type, string data, out string cleaned)
        {
            switch (type)
            {
            case SharedEntryType.CarSetup:
                var r = new SharedMetadata();
                var s = data.Split('\n');
                foreach (var k in s.Where(x => x.StartsWith(IniMetadataPrefix)).Select(l => l.Split(new[] { ':' }, 3)).Where(k => k.Length == 3))
                {
                    r[k[1]] = Storage.Decode(k[2]);
                }
                cleaned = s.Where(x => !x.StartsWith(IniMetadataPrefix)).JoinToString('\n');
                return(r);

            default:
                throw new NotSupportedException();
            }
        }
Beispiel #2
0
        public static string SetMetadata(SharedEntryType type, string data, SharedMetadata metadata)
        {
            switch (type)
            {
            case SharedEntryType.CarSetup:
                var s = new StringBuilder();
                foreach (var pair in metadata.Where(x => x.Value != null))
                {
                    if (pair.Key.Contains(@":"))
                    {
                        throw new Exception(@"Invalid key");
                    }
                    s.Append(IniMetadataPrefix + pair.Key + @":" + Storage.Encode(pair.Value) + '\n');
                }
                return(s + data);

            default:
                throw new NotSupportedException();
            }
        }