AzureML.PowerShell.GetDataset.ProcessRecord C# (CSharp) Method

ProcessRecord() protected method

protected ProcessRecord ( ) : void
return void
        protected override void ProcessRecord()
        {
            if (Scope.ToLower() == "workspace")
            {
                WriteObject(Sdk.GetDataset(GetWorkspaceSetting()), true);
                return;
            }
            if (string.IsNullOrEmpty(ExperimentId))
            {
                WriteWarning("ExperimentId must be specified.");
                return;
            }
            List<Dataset> datasetInWorkspace = new List<Dataset>(Sdk.GetDataset(GetWorkspaceSetting()));
            Dictionary<string, UserAssetBase> datasetInExperiment = new Dictionary<string, UserAssetBase>();
            string rawJson;
            Experiment exp = Sdk.GetExperimentById(GetWorkspaceSetting(), ExperimentId, out rawJson);
            JavaScriptSerializer jss = new JavaScriptSerializer();
            dynamic graph = jss.Deserialize<object>(rawJson);
            foreach (var node in graph["Graph"]["ModuleNodes"])
                foreach (var inputPort in node["InputPortsInternal"])
                {
                    string id = inputPort["DataSourceId"];
                    if (!string.IsNullOrEmpty(id))
                    {
                        string familyId = id.Split('.')[1];
                        UserAssetBase dataset = datasetInWorkspace.SingleOrDefault(tm => tm.Id == id || tm.FamilyId == familyId);
                        if (dataset != null && !datasetInExperiment.ContainsKey(id))
                        {
                            bool isLatest = (datasetInWorkspace.SingleOrDefault(t => t.Id == id) != null);
                            datasetInExperiment.Add(id, new UserAssetBase
                            {
                                Id = id,
                                FamilyId = familyId,
                                DataTypeId = dataset.DataTypeId,
                                IsLatest = isLatest,
                                Name = dataset.Name
                            });
                        }
                    }
                }
            WriteObject(datasetInExperiment.Values, true);
        }
    }
GetDataset