/* * public List<Mojo> queryMojo(String query) * { * using (var conn = new NpgsqlConnection(CONNECTION_STRING)) * { * try * { * conn.Open(); * var command = GenerateInsertCommand(conn, mojo); * command?.ExecuteReader(); * } * catch (Exception e) * { * Console.WriteLine(e); * } * } * }*/ private IDbCommand GenerateInsertCommand(NpgsqlConnection conn, Mojo mojo) { if (mojo == null) { return(null); } IDbCommand command = conn.CreateCommand(); var sql = "INSERT INTO public." + mojo.mojoType + "( "; if (mojo.attributes == null || mojo.attributes.Count <= 0) { return(null); } foreach (var entry in mojo.attributes) { sql += entry.Key + ", "; } sql = sql.Remove(sql.Length - 2, 1) + ") VALUES ("; foreach (var entry in mojo.attributes) { sql += "@" + entry.Key + ", "; var parameter = command.CreateParameter(); parameter.ParameterName = entry.Key; parameter.DbType = DbType.String; parameter.Value = entry.Value.value; command.Parameters.Add(parameter); } sql = sql.Remove(sql.Length - 2, 1) + ")"; command.CommandText = sql; return(command); }
public SimpleBug1() { test1 = new Mojo(); test1.data.put("key1", "value1"); test1.data.put("key2", "value1"); test1.data.put("key3", ""); test1.data.put("key4", ""); test1.data.put("", ""); }
private void FetchTemplates(ProblemContext context) { if (context.Flag.Workspace?.CustomizeTemplates ?? false) { string templates = Mojo.Templates(context.Flag.Workspace.Id).Result; File.WriteAllText(Path.Combine(context.ProblemFolder, "_templates.json"), templates); } }
public async Task <ActionResult> RestartVm([FromBody] VmAction vmAction) { var action = JsonConvert.DeserializeObject <TopoMojo.Models.VmAction>( JsonConvert.SerializeObject(vmAction) ); await Mojo.ChangeVm(action); return(Ok()); }
public async Task <ActionResult <ConsoleSummary> > GetTicket([FromRoute] string id) { var info = await Mojo.Ticket(id); if (info != null && info.Url.NotEmpty() && Options.ConsoleUrlTransformKey.NotEmpty() && Options.ConsoleUrlTransformValue.NotEmpty()) { info.Url = info.Url.Replace(Options.ConsoleUrlTransformKey, Options.ConsoleUrlTransformValue); } return(Ok(info)); }
private void Deploy(ProblemContext context) { // TODO: check max-concurrent-problems if (context.Flag.Workspace == null) { return; } if (context.Flag.Iso.NotEmpty()) { context.Flag.Workspace.Iso = context.Flag.Iso; } string fn = Path.Combine(context.ProblemFolder, "_templates.json"); if (File.Exists(fn)) { context.Flag.Workspace.Templates = File.ReadAllText(fn); } // temp transition mapping var spec = JsonConvert.DeserializeObject <TopoMojo.Models.GamespaceSpec>( JsonConvert.SerializeObject(context.Flag.Workspace) ); spec.WorkspaceId = context.Flag.Workspace.Id; spec.IsolationId = context.Problem.IsolationId; var state = Mojo.Start(spec).Result; string consoleMarkdown = "> Gamespace Resources: " + String.Join( " | ", state.Vms .Select(v => $"[{v.Name.Untagged()}](/console/{v.Id}/{v.Name.Untagged()}/{spec.IsolationId})") ); context.ProblemState.GamespaceText = consoleMarkdown; string markdownMarker = "<!--tm doc-->"; if ( spec.AppendMarkdown && state.Markdown.NotEmpty() && !context.ProblemState.Text.Contains(markdownMarker)) { context.ProblemState.Text += $"{state.Markdown}\n{markdownMarker}"; } context.ProblemState.GamespaceReady = true; context.Flag.Workspace.Templates = null; Data.SaveContext(context); }
public void InsertMojo(Mojo mojo) { using (var conn = new NpgsqlConnection(CONNECTION_STRING)) { try { conn.Open(); var command = GenerateInsertCommand(conn, mojo); command?.ExecuteNonQuery(); } catch (Exception e) { Console.WriteLine(e); } } }
public async Task <IActionResult> Delete(string id) { await Mojo.Stop(id); return(Ok()); }