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)); }
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()); }
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); }
private void AddGremlinService(IServiceCollection services) { IGremlinService gremlinService = new GremlinService(_gremlinConfigurationModel); services.AddSingleton(gremlinService); }