public async Task <ActionResult> Index()
        {
            List <Condition> conditions = new List <Condition>();

            var query = @"
                g.V()
                    .hasLabel('condition')
                            .project('name', 'id')
                                .by('name')
                                .by('id')
            ";

            var results = await GremlinService.ExecuteGremlinQueryAsync(query);

            if (results.Any())
            {
                foreach (var result in results)
                {
                    string id        = result.id;
                    string condition = result.name;

                    conditions.Add(new Condition()
                    {
                        Id = id, Name = condition
                    });
                }
            }

            return(View(conditions));
        }
Exemplo n.º 2
0
        public static void run()
        {
            /*foreach(var key in gremlinQueriesOG.Keys)
             * {
             *  var ogQuery = gremlinQueriesOG[key];
             *  var newQuery = gremlinQueries[key];
             *
             *  if(!ogQuery.Equals(newQuery))
             *  {
             *      throw new Exception($"{ogQuery} != {newQuery}");
             *  }
             *
             * }*/

            var clean    = DataResetQueries();
            var populate = DataPopulationQueries();
            var search   = DataSearchQueries();
            var all      = new List <string>();

            all.AddRange(clean);
            all.AddRange(populate);
            all.AddRange(search);

            var gremlinService = new GremlinService(DEFAULT_HOSTNAME, DEFAULT_PORT, DEFAULT_AUTHKEY, DEFAULT_DATABASE, DEFAULT_COLLECTION);


            gremlinService.RunGremlinQueries(all);
        }
        public async Task <ActionResult> Details(string conditionId)
        {
            var query = @"
                g.V('{0}')
                    .project('name', 'id', 'symptoms', 'complications')
                        .by('name')
                        .by('id')
                        .by(inE('symptom').outV().project('name', 'id').by('name').by('id').fold())
                        .by(
                            union(
                                outE('complicates').inV().project('name').by('name').fold(),
                                inE('complicates').outV().project('name').by('name').fold()
                            )
                        )
            ";

            query = string.Format(query, conditionId);

            var results = await GremlinService.ExecuteGremlinQueryAsync(string.Format(query, conditionId));

            if (results.Any())
            {
                foreach (var result in results)
                {
                    string name = result.name;
                    string id   = result.id;

                    IEnumerable <string>  complications = ((IEnumerable <dynamic>)result.complications).Select(wb => (string)wb.name);
                    IEnumerable <Symptom> symptoms      = ((IEnumerable <dynamic>)result.symptoms).Select(wb => new Symptom()
                    {
                        Name = wb.name, Id = wb.id
                    });

                    ConditionDetails details = new ConditionDetails()
                    {
                        ConditionName = name,
                        Symptoms      = symptoms,
                        Complications = complications
                    };

                    if (Request.AcceptTypes.Contains("application/json"))
                    {
                        return(Json(details, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        return(View(details));
                    }
                }
            }

            return(HttpNotFound());
        }
Exemplo n.º 4
0
        static async Task Main(string[] args)
        {
            Console.WriteLine("Starting the script runner program");

            IConfigurationService configurationService = new ConfigurationService();

            IConfiguration configuration = configurationService.GetConfiguration();

            IGremlinConfigurationModel gremlinConfigurationModel = new GremlinConfigurationModel();

            configuration.GetSection("Gremlin").Bind(gremlinConfigurationModel);

            gremlinConfigurationModel.Graph = "Airport";

            IGremlinService gremlinService = new GremlinService(gremlinConfigurationModel);

            await PopulateGraph(gremlinService);
        }
        public async Task <ActionResult> Edit(string id)
        {
            var query = $"g.V('{id}').project('name', 'id').by('name').by('id')";

            var results = await GremlinService.ExecuteGremlinQueryAsync(query);

            if (results.Any())
            {
                foreach (var result in results)
                {
                    Condition condition = new Condition()
                    {
                        Name = result.name,
                        Id   = result.id
                    };

                    return(View(condition));
                }
            }

            return(HttpNotFound());
        }
        private static async Task <List <ConditionComplication> > GetConditionComplicationsByWeatherAsync(string weatherCondition)
        {
            List <ConditionComplication> conditions = new List <ConditionComplication>();

            //TODO: Use a graph Db to query all conditions which have specified weather as a symptom
            //Or cold weather as a symptom.

            var query = @"
                g.V()
                    .hasLabel('weather')
                    .has('name', '{0}')
                        .outE('complicates')
                        .inV()
                        .hasLabel('condition')
                            .project('condition', 'id', 'suggestions')
                                .by('name')
                                .by('id')
                                .by(inE().values('suggestions'))
            ";


            var results = await GremlinService.ExecuteGremlinQueryAsync(string.Format(query, weatherCondition));

            if (results.Any())
            {
                foreach (var result in results)
                {
                    string suggestions = result.suggestions;
                    string condition   = result.condition;

                    conditions.Add(new ConditionComplication((string)result.id, condition, suggestions.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries).AsEnumerable()));
                }
            }

            return(conditions);
        }
Exemplo n.º 7
0
        private void AddGremlinService(IServiceCollection services)
        {
            IGremlinService gremlinService = new GremlinService(_gremlinConfigurationModel);

            services.AddSingleton(gremlinService);
        }