Ejemplo n.º 1
0
        public async Task <ActionResult <IResult> > Get(string datastoreName, string scenarioName)
        {
            RelationResult relationResult;

            if (string.IsNullOrWhiteSpace(datastoreName) || string.IsNullOrWhiteSpace(scenarioName))
            {
                relationResult = new RelationResult(false, "datastoreName 和 scenario 不能为空");
            }
            else
            {
                int displayMax = dsManager.GetMaxDisplayedEntityNumber();

                GraphExecutor executor = new GraphExecutor(datastoreName);
                (bool isDSExist, bool isScenarioExist, bool isDisplable, string message, List <VisulizedVertex> vvs, List <VisulizedEdge> ves) = executor.GetVertexesAndEdgesByScenarios(new List <string>()
                {
                    scenarioName
                }, displayMax);

                if (!isDSExist)
                {
                    relationResult = new RelationResult(false, "Datastore " + datastoreName + "不存在,或没有数据导入。");
                }
                else
                {
                    if (!isScenarioExist)
                    {
                        relationResult = new RelationResult(false, "Scenario " + scenarioName + "不存在,或没有数据导入。");
                    }
                    else
                    {
                        if (!isDisplable)
                        {
                            relationResult = new RelationResult(false, "Scenario " + scenarioName + " 包含的实体数量超过了最大显示量的设置(最多显示 " + displayMax + " 个实体),无法显示完整图谱,请通过搜索查看部分图谱。");
                        }
                        else
                        {
                            string scenarioStr = "scenario: " + scenarioName + " 的图谱如下:";

                            relationResult       = new RelationResult(true, scenarioStr + " 的图谱如下:");
                            relationResult.nodes = vvs;

                            relationResult.relations = ves;
                        }
                    }
                }
            }

            log.Information("[Response]: " + JsonConvert.SerializeObject(relationResult));

            return(Ok(relationResult));
        }