Esempio n. 1
0
        public static Dictionary <string, object> GetYamlHeader(string filePath)
        {
            if (!File.Exists(filePath))
            {
                throw new FileNotFoundException($"File path {filePath} not exists when parsing yaml header.");
            }

            var markdown = File.ReadAllText(filePath);

            var match = YamlHeaderRegex.Match(markdown);

            if (match.Length == 0)
            {
                return(null);
            }

            // ---
            // a: b
            // ---
            var value = match.Groups[1].Value;

            try
            {
                using (StringReader reader = new StringReader(value))
                {
                    return(YamlDeserializer.Deserialize <Dictionary <string, object> >(reader));
                }
            }
            catch (Exception)
            {
                Console.WriteLine();
                return(null);
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Deserialize
 /// </summary>
 /// <typeparam name="TypeEntity"></typeparam>
 /// <param name="content"></param>
 /// <returns></returns>
 public TypeEntity Deserialize <TypeEntity>(string content)
 {
     if (_deserializer == null)
     {
         _deserializer = new YamlDotNet.Serialization.Deserializer();
     }
     return(_deserializer.Deserialize <TypeEntity>(content));
 }
Esempio n. 3
0
        public DockerComposeFileConfig ParseDockerComposeString(string dockerComposeString)
        {
            var deserializer  = new YamlDotNet.Serialization.Deserializer();
            var dict          = deserializer.Deserialize <Dictionary <object, object> >(dockerComposeString);
            var dockerCompose = new DockerComposeFileConfig {
                Version = (string)dict["version"]
            };

            foreach (var(key, value) in (Dictionary <object, object>)dict["services"])
            {
                var composeServiceDefinition = new ComposeServiceDefinition {
                    Name = (string)key
                };

                var s = (Dictionary <object, object>)value;

                ResolveIsolation(s, composeServiceDefinition);
                ResolveImage(s, composeServiceDefinition);
                ResolvePorts(s, composeServiceDefinition);
                ResolveHealthCheck(s, composeServiceDefinition);
                ResolveVolumes(s, composeServiceDefinition);
                ResolveDependsOn(s, composeServiceDefinition);
                ResolveLabels(s, composeServiceDefinition);

                dockerCompose.ServiceDefinitions.Add(composeServiceDefinition);
            }

            return(dockerCompose);
        }
Esempio n. 4
0
        private void ImportYaml(ImportFile file)
        {
            if (file.Imported)
            {
                return;
            }

            var deserializer = new YamlDotNet.Serialization.Deserializer();

            using (var reader = new StreamReader(file.Filename))
            {
                var yaml = deserializer.Deserialize(reader) as Dictionary <object, object>;
                if (yaml.Keys.Count != 1)
                {
                    throw new ImportException($"{file.Filename}: invalid yaml format");
                }

                var typeName = yaml.Keys.First() as string;
                if (typeName == null)
                {
                    throw new ImportException($"{file.Filename}: invalid yaml format");
                }

                if (!_importersByType.TryGetValue(typeName, out var importer))
                {
                    throw new ImportException($"{file.Filename}: not importer defined for type {typeName}");
                }

                file.Importer = importer;
            }
        }
Esempio n. 5
0
        private PostViewModel ParseFile(string filename)
        {
            var path = Path.Combine(_root, filename);

            if (!File.Exists(path))
            {
                return(null);
            }

            var text   = File.ReadAllText(path);
            var parsed = ParseText(text);

            if (parsed == null)
            {
                return(null);
            }

            var metadata = GetMetadata(parsed.Item1).ToLookup(x => x.Key, x => x.Value);
            var content  = _markdown.Transform(parsed.Item2);
            var comments = _yaml.Deserialize <List <Comment> >(new StringReader(parsed.Item3)) ?? new List <Comment>();

            var model = new PostViewModel
            {
                Title          = metadata["title"].FirstOrDefault(),
                Slug           = filename.Replace(".markdown", string.Empty),
                Content        = content,
                Comments       = comments,
                PublishedAtCst = DateTime.Parse(metadata["published"].FirstOrDefault() ?? DateTime.MaxValue.ToString(CultureInfo.InvariantCulture)),
                FileName       = filename
            };

            return(model);
        }
Esempio n. 6
0
        protected override void On活性化()
        {
            using (Log.Block(FDKUtilities.現在のメソッド名))
            {
                var 設定ファイルパス = new VariablePath(@"$(System)images\演奏\チップ光.yaml");

                var yaml         = File.ReadAllText(設定ファイルパス.数なしパス);
                var deserializer = new YamlDotNet.Serialization.Deserializer();
                var yamlMap      = deserializer.Deserialize <YAMLマップ>(yaml);

                this._放射光の矩形リスト = new Dictionary <表示レーン種別, RectangleF>();
                foreach (var kvp in yamlMap.矩形リスト)
                {
                    if (4 == kvp.Value.Length)
                    {
                        this._放射光の矩形リスト[kvp.Key] = new RectangleF(kvp.Value[0], kvp.Value[1], kvp.Value[2], kvp.Value[3]);
                    }
                }

                this._レーンtoステータス = new Dictionary <表示レーン種別, 表示レーンステータス>()
                {
                    { 表示レーン種別.Unknown, new 表示レーンステータス(表示レーン種別.Unknown) },
                    { 表示レーン種別.LeftCymbal, new 表示レーンステータス(表示レーン種別.LeftCymbal) },
                    { 表示レーン種別.HiHat, new 表示レーンステータス(表示レーン種別.HiHat) },
                    { 表示レーン種別.Foot, new 表示レーンステータス(表示レーン種別.Foot) },
                    { 表示レーン種別.Snare, new 表示レーンステータス(表示レーン種別.Snare) },
                    { 表示レーン種別.Bass, new 表示レーンステータス(表示レーン種別.Bass) },
                    { 表示レーン種別.Tom1, new 表示レーンステータス(表示レーン種別.Tom1) },
                    { 表示レーン種別.Tom2, new 表示レーンステータス(表示レーン種別.Tom2) },
                    { 表示レーン種別.Tom3, new 表示レーンステータス(表示レーン種別.Tom3) },
                    { 表示レーン種別.RightCymbal, new 表示レーンステータス(表示レーン種別.RightCymbal) },
                };
            }
        }
Esempio n. 7
0
        public static List <Materials> ReadMaterialsFile()
        {
            string strBasePath = Application.StartupPath;

            var deserializer = new YamlDotNet.Serialization.Deserializer();

            List <Materials> lstMaterials = new List <Materials>();


            using (var sr = new StreamReader(strBasePath + @"\SDE\FSD\typeMaterials.yaml", Encoding.UTF8))
            {
                //YamlStream ys = new YamlStream();
                //ys.Load(sr);

                Dictionary <string, Materials> target = deserializer.Deserialize <Dictionary <string, Materials> >(sr);
                foreach (string item in target.Keys)
                {
                    Materials matItem = target[item];
                    matItem.TypeID = item;
                    lstMaterials.Add(matItem);
                }
                //foreach(object item in target)
                //strContents = sr.ReadToEnd();
            }
            //Environment.
            return(lstMaterials);
        }
        static void Main(string[] args)
        {
            var configinput = File.ReadAllText("configuration.yaml");

            var deserializer = new YamlDotNet.Serialization.Deserializer();

            configuration = deserializer.Deserialize <Configuration.BaseConfiguration>(configinput);

            Console.WriteLine(configuration.startup_message);
            Console.WriteLine(configuration.hass.uniqueid_base_prefix);
            Console.WriteLine(configuration.mqtt.broker);

            SendComponentConfiguration(configuration.mqtt);
            SendTestMessage(configuration.mqtt);
            _timer          = new System.Timers.Timer(30 * 1000);
            _timer.Elapsed += _timer_Elapsed;
            _timer.Start();

            //SendComponentDelete(configuration.mqtt);

            Console.WriteLine("PRESS [ANY KEY] TO QUIT");
            Console.ReadKey();

            Console.WriteLine("--done--");
        }
Esempio n. 9
0
        // 生成と終了


        public 画像フォント(VariablePath 文字盤の画像ファイルパス, VariablePath 文字盤設定ファイルパス, float 文字幅補正dpx = 0f, float 透明度 = 1f)
        {
            this.文字幅補正dpx = 文字幅補正dpx;
            this.透明度      = 透明度;

            // 文字盤を生成する。
            this._文字盤 = new 画像(文字盤の画像ファイルパス);

            // 設定ファイルを読み込んで、矩形リストを生成する。
            {
                // yaml ファイルを読み込む。
                var yaml         = File.ReadAllText(文字盤設定ファイルパス.数なしパス);
                var deserializer = new YamlDotNet.Serialization.Deserializer();
                var yamlMap      = deserializer.Deserialize <YAMLマップ>(yaml);

                // 内容から矩形リストを作成。
                this._矩形リスト = new Dictionary <string, RectangleF>();
                foreach (var kvp in yamlMap.矩形リスト)
                {
                    if (4 == kvp.Value.Length)
                    {
                        this._矩形リスト[kvp.Key] = new RectangleF(kvp.Value[0], kvp.Value[1], kvp.Value[2], kvp.Value[3]);
                    }
                }
            }
        }
        public void Deserialization()
        {
            var dese = new YamlDotNet.Serialization.Deserializer();
            var obj  = dese.Deserialize <ProgramDefinition>(program);

            Assert.NotNull(obj);
        }
Esempio n. 11
0
        public MetaArk()
        {
            instance = this;
            rnd = new Random();

            try
            {
                var input = new StreamReader("MetaArk.yaml");
                var yaml = new YamlDotNet.Serialization.Deserializer();
                mConfig = yaml.Deserialize<Config>(input);
                mClient = new MongoDB.Driver.MongoClient(mConfig.connectionString);
                Console.WriteLine("MetaArk configuration loaded.");
            }
            catch (Exception e)
            {
                Console.WriteLine("Configuration failed.  MetaArk Aborting\n{0}", e.ToString());
                return; // Hooks perform default action
            }

            OnStructureDamageEvent += delegate (object sender, float damage)
            {
                var Database = mClient.GetDatabase("MetaArk");
                var collection = Database.GetCollection<MongoDB.Bson.BsonDocument>("config");
                var filter = Builders<BsonDocument>.Filter.Eq("key", "StructureDamage");
                var document = collection.Find(filter).FirstAsync().Result;

                bool doDamage = document.GetElement("value").Value.AsBoolean;

                if (doDamage)
                    return (float) rnd.NextDouble()*100;
                else
                    return 0;
            };
        }
Esempio n. 12
0
        // convert string/file to YAML object
        public static void Test()
        {
            using (System.IO.FileStream fs = System.IO.File.OpenRead(@"d:\username\Documents\Visual Studio 2017\Projects\BlueMine\BlueMine\Code\en.yml"))
            {
                //using (System.IO.TextReader r = new System.IO.StringReader(@""))
                using (System.IO.TextReader r = new System.IO.StreamReader(fs, System.Text.Encoding.UTF8))
                {
                    YamlDotNet.Serialization.Deserializer deserializer =
                        new YamlDotNet.Serialization.Deserializer();

                    object yamlObject = deserializer.Deserialize(r);

                    Newtonsoft.Json.JsonSerializer serializer = new Newtonsoft.Json.JsonSerializer();
                    serializer.Formatting = Newtonsoft.Json.Formatting.Indented;

                    // serializer.Serialize(Console.Out, yamlObject);

                    using (System.IO.Stream ws = System.IO.File.OpenWrite(@"d:\username\Documents\Visual Studio 2017\Projects\BlueMine\BlueMine\Code\en.json"))
                    {
                        using (System.IO.TextWriter sw = new System.IO.StreamWriter(ws, System.Text.Encoding.UTF8))
                        {
                            serializer.Serialize(sw, yamlObject);
                        } // End using sw
                    }     // End Using ws
                }         // End Using r
            }             // End Using fr
        }                 // End Sub Test
Esempio n. 13
0
        protected override void On活性化()
        {
            using (Log.Block(FDKUtilities.現在のメソッド名))
            {
                {
                    var 設定ファイルパス = new VariablePath(@"$(System)images\演奏\ドラムチップ.yaml");

                    var yaml         = File.ReadAllText(設定ファイルパス.数なしパス);
                    var deserializer = new YamlDotNet.Serialization.Deserializer();
                    var yamlMap      = deserializer.Deserialize <YAMLマップ_ドラムチップ>(yaml);

                    this._ドラムチップの縦方向中央位置 = yamlMap.縦方向中央位置;
                    this._ドラムチップの矩形リスト   = new Dictionary <string, RectangleF>();
                    foreach (var kvp in yamlMap.矩形リスト)
                    {
                        if (4 == kvp.Value.Length)
                        {
                            this._ドラムチップの矩形リスト[kvp.Key] = new RectangleF(kvp.Value[0], kvp.Value[1], kvp.Value[2], kvp.Value[3]);
                        }
                    }
                }

                this._小節線色       = new SolidColorBrush(グラフィックデバイス.Instance.D2DDeviceContext, Color.White);
                this._拍線色        = new SolidColorBrush(グラフィックデバイス.Instance.D2DDeviceContext, Color.LightGray);
                this._ドラムチップアニメ  = new LoopCounter(0, 200, 3);
                this._プレイヤー名表示.前 = App.ユーザ管理.ログオン中のユーザ.ユーザ名;
                レーンフレーム.レーン配置を設定する(App.ユーザ管理.ログオン中のユーザ.レーン配置);
                //this._フェードインカウンタ = new Counter( 0, 100, 10 );

                //this._演奏状態を初期化する();

                this._ビュアーモード時にドラムサウンドを発声する = true;
                this.現在のフェーズ = フェーズ.クリア;
            }
        }
        protected override void On活性化()
        {
            using (Log.Block(FDKUtilities.現在のメソッド名))
            {
                var 設定ファイルパス = new VariablePath(@"$(System)images\演奏\ドラムキットとヒットバー.yaml");

                var yaml         = File.ReadAllText(設定ファイルパス.数なしパス);
                var deserializer = new YamlDotNet.Serialization.Deserializer();
                var yamlMap      = deserializer.Deserialize <YAMLマップ>(yaml);

                this._パーツ画像の矩形リスト = new Dictionary <パーツ, RectangleF>();
                foreach (var kvp in yamlMap.矩形リスト)
                {
                    if (4 == kvp.Value.Length)
                    {
                        this._パーツ画像の矩形リスト[kvp.Key] = new RectangleF(kvp.Value[0], kvp.Value[1], kvp.Value[2], kvp.Value[3]);
                    }
                }

                this._パーツ画像の中心位置 = new Dictionary <パーツ, (float X, float Y)>();
                foreach (var kvp in yamlMap.中心位置)
                {
                    if (2 == kvp.Value.Length)
                    {
                        this._パーツ画像の中心位置[kvp.Key] = (kvp.Value[0], kvp.Value[1]);
                    }
                }

                this._振動パラメータ = new Dictionary <表示レーン種別, 振動パラメータ>();
                foreach (表示レーン種別 lane in Enum.GetValues(typeof(表示レーン種別)))
                {
                    this._振動パラメータ[lane] = new 振動パラメータ();
                }
            }
        }
Esempio n. 15
0
        public bool Run()
        {
            Console.WriteLine("======================= ScratchPad =======================\n");
            using (var file = new StreamReader(filename))
            {
                ScratchControl scratch = null;

                if (filename.ToUpper().Contains(".YML"))
                {
                    Console.WriteLine("Reading Scratch config in YAML from " + filename);
                    var inputStream     = new StringReader(file.ReadToEnd());
                    var ymlDeserializer = new YamlDotNet.Serialization.Deserializer();
                    try
                    {
                        scratch = ymlDeserializer.Deserialize <ScratchControl>(inputStream);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Caught exception " + ex);
                        return(true);
                    }
                }
                if (filename.ToUpper().Contains(".JSON"))
                {
                    Console.WriteLine("Reading Scratch config in JSON from " + filename);
                    scratch = JsonConvert.DeserializeObject <ScratchControl>(file.ReadToEnd());
                }
                ScratchLogic.SuperDebug(scratch);
                ScratchLogic.Titler();
            }

            return(false);
        }
        protected override void On活性化()
        {
            using (Log.Block(FDKUtilities.現在のメソッド名))
            {
                var 設定ファイルパス = new VariablePath(@"$(System)images\演奏\レーンフラッシュBASIC.yaml");

                var yaml         = File.ReadAllText(設定ファイルパス.数なしパス);
                var deserializer = new YamlDotNet.Serialization.Deserializer();
                var yamlMap      = deserializer.Deserialize <YAMLマップ>(yaml);

                this._レーンフラッシュの矩形リスト = new Dictionary <string, RectangleF>();
                foreach (var kvp in yamlMap.矩形リスト)
                {
                    if (4 == kvp.Value.Length)
                    {
                        this._レーンフラッシュの矩形リスト[kvp.Key] = new RectangleF(kvp.Value[0], kvp.Value[1], kvp.Value[2], kvp.Value[3]);
                    }
                }

                this._レーンtoレーンContext = new Dictionary <表示レーン種別, レーンContext>();

                foreach (表示レーン種別 lane in Enum.GetValues(typeof(表示レーン種別)))
                {
                    this._レーンtoレーンContext.Add(lane, new レーンContext()
                    {
                        開始位置dpx = new Vector2(
                            x: レーンフレーム.領域.X + レーンフレーム.現在のレーン配置.表示レーンの左端位置dpx[lane],
                            y: レーンフレーム.領域.Bottom),
                        転送元矩形   = this._レーンフラッシュの矩形リスト[lane.ToString()],
                        アニメカウンタ = new Counter(),
                    });
                }
            }
        }
Esempio n. 17
0
        // 生成と終了


        public コンボ表示()
        {
            using (Log.Block(FDKUtilities.現在のメソッド名))
            {
                this._コンボ文字画像 = new 画像(@"$(System)images\演奏\コンボ文字.png");

                this._前回表示した値  = 0;
                this._前回表示した数字 = "    ";

                var 設定ファイルパス = new VariablePath(@"$(System)images\演奏\コンボ文字.yaml");

                var yaml         = File.ReadAllText(設定ファイルパス.数なしパス);
                var deserializer = new YamlDotNet.Serialization.Deserializer();
                var yamlMap      = deserializer.Deserialize <YAMLマップ>(yaml);

                this._コンボ文字の矩形リスト = new Dictionary <string, RectangleF>();
                foreach (var kvp in yamlMap.矩形リスト)
                {
                    if (4 == kvp.Value.Length)
                    {
                        this._コンボ文字の矩形リスト[kvp.Key] = new RectangleF(kvp.Value[0], kvp.Value[1], kvp.Value[2], kvp.Value[3]);
                    }
                }

                this._各桁のアニメ = new 各桁のアニメ[4];
                for (int i = 0; i < this._各桁のアニメ.Length; i++)
                {
                    this._各桁のアニメ[i] = new 各桁のアニメ();
                }

                this._百ごとのアニメ = new 百ごとのアニメ();
            }
        }
Esempio n. 18
0
        public IEnumerable <WhiteBoxTest> ParseWhiteBoxTests(TextReader reader)
        {
            var deserializer = new YamlDotNet.Serialization.Deserializer();
            var result       = deserializer.Deserialize(reader);

            foreach (var kv in (Dictionary <object, dynamic>)result)
            {
                string id = (string)kv.Key;

                var stepsObj = (List <object>)kv.Value;
                var steps    = new List <WhiteBoxStep>();

                var latin = (string)stepsObj[0];

                foreach (var stepObj in stepsObj.Skip(1))
                {
                    var    parts          = ((string)stepObj).Split(new string[] { "=>" }, StringSplitOptions.None);
                    string phono          = parts[0].Trim();
                    var    graphicalForms = parts[1].Split(',').Select(g => g.Trim()).ToArray();

                    steps.Add(new WhiteBoxStep(phono, graphicalForms));
                }

                yield return(new WhiteBoxTest(latin, steps.ToArray()));
            }
        }
Esempio n. 19
0
        public async void ShouldCreateSubsequentlAPITemplateResourceFromCreatorConfigWithAlternateTitle()
        {
            // arrange
            APITemplateCreator apiTemplateCreator = APITemplateCreatorFactory.GenerateAPITemplateCreator();
            CreatorConfig      creatorConfig      = new CreatorConfig()
            {
                apis = new List <APIConfig>()
            };
            APIConfig api = new APIConfig()
            {
                name        = "name",
                displayName = "Swagger Petstore (alternate title)",
                openApiSpec = "https://petstore.swagger.io/v2/swagger.json",
            };

            creatorConfig.apis.Add(api);

            // act
            APITemplateResource apiTemplateResource = await apiTemplateCreator.CreateAPITemplateResourceAsync(api, true, true);

            // assert
            Assert.Equal($"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{api.name}')]", apiTemplateResource.Name);
            Assert.Equal("swagger-json", apiTemplateResource.Properties.Format);

            // check alternate title has been specified in the embedded YAML or JSON definition

            var yaml         = apiTemplateResource.Properties.Value;
            var deserializer = new YamlDotNet.Serialization.Deserializer();
            var definition   = deserializer.Deserialize <Dictionary <string, object> >(yaml);
            var info         = (Dictionary <object, object>)definition["info"];

            Assert.Equal("Swagger Petstore (alternate title)", info["title"]);
        }
        // 生成と終了


        /// <summary>
        ///		コンストラクタ。
        ///		指定された画像ファイルと矩形リストファイルを使って、テクスチャフォントを生成する。
        /// </summary>
        public テクスチャフォント(VariablePath 文字盤の画像ファイルパス, VariablePath 文字盤設定ファイルパス)
        {
            this._文字盤 = new テクスチャ(文字盤の画像ファイルパス);

            // 設定ファイルを読み込んで、矩形リストを生成する。
            {
                // yaml ファイルを読み込む。
                var yaml         = File.ReadAllText(文字盤設定ファイルパス.数なしパス);
                var deserializer = new YamlDotNet.Serialization.Deserializer();
                var yamlMap      = deserializer.Deserialize <YAMLマップ>(yaml);

                // 内容から矩形リストを作成。
                this._文字盤の矩形リスト = new Dictionary <string, RectangleF>();
                foreach (var kvp in yamlMap.矩形リスト)
                {
                    if (4 == kvp.Value.Length)
                    {
                        this._文字盤の矩形リスト[kvp.Key] = new RectangleF(kvp.Value[0], kvp.Value[1], kvp.Value[2], kvp.Value[3]);
                    }
                    else
                    {
                        Log.ERROR($"矩形リストの書式が不正です。[{文字盤設定ファイルパス.変数付きパス}]");
                    }
                }
            }
        }
Esempio n. 21
0
        private static T GetConfiguration <T>()
        {
            var content      = File.ReadAllText("appsettings.yml");
            var deserializer = new YamlDotNet.Serialization.Deserializer();

            return(deserializer.Deserialize <T>(content));
        }
Esempio n. 22
0
        public void Initialize(int scriptId, IPlatformDatabase database)
        {
            try
            {
                var script = database.Scripts.First(x => x.Id == scriptId);

                if (!string.IsNullOrEmpty(script?.Name))
                {
                    var deserializer = new YamlDotNet.Serialization.Deserializer();
                    using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(script.Instruction)))
                        using (var reader = new StreamReader(stream))
                        {
                            var behavior = deserializer.Deserialize <Behavior>(reader.ReadToEnd());

                            if (BehaviorValidator.IsValid(behavior))
                            {
                                _behavior = behavior;
                            }
                        }
                }
            }
            catch (Exception ex)
            {
                _logger.LogCritical(ex, $"Cannot build behavior. ScriptId: {scriptId}.");
                throw;
            }
        }
Esempio n. 23
0
        // 生成と終了


        public static v002_システム設定 読み込む(VariablePath path)
        {
            using var _ = new LogBlock(Log.現在のメソッド名);


            // (1) 読み込み or 新規作成

            var yaml         = File.ReadAllText(path.数なしパス);
            var deserializer = new YamlDotNet.Serialization.Deserializer();
            var config       = deserializer.Deserialize <v002_システム設定>(yaml);

            if (2 != config.Version)
            {
                throw new Exception("バージョンが違います。");
            }


            // (2) 読み込み後の処理

            // パスの指定がなければ、とりあえず exe のあるフォルダを検索対象にする。
            if (0 == config.曲検索フォルダ.Count)
            {
                config.曲検索フォルダ.Add(@"$(Exe)");
            }

            return(config);
        }
Esempio n. 24
0
        public async Task <ActionResult <GetAppVersionResponse> > GetVersion(string appVersion = "latest")
        {
            try
            {
                var ghRelease = appVersion == "latest"
                    ? "https://github.com/larsbaunwall/plodo/releases/latest/download"
                    : $"https://github.com/larsbaunwall/plodo/releases/download/{appVersion}";


                using var client = new HttpClient();
                var winRelease =
                    await client.GetStringAsync(
                        $"{ghRelease}/latest.yml");

                var macRelease =
                    await client.GetStringAsync(
                        $"{ghRelease}/latest-mac.yml");

                var yamlSerializer = new YamlDotNet.Serialization.Deserializer();
                var win            = yamlSerializer.Deserialize <Dictionary <string, object> >(winRelease);
                var mac            = yamlSerializer.Deserialize <Dictionary <string, object> >(macRelease);

                var macDmg = ((List <object>)mac["files"])
                             .Cast <Dictionary <object, object> >()
                             .Select(x => x["url"].ToString())
                             .FirstOrDefault(url => url?.EndsWith("dmg") ?? false);

                return(new GetAppVersionResponse
                {
                    Version = win["version"].ToString(),
                    Windows = new GetAppVersionResponse.Asset
                    {
                        Path = $"{ghRelease}/{win["path"]}",
                        ReleaseDate = DateTimeOffset.Parse(win["releaseDate"].ToString())
                    },
                    MacOS = new GetAppVersionResponse.Asset
                    {
                        Path = $"{ghRelease}/{macDmg}",
                        ReleaseDate = DateTimeOffset.Parse(mac["releaseDate"].ToString())
                    }
                });
            }
            catch (HttpRequestException e)
            {
                throw new NotFoundException($"App version '{appVersion}' not found.", e.InnerException);
            }
        }
Esempio n. 25
0
 public T Deserialize <T>(string content) where T : class, new()
 {
     using (var stringReader = new StringReader(content))
     {
         var serializer = new YamlDotNet.Serialization.Deserializer();
         return(serializer.Deserialize <T>(stringReader));
     }
 }
Esempio n. 26
0
        public static T LoadYaml <T>(string path)
        {
            var text = File.ReadAllText(path);
            var yaml = new YamlDotNet.Serialization.Deserializer();
            var o    = yaml.Deserialize <T>(text);

            return(o);
        }
Esempio n. 27
0
        static Config ReadConfig(string[] args)
        {
            var deserializer = new YamlDotNet.Serialization.Deserializer();
            var text         = File.ReadAllText(ConfigFileName(args));
            var rv           = deserializer.Deserialize <Config>(text);

            return(rv);
        }
Esempio n. 28
0
        static Model ReadModel(string[] args)
        {
            var deserializer = new YamlDotNet.Serialization.Deserializer();
            var text         = File.ReadAllText(ModelFileName(args));
            var rv           = deserializer.Deserialize <Model>(text);

            return(rv);
        }
        public IValue ReadYamlString(string yaml)
        {
            var deserializer = new YamlDotNet.Serialization.Deserializer();
            var reader       = new StringReader(yaml);
            var result       = deserializer.Deserialize(reader);

            return(BuildResults(result));
        }
 public static Tuple <DeviceInfo, LocalIdentifierLocks> ParseDeviceInfoYamlWithIdentifierLocks(string data, string device_name_override = null)
 {
     using (var f = new StringReader(data))
     {
         var deserializer     = new YamlDotNet.Serialization.Deserializer();
         var yaml_device_info = deserializer.Deserialize <YamlDeviceInfo>(f);
         return(LoadDeviceInfoYamlWithIdentifierLocks(yaml_device_info, device_name_override));
     }
 }
 public static Tuple <RobotInfo, LocalIdentifierLocks> ParseRobotInfoYamlWithIdentifierLocks(string data)
 {
     using (var f = new StringReader(data))
     {
         var deserializer    = new YamlDotNet.Serialization.Deserializer();
         var yaml_robot_info = deserializer.Deserialize <YamlRobotInfo>(f);
         return(LoadRobotInfoYamlWithIdentifierLocks(yaml_robot_info));
     }
 }
Esempio n. 32
0
 public static ThemeSetting Load(string input)
 {
     ThemeSetting result = null;
       using (var reader = new System.IO.StringReader(input)) {
     var deserializer = new YamlDotNet.Serialization.Deserializer(ignoreUnmatched: true);
     try {
       result = deserializer.Deserialize<ThemeSetting>(reader);
     }
     catch (Exception err) {
       System.Windows.MessageBox.Show(
     err.ToString(),
     "Error",
     System.Windows.MessageBoxButton.OK,
     System.Windows.MessageBoxImage.Error);
     }
       }
       return result;
 }
Esempio n. 33
0
 public static MsDev2013SettingsCollection LoadSettingsCollection(System.IO.FileInfo Info)
 {
     var data = System.IO.File.ReadAllText(Info.FullName);
       MsDev2013SettingsCollection settings = null;
       using (var reader = new System.IO.StringReader(data))
       {
     var deserializer = new YamlDotNet.Serialization.Deserializer(ignoreUnmatched:false);
     try {
       settings = deserializer.Deserialize<MsDev2013SettingsCollection>(reader);
     } catch (Exception err) {
       System.Windows.MessageBox.Show(
     err.ToString(),
     "Error",
     System.Windows.MessageBoxButton.OK,
     System.Windows.MessageBoxImage.Error);
     }
       }
       return settings;
 }