/// <summary> /// Gets the block asynchronous. /// </summary> /// <param name="blockReadModel">The block read model.</param> /// <param name="blockName">Name of the block.</param> /// <returns></returns> private static async Task <BlockJsonModel> GetBlockAsync(BlockReadModel blockReadModel, string blockName) { var jsonModel = new BlockJsonModel() { Type = blockName }; if (blockReadModel?.Arguments != null && blockReadModel.Arguments.Any()) { var args = blockReadModel.Arguments.Select((data, index) => new NetworkArgumentReadModel { Id = index, Name = data.Name, Label = data.Label, Description = data.Description, DataType = data.Type, Min = data.Min, Max = data.Max, Value = string.IsNullOrWhiteSpace(data.Value) ? string.Empty : data.Value }).ToList(); jsonModel.Args.AddRange(args); } return(await Task.FromResult(jsonModel)); }
/// <summary> /// Gets the modules for blocks async. /// </summary> /// <returns>list of modules</returns> private static async Task <IEnumerable <string> > GetModulesAsync(BlockReadModel blockReadModel) { var modules = new HashSet <string>(); const char delimiter = '.'; if (blockReadModel?.Lines != null && blockReadModel.Lines.Any()) { var data = blockReadModel.Lines.SelectMany(x => x).Where(x => !string.IsNullOrWhiteSpace(x)); foreach (var item in data.Select(item => item.GetFirstFromSplit(delimiter))) { if (item.Any(char.IsWhiteSpace)) { if (!item.Split(' ').Last().Contains('$')) { modules.Add(item.Split(' ').Last()); } } else { if (!item.Contains('$')) { modules.Add(item); } } } } return(await Task.FromResult(modules)); }