public async Task <IEnumerable <LogMessage> > GetMessages(FileMessagePostModel model) { await using var conn = GetConnection(); var query = new StringBuilder(@" SELECT m.timestamp, m.type, m.message, m.origin_name AS OriginName, m.relative_index AS RelativeIndex, m.x, m.y, m.z FROM round_file rf INNER JOIN log_message m ON m.parent_file = rf.id WHERE rf.round = @roundId AND rf.name = ANY(@files)"); if (model.CKeys != null && model.CKeys.Any()) { query.AppendLine(@" AND m.message ~* ANY(@ckeys)"); } query.AppendLine(" ORDER BY rf.name ASC, m.relative_index ASC"); return(await conn.QueryAsync <LogMessage, SSVec, LogMessage>(query.ToString(), (message, vec) => { if (message.Timestamp.HasValue) { message.Timestamp = message.Timestamp.Value.ToUniversalTime(); } message.Origin = vec; return message; }, model, splitOn : "x")); }
public async Task <IActionResult> FetchMessages([FromBody] FileMessagePostModel model) { var result = await _files.GetMessages(model); return(Ok(result)); }