Example #1
0
/*
 *      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("", "");
 }
Example #3
0
 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);
     }
 }
Example #4
0
        public async Task <ActionResult> RestartVm([FromBody] VmAction vmAction)
        {
            var action = JsonConvert.DeserializeObject <TopoMojo.Models.VmAction>(
                JsonConvert.SerializeObject(vmAction)
                );
            await Mojo.ChangeVm(action);

            return(Ok());
        }
Example #5
0
 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("", "");
 }
Example #6
0
        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));
        }
Example #7
0
        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);
        }
Example #8
0
 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);
         }
     }
 }
Example #9
0
        public async Task <IActionResult> Delete(string id)
        {
            await Mojo.Stop(id);

            return(Ok());
        }