public async Task ReceivedList() { var routeValue = _routeData.Values; var pageSize = _request.Query["perPage"].ToInt32OrDefault(20); var pageIndex = _request.Query["currentPage"].ToInt32OrDefault(1); var name = _request.Query["name"].ToString(); var group = _request.Query["group"].ToString(); var content = _request.Query["content"].ToString(); var status = routeValue["status"]?.ToString() ?? nameof(StatusName.Succeeded); var queryDto = new MessageQueryDto { MessageType = MessageType.Subscribe, Group = group, Name = name, Content = content, StatusName = status, CurrentPage = pageIndex - 1, PageSize = pageSize }; var result = MonitoringApi.Messages(queryDto); await _response.WriteAsJsonAsync(result); }
public IList <MessageDto> Messages(MessageQueryDto queryDto) { var tableName = queryDto.MessageType == MessageType.Publish ? _pubName : _recName; return(_capRepository.QueryMessages(tableName, queryDto.Name, queryDto.Group, queryDto.Content, queryDto.StatusName, queryDto.PageSize, queryDto.CurrentPage * queryDto.PageSize)); }
public PagedQueryResult <MessageDto> Messages(MessageQueryDto queryDto) { var tableName = queryDto.MessageType == MessageType.Publish ? _pubName : _recName; var where = string.Empty; if (!string.IsNullOrEmpty(queryDto.StatusName)) { where += " and Lower(\"StatusName\") = Lower(@StatusName)"; } if (!string.IsNullOrEmpty(queryDto.Name)) { where += " and Lower(\"Name\") = Lower(@Name)"; } if (!string.IsNullOrEmpty(queryDto.Group)) { where += " and Lower(\"Group\") = Lower(@Group)"; } if (!string.IsNullOrEmpty(queryDto.Content)) { where += " and \"Content\" ILike @Content"; } var sqlQuery = $"select * from {tableName} where 1=1 {where} order by \"Added\" desc offset @Offset limit @Limit"; using var connection = new NpgsqlConnection(_options.ConnectionString); var count = connection.ExecuteScalar <int>($"select count(1) from {tableName} where 1=1 {where}", new NpgsqlParameter("@StatusName", queryDto.StatusName ?? string.Empty), new NpgsqlParameter("@Group", queryDto.Group ?? string.Empty), new NpgsqlParameter("@Name", queryDto.Name ?? string.Empty), new NpgsqlParameter("@Content", $"%{queryDto.Content}%")); object[] sqlParams = { new NpgsqlParameter("@StatusName", queryDto.StatusName ?? string.Empty), new NpgsqlParameter("@Group", queryDto.Group ?? string.Empty), new NpgsqlParameter("@Name", queryDto.Name ?? string.Empty), new NpgsqlParameter("@Content", $"%{queryDto.Content}%"), new NpgsqlParameter("@Offset", queryDto.CurrentPage * queryDto.PageSize), new NpgsqlParameter("@Limit", queryDto.PageSize) }; var items = connection.ExecuteReader(sqlQuery, reader => { var messages = new List <MessageDto>(); while (reader.Read()) { var index = 0; messages.Add(new MessageDto { Id = reader.GetInt64(index++).ToString(), Version = reader.GetString(index++), Name = reader.GetString(index++), Group = queryDto.MessageType == MessageType.Subscribe ? reader.GetString(index++) : default,
public IList <MessageDto> Messages(MessageQueryDto queryDto) { var tableName = queryDto.MessageType == MessageType.Publish ? _pubName : _recName; var where = string.Empty; if (!string.IsNullOrEmpty(queryDto.StatusName)) { where += " and statusname=@StatusName"; } if (!string.IsNullOrEmpty(queryDto.Name)) { where += " and name=@Name"; } if (!string.IsNullOrEmpty(queryDto.Group)) { where += " and [group]=@Group"; } if (!string.IsNullOrEmpty(queryDto.Content)) { where += " and content like @Content"; } var sqlQuery2008 = $@"select * from (SELECT t.*, ROW_NUMBER() OVER(order by t.Added desc) AS row_number from {tableName} as t where 1=1 {where}) as tbl where tbl.row_number between @offset and @offset + @limit"; var sqlQuery = $"select * from {tableName} where 1=1 {where} order by Added desc offset @Offset rows fetch next @Limit rows only"; object[] sqlParams = { new SqlParameter("@StatusName", queryDto.StatusName ?? string.Empty), new SqlParameter("@Group", queryDto.Group ?? string.Empty), new SqlParameter("@Name", queryDto.Name ?? string.Empty), new SqlParameter("@Content", $"%{queryDto.Content}%"), new SqlParameter("@Offset", queryDto.CurrentPage * queryDto.PageSize), new SqlParameter("@Limit", queryDto.PageSize) }; using var connection = new SqlConnection(_options.ConnectionString); return(connection.ExecuteReader(_options.IsSqlServer2008 ? sqlQuery2008 : sqlQuery, reader => { var messages = new List <MessageDto>(); while (reader.Read()) { var index = 0; messages.Add(new MessageDto { Id = reader.GetInt64(index++), Version = reader.GetString(index++), Name = reader.GetString(index++), Group = queryDto.MessageType == MessageType.Subscribe ? reader.GetString(index++) : default,
public PagedQueryResult <MessageDto> Messages(MessageQueryDto queryDto) { var name = queryDto.MessageType == MessageType.Publish ? _options.PublishedCollection : _options.ReceivedCollection; var collection = _database.GetCollection <BsonDocument>(name); var builder = Builders <BsonDocument> .Filter; var filter = builder.Empty; if (!string.IsNullOrEmpty(queryDto.StatusName)) { filter &= builder.Regex("StatusName", $"/{queryDto.StatusName}/i"); } if (!string.IsNullOrEmpty(queryDto.Name)) { filter &= builder.Eq("Name", queryDto.Name); } if (!string.IsNullOrEmpty(queryDto.Group)) { filter &= builder.Eq("Group", queryDto.Group); } if (!string.IsNullOrEmpty(queryDto.Content)) { filter &= builder.Regex("Content", $".*{queryDto.Content}.*"); } ProjectionDefinition <BsonDocument, MessageDto> projection = new FindExpressionProjectionDefinition <BsonDocument, MessageDto>(p => new MessageDto { Id = p["_id"].ToString(), Version = p["Version"].ToString(), Group = p["Group"] == null ? null : p["Group"].ToString(), Name = p["Name"].ToString(), Content = p["Content"].ToString(), Added = p["Added"].ToLocalTime(), ExpiresAt = p["ExpiresAt"].ToNullableLocalTime(), Retries = p["Retries"].ToInt32(), StatusName = p["StatusName"].ToString() }); var items = collection .Find(filter) .SortByDescending(x => x["Added"]) .Skip(queryDto.PageSize * queryDto.CurrentPage) .Limit(queryDto.PageSize) .Project(projection) .ToList(); var count = collection.CountDocuments(filter); return(new PagedQueryResult <MessageDto> { Items = items, PageIndex = queryDto.CurrentPage, PageSize = queryDto.PageSize, Totals = count }); }
public IList <MessageDto> Messages(MessageQueryDto queryDto) { var tableName = queryDto.MessageType == MessageType.Publish ? _pubName : _recName; var where = string.Empty; if (!string.IsNullOrEmpty(queryDto.StatusName)) { where += " and StatusName=@StatusName"; } if (!string.IsNullOrEmpty(queryDto.Name)) { where += " and Name=@Name"; } if (!string.IsNullOrEmpty(queryDto.Group)) { where += " and `Group`=@Group"; } if (!string.IsNullOrEmpty(queryDto.Content)) { where += " and Content like CONCAT('%',@Content,'%')"; } var sqlQuery = $"select * from `{tableName}` where 1=1 {where} order by Added desc limit @Limit offset @Offset"; object[] sqlParams = { new MySqlParameter("@StatusName", queryDto.StatusName ?? string.Empty), new MySqlParameter("@Group", queryDto.Group ?? string.Empty), new MySqlParameter("@Name", queryDto.Name ?? string.Empty), new MySqlParameter("@Content", $"%{queryDto.Content}%"), new MySqlParameter("@Offset", queryDto.CurrentPage * queryDto.PageSize), new MySqlParameter("@Limit", queryDto.PageSize) }; using var connection = new MySqlConnection(_options.ConnectionString); return(connection.ExecuteReader(sqlQuery, reader => { var messages = new List <MessageDto>(); while (reader.Read()) { var index = 0; messages.Add(new MessageDto { Id = reader.GetInt64(index++), Version = reader.GetString(index++), Name = reader.GetString(index++), Group = queryDto.MessageType == MessageType.Subscribe ? reader.GetString(index++) : default,
public IList <MessageDto> Messages(MessageQueryDto queryDto) { var tableName = queryDto.MessageType == MessageType.Publish ? _pubName : _recName; var where = string.Empty; if (!string.IsNullOrEmpty(queryDto.StatusName)) { where += " AND `StatusName` = @StatusName"; } if (!string.IsNullOrEmpty(queryDto.Name)) { where += " AND `Name` = @Name"; } if (!string.IsNullOrEmpty(queryDto.Group)) { where += " AND `Group` = @Group"; } if (!string.IsNullOrEmpty(queryDto.Content)) { where += " AND `Content` LIKE @Content"; } var sqlQuery = $"SELECT * FROM `{tableName}` WHERE 1=1 {where} ORDER BY `Added` DESC LIMIT @Offset,@Limit"; object[] sqlParams = new SqliteParameter[] { new SqliteParameter("@StatusName", queryDto.StatusName ?? string.Empty), new SqliteParameter("@Group", queryDto.Group ?? string.Empty), new SqliteParameter("@Name", queryDto.Name ?? string.Empty), new SqliteParameter("@Content", $"%{queryDto.Content}%"), new SqliteParameter("@Offset", queryDto.CurrentPage * queryDto.PageSize), new SqliteParameter("@Limit", queryDto.PageSize) }; using var connection = SqliteFactory.Instance.CreateConnection(); connection.ConnectionString = _options.ConnectionString; return(connection.ExecuteReader(sqlQuery, reader => { var messages = new List <MessageDto>(); while (reader.Read()) { var index = 0; messages.Add(new MessageDto { Id = reader.GetInt64(index++), Version = reader.GetString(index++), Name = reader.GetString(index++), Group = queryDto.MessageType == MessageType.Subscribe ? reader.GetString(index++) : default,
public IList <MessageDto> Messages(MessageQueryDto queryDto) { var tableName = queryDto.MessageType == MessageType.Publish ? _pubName : _recName; var where = string.Empty; var sqlParams = new List <object>(); if (!string.IsNullOrEmpty(queryDto.StatusName)) { where += " AND LOWER(\"StatusName\") = LOWER(:StatusName)"; sqlParams.Add(new OracleParameter(":StatusName", queryDto.StatusName ?? string.Empty)); } if (!string.IsNullOrEmpty(queryDto.Name)) { where += " AND LOWER(\"Name\") = LOWER(:Name)"; sqlParams.Add(new OracleParameter(":Name", queryDto.Name ?? string.Empty)); } if (!string.IsNullOrEmpty(queryDto.Group)) { where += " AND LOWER(\"Group\") = LOWER(:Group1)"; sqlParams.Add(new OracleParameter(":Group1", queryDto.Group ?? string.Empty)); } if (!string.IsNullOrEmpty(queryDto.Content)) { where += " AND \"Content\" Like CONCAT('%',:Content,'%')"; sqlParams.Add(new OracleParameter(":Content", $"%{queryDto.Content}%")); } sqlParams.Add(new OracleParameter(":Offset", queryDto.CurrentPage * queryDto.PageSize)); sqlParams.Add(new OracleParameter(":OffsetEnd", queryDto.CurrentPage * queryDto.PageSize + queryDto.PageSize)); var sqlQuery = $"SELECT * FROM (SELECT ROWNUM AS rowno,t.* FROM {tableName} t WHERE \"Id\">0 {where} ORDER BY \"Added\" DESC) alias WHERE alias.rowno BETWEEN :Offset AND :OffsetEnd"; using var connection = new OracleConnection(_options.ConnectionString); return(connection.ExecuteReader(sqlQuery, reader => { var messages = new List <MessageDto>(); while (reader.Read()) { var index = 1; messages.Add(new MessageDto { Id = reader.GetInt64(index++), Version = reader.GetString(index++), Name = reader.GetString(index++), Group = queryDto.MessageType == MessageType.Subscribe ? reader.GetString(index++) : default,
public IList <MessageDto> Messages(MessageQueryDto queryDto) { var tableName = queryDto.MessageType == MessageType.Publish ? _pubName : _recName; var where = string.Empty; if (!string.IsNullOrEmpty(queryDto.StatusName)) { where += " and statusname=@StatusName"; } if (!string.IsNullOrEmpty(queryDto.Name)) { where += " and name=@Name"; } if (!string.IsNullOrEmpty(queryDto.Group)) { where += " and [group]=@Group"; } if (!string.IsNullOrEmpty(queryDto.Content)) { where += " and content like @Content"; } var sqlQuery2008 = $@"select * from (SELECT t.*, ROW_NUMBER() OVER(order by t.Added desc) AS row_number from {tableName} as t where 1=1 {where}) as tbl where tbl.row_number between @offset and @offset + @limit"; var sqlQuery = $"select * from {tableName} where 1=1 {where} order by Added desc offset @Offset rows fetch next @Limit rows only"; return(UseConnection(conn => conn.Query <MessageDto>(_options.IsSqlServer2008 ? sqlQuery2008 : sqlQuery, new { queryDto.StatusName, queryDto.Group, queryDto.Name, Content = "%" + queryDto.Content + "%", Offset = queryDto.CurrentPage * queryDto.PageSize, Limit = queryDto.PageSize }, DbTransaction).ToList())); }
public IList <MessageDto> Messages(MessageQueryDto queryDto) { var tableName = queryDto.MessageType == MessageType.Publish ? "published" : "received"; var where = string.Empty; if (!string.IsNullOrEmpty(queryDto.StatusName)) { if (string.Equals(queryDto.StatusName, StatusName.Processing, StringComparison.CurrentCultureIgnoreCase)) { where += " and \"StatusName\" in (N'Processing',N'Scheduled',N'Enqueued')"; } else { where += " and Lower(\"StatusName\") = Lower(@StatusName)"; } } if (!string.IsNullOrEmpty(queryDto.Name)) { where += " and Lower(\"Name\") = Lower(@Name)"; } if (!string.IsNullOrEmpty(queryDto.Group)) { where += " and Lower(\"Group\") = Lower(@Group)"; } if (!string.IsNullOrEmpty(queryDto.Content)) { where += " and \"Content\" ILike '%@Content%'"; } var sqlQuery = $"select * from \"{_options.Schema}\".\"{tableName}\" where 1=1 {where} order by \"Added\" desc offset @Offset limit @Limit"; return(UseConnection(conn => conn.Query <MessageDto>(sqlQuery, new { queryDto.StatusName, queryDto.Group, queryDto.Name, queryDto.Content, Offset = queryDto.CurrentPage * queryDto.PageSize, Limit = queryDto.PageSize }).ToList())); }
public PagedQueryResult <MessageDto> Messages(MessageQueryDto queryDto) { var name = queryDto.MessageType == MessageType.Publish ? _options.PublishedCollection : _options.ReceivedCollection; var collection = _database.GetCollection <MessageDto>(name); var builder = Builders <MessageDto> .Filter; var filter = builder.Empty; if (!string.IsNullOrEmpty(queryDto.StatusName)) { filter &= builder.Where(x => x.StatusName.ToLower() == queryDto.StatusName); } if (!string.IsNullOrEmpty(queryDto.Name)) { filter &= builder.Eq(x => x.Name, queryDto.Name); } if (!string.IsNullOrEmpty(queryDto.Group)) { filter &= builder.Eq(x => x.Group, queryDto.Group); } if (!string.IsNullOrEmpty(queryDto.Content)) { filter &= builder.Regex(x => x.Content, ".*" + queryDto.Content + ".*"); } var items = collection .Find(filter) .SortByDescending(x => x.Added) .Skip(queryDto.PageSize * queryDto.CurrentPage) .Limit(queryDto.PageSize) .ToList(); var count = collection.CountDocuments(filter); return(new PagedQueryResult <MessageDto> { Items = items, PageIndex = queryDto.CurrentPage, PageSize = queryDto.PageSize, Totals = count }); }
public IList <MessageDto> Messages(MessageQueryDto queryDto) { var tableName = queryDto.MessageType == MessageType.Publish ? "published" : "received"; var where = string.Empty; if (!string.IsNullOrEmpty(queryDto.StatusName)) { if (string.Equals(queryDto.StatusName, StatusName.Processing, StringComparison.CurrentCultureIgnoreCase)) { where += " and StatusName in (N'Processing',N'Scheduled',N'Enqueued')"; } else { where += " and StatusName=@StatusName"; } } if (!string.IsNullOrEmpty(queryDto.Name)) { where += " and Name=@Name"; } if (!string.IsNullOrEmpty(queryDto.Group)) { where += " and Group=@Group"; } if (!string.IsNullOrEmpty(queryDto.Content)) { where += " and Content like '%@Content%'"; } var sqlQuery = $"select * from `{_prefix}.{tableName}` where 1=1 {where} order by Added desc limit @Limit offset @Offset"; return(UseConnection(conn => conn.Query <MessageDto>(sqlQuery, new { queryDto.StatusName, queryDto.Group, queryDto.Name, queryDto.Content, Offset = queryDto.CurrentPage * queryDto.PageSize, Limit = queryDto.PageSize }).ToList())); }
public IList <MessageDto> Messages(MessageQueryDto queryDto) { queryDto.StatusName = StatusName.Standardized(queryDto.StatusName); var name = queryDto.MessageType == MessageType.Publish ? _options.PublishedCollection : _options.ReceivedCollection; var collection = _database.GetCollection <MessageDto>(name); var builder = Builders <MessageDto> .Filter; var filter = builder.Empty; if (!string.IsNullOrEmpty(queryDto.StatusName)) { filter = filter & builder.Eq(x => x.StatusName, queryDto.StatusName); } if (!string.IsNullOrEmpty(queryDto.Name)) { filter = filter & builder.Eq(x => x.Name, queryDto.Name); } if (!string.IsNullOrEmpty(queryDto.Group)) { filter = filter & builder.Eq(x => x.Group, queryDto.Group); } if (!string.IsNullOrEmpty(queryDto.Content)) { filter = filter & builder.Regex(x => x.Content, ".*" + queryDto.Content + ".*"); } var result = collection .Find(filter) .SortByDescending(x => x.Added) .Skip(queryDto.PageSize * queryDto.CurrentPage) .Limit(queryDto.PageSize) .ToList(); return(result); }
public IList <MessageDto> Messages(MessageQueryDto queryDto) { var tableName = queryDto.MessageType == MessageType.Publish ? _pubName : _recName; var where = string.Empty; if (!string.IsNullOrEmpty(queryDto.StatusName)) { where += " and Lower(\"StatusName\") = Lower(@StatusName)"; } if (!string.IsNullOrEmpty(queryDto.Name)) { where += " and Lower(\"Name\") = Lower(@Name)"; } if (!string.IsNullOrEmpty(queryDto.Group)) { where += " and Lower(\"Group\") = Lower(@Group)"; } if (!string.IsNullOrEmpty(queryDto.Content)) { where += " and \"Content\" ILike concat('%',@Content,'%')"; } var sqlQuery = $"select * from {tableName} where 1=1 {where} order by \"Added\" desc offset @Offset limit @Limit"; return(UseConnection(conn => conn.Query <MessageDto>(sqlQuery, new { queryDto.StatusName, queryDto.Group, queryDto.Name, queryDto.Content, Offset = queryDto.CurrentPage * queryDto.PageSize, Limit = queryDto.PageSize }, transaction: DbTransaction).ToList())); }
public IList <MessageDto> Messages(MessageQueryDto queryDto) { var tableName = queryDto.MessageType == MessageType.Publish ? _pubName : _recName; var where = string.Empty; if (!string.IsNullOrEmpty(queryDto.StatusName)) { where += " and StatusName=@StatusName"; } if (!string.IsNullOrEmpty(queryDto.Name)) { where += " and Name=@Name"; } if (!string.IsNullOrEmpty(queryDto.Group)) { where += " and `Group`=@Group"; } if (!string.IsNullOrEmpty(queryDto.Content)) { where += " and Content like CONCAT('%',@Content,'%')"; } var sqlQuery = $"select * from `{tableName}` where 1=1 {where} order by Added desc limit @Limit offset @Offset"; return(UseConnection(conn => conn.Query <MessageDto>(sqlQuery, new { queryDto.StatusName, queryDto.Group, queryDto.Name, queryDto.Content, Offset = queryDto.CurrentPage * queryDto.PageSize, Limit = queryDto.PageSize }).ToList())); }
public IList <MessageDto> Messages(MessageQueryDto queryDto) { var tableName = queryDto.MessageType == MessageType.Publish ? _published : _received; var where = string.Empty; if (!string.IsNullOrEmpty(queryDto.StatusName)) { where += " and `StatusName` = @StatusName"; } if (!string.IsNullOrEmpty(queryDto.Name)) { where += " and `Name` = @Name"; } if (!string.IsNullOrEmpty(queryDto.Group)) { where += " and `Group` = @Group"; } if (!string.IsNullOrEmpty(queryDto.Content)) { where += " and `Content` like @Content"; } var sqlQuery = $"select * from `{tableName}` where 1=1 {where} order by `Added` desc limit @Offset,@Limit"; return(UseConnection(conn => conn.Query <MessageDto>(sqlQuery, new { queryDto.StatusName, queryDto.Group, queryDto.Name, Content = $"%{queryDto.Content}%",//参数化Like查询的一个错误 Offset = queryDto.CurrentPage * queryDto.PageSize, Limit = queryDto.PageSize }).ToList())); }
public IList <MessageDto> Messages(MessageQueryDto queryDto) { var tableName = queryDto.MessageType == MessageType.Publish ? "Published" : "Received"; var where = string.Empty; if (!string.IsNullOrEmpty(queryDto.StatusName)) { where += " and statusname=@StatusName"; } if (!string.IsNullOrEmpty(queryDto.Name)) { where += " and name=@Name"; } if (!string.IsNullOrEmpty(queryDto.Group)) { where += " and group=@Group"; } if (!string.IsNullOrEmpty(queryDto.Content)) { where += " and content like '%@Content%'"; } var sqlQuery = $"select * from [{_options.Schema}].{tableName} where 1=1 {where} order by Added desc offset @Offset rows fetch next @Limit rows only"; return(UseConnection(conn => conn.Query <MessageDto>(sqlQuery, new { queryDto.StatusName, queryDto.Group, queryDto.Name, queryDto.Content, Offset = queryDto.CurrentPage * queryDto.PageSize, Limit = queryDto.PageSize }).ToList())); }
public IList <MessageDto> Messages(MessageQueryDto queryDto) { if (queryDto.MessageType == MessageType.Publish) { var expression = LiteDBStorage.PublishedMessages.FindAll(); if (!string.IsNullOrEmpty(queryDto.StatusName)) { expression = expression.Where(x => x.StatusName.ToString().Equals(queryDto.StatusName, StringComparison.InvariantCultureIgnoreCase)); } if (!string.IsNullOrEmpty(queryDto.Name)) { expression = expression.Where(x => x.Name.Equals(queryDto.Name, StringComparison.InvariantCultureIgnoreCase)); } if (!string.IsNullOrEmpty(queryDto.Content)) { expression = expression.Where(x => x.Content.Contains(queryDto.Content)); } var offset = queryDto.CurrentPage * queryDto.PageSize; var size = queryDto.PageSize; return(expression.Skip(offset).Take(size).Select(x => new MessageDto() { Added = x.Added, Version = "N/A", Content = x.Content, ExpiresAt = x.ExpiresAt, Id = long.Parse(x.Id), Name = x.Name, Retries = x.Retries, StatusName = x.StatusName.ToString() }).ToList()); } else { var expression = LiteDBStorage.ReceivedMessages.FindAll(); if (!string.IsNullOrEmpty(queryDto.StatusName)) { expression = expression.Where(x => x.StatusName.ToString().Equals(queryDto.StatusName, StringComparison.InvariantCultureIgnoreCase)); } if (!string.IsNullOrEmpty(queryDto.Name)) { expression = expression.Where(x => x.Name.Equals(queryDto.Name, StringComparison.InvariantCultureIgnoreCase)); } if (!string.IsNullOrEmpty(queryDto.Group)) { expression = expression.Where(x => x.Group.Equals(queryDto.Group, StringComparison.InvariantCultureIgnoreCase)); } if (!string.IsNullOrEmpty(queryDto.Content)) { expression = expression.Where(x => x.Content.Contains(queryDto.Content)); } var offset = queryDto.CurrentPage * queryDto.PageSize; var size = queryDto.PageSize; return(expression.Skip(offset).Take(size).Select(x => new MessageDto() { Added = x.Added, Group = x.Group, Version = "N/A", Content = x.Content, ExpiresAt = x.ExpiresAt, Id = long.Parse(x.Id), Name = x.Name, Retries = x.Retries, StatusName = x.StatusName.ToString() }).ToList()); } }
protected override void Execute() { WriteLiteral("\r\n"); #line 9 "..\..\PublishedPage.cshtml" Layout = new LayoutPage(Strings.PublishedMessagesPage_Title); int from, perPage; int.TryParse(Query("from"), out from); int.TryParse(Query("count"), out perPage); string name = Query("name"); string content = Query("content"); var monitor = Storage.GetMonitoringApi(); var pager = new Pager(from, perPage, GetTotal(monitor)); var queryDto = new MessageQueryDto { MessageType = MessageType.Publish, Name = name, Content = content, StatusName = StatusName, CurrentPage = pager.CurrentPage - 1, PageSize = pager.RecordsPerPage }; var succeededMessages = monitor.Messages(queryDto); #line default #line hidden WriteLiteral("\r\n<div class=\"row\">\r\n <div class=\"col-md-3\">\r\n "); #line 35 "..\..\PublishedPage.cshtml" Write(Html.MessagesSidebar(MessageType.Publish)); #line default #line hidden WriteLiteral("\r\n </div>\r\n <div class=\"col-md-9\">\r\n <h1 class=\"page-header\">"); #line 38 "..\..\PublishedPage.cshtml" Write(Strings.PublishedPage_Title); #line default #line hidden WriteLiteral("</h1>\r\n\r\n"); #line 40 "..\..\PublishedPage.cshtml" if (succeededMessages.Count == 0) { #line default #line hidden WriteLiteral(" <div class=\"alert alert-info\">\r\n "); #line 43 "..\..\PublishedPage.cshtml" Write(Strings.MessagesPage_NoMessages); #line default #line hidden WriteLiteral("\r\n </div>\r\n"); #line 45 "..\..\PublishedPage.cshtml" } else { #line default #line hidden WriteLiteral(" <div class=\"js-jobs-list\">\r\n <div class=\"btn-toolbar btn-toolb" + "ar-top\">\r\n <form class=\"row\">\r\n <div class=\"c" + "ol-md-3\">\r\n <input type=\"text\" class=\"form-control\" name=" + "\"name\" value=\""); #line 52 "..\..\PublishedPage.cshtml" Write(Query(" name")); #line default #line hidden WriteLiteral("\" placeholder=\""); #line 52 "..\..\PublishedPage.cshtml" Write(Strings.MessagesPage_Query_MessageName); #line default #line hidden WriteLiteral("\" />\r\n </div>\r\n <div class=\"col-md-5\">\r\n " + " <div class=\"input-group\">\r\n <in" + "put type=\"text\" class=\"form-control\" name=\"content\" value=\""); #line 56 "..\..\PublishedPage.cshtml" Write(Query(" content")); #line default #line hidden WriteLiteral("\" placeholder=\""); #line 56 "..\..\PublishedPage.cshtml" Write(Strings.MessagesPage_Query_MessageBody); #line default #line hidden WriteLiteral("\" />\r\n <span class=\"input-group-btn\">\r\n " + " <button class=\"btn btn-info\">"); #line 58 "..\..\PublishedPage.cshtml" Write(Strings.MessagesPage_Query_Button); #line default #line hidden WriteLiteral(@"</button> </span> </div> </div> </form> </div> <div class=""btn-toolbar btn-toolbar-top""> <button class=""js-jobs-list-command btn btn-sm btn-primary"" data-url="""); #line 66 "..\..\PublishedPage.cshtml" Write(Url.To("/published/requeue")); #line default #line hidden WriteLiteral("\"\r\n data-loading-text=\""); #line 67 "..\..\PublishedPage.cshtml" Write(Strings.Common_Enqueueing); #line default #line hidden WriteLiteral("\"\r\n disabled=\"disabled\">\r\n <span class=\"glyphicon g" + "lyphicon-repeat\"></span>\r\n "); #line 70 "..\..\PublishedPage.cshtml" Write(Strings.Common_RequeueMessages); #line default #line hidden WriteLiteral("\r\n </button>\r\n\r\n "); #line 73 "..\..\PublishedPage.cshtml" Write(Html.PerPageSelector(pager)); #line default #line hidden WriteLiteral(@" </div> <div class=""table-responsive""> <table class=""table""> <thead> <tr> <th style=""width:60px;""> <input type=""checkbox"" class=""js-jobs-list-select-all"" /> </th> <th style=""width:22%;"">"); #line 83 "..\..\PublishedPage.cshtml" Write(Strings.Common_Id); #line default #line hidden WriteLiteral("</th>\r\n <th>"); #line 84 "..\..\PublishedPage.cshtml" Write(Strings.Common_Version); #line default #line hidden WriteLiteral("</th>\r\n <th>"); #line 84 "..\..\PublishedPage.cshtml" Write(Strings.MessagesPage_Table_Name); #line default #line hidden WriteLiteral("</th>\r\n <th class=\"min-width\">"); #line 85 "..\..\PublishedPage.cshtml" Write(Strings.MessagesPage_Table_Retries); #line default #line hidden WriteLiteral("</th>\r\n"); #line 86 "..\..\PublishedPage.cshtml" if (string.Equals(StatusName, "Processing", StringComparison.CurrentCultureIgnoreCase)) { #line default #line hidden WriteLiteral(" <th>"); #line 88 "..\..\PublishedPage.cshtml" Write(Strings.MessagesPage_Table_State); #line default #line hidden WriteLiteral("</th>\r\n"); #line 89 "..\..\PublishedPage.cshtml" } #line default #line hidden WriteLiteral(" <th class=\"align-right\">"); #line 90 "..\..\PublishedPage.cshtml" Write(Strings.MessagesPage_Table_ExpiresAt); #line default #line hidden WriteLiteral("</th>\r\n </tr>\r\n </thead>\r\n " + " <tbody>\r\n"); #line 94 "..\..\PublishedPage.cshtml" foreach (var message in succeededMessages) { #line default #line hidden WriteLiteral(" <tr class=\"js-jobs-list-row hover\">\r\n " + " <td>\r\n <input type=\"checkbox\" class=\"js-j" + "obs-list-checkbox\" name=\"messages[]\" value=\""); #line 98 "..\..\PublishedPage.cshtml" Write(message.Id); #line default #line hidden WriteLiteral("\" />\r\n </td>\r\n <td class=\"w" + "ord-break\">\r\n <a href=\"javascript:;\" data-url=\'"); #line 101 "..\..\PublishedPage.cshtml" Write(Url.To("/published/message/") + message.Id); #line default #line hidden WriteLiteral("\' class=\"openModal\">#"); #line 101 "..\..\PublishedPage.cshtml" Write(message.Id); #line default #line hidden WriteLiteral("</a>\r\n </td>\r\n <td>\r\n " + " "); #line 102 "..\..\PublishedPage.cshtml" Write(message.Version); #line default #line hidden WriteLiteral("</a>\r\n </td>\r\n <td>\r\n " + " "); #line 104 "..\..\PublishedPage.cshtml" Write(message.Name); #line default #line hidden WriteLiteral("\r\n </td>\r\n <td>\r\n " + " "); #line 107 "..\..\PublishedPage.cshtml" Write(message.Retries); #line default #line hidden WriteLiteral("\r\n </td>\r\n"); #line 109 "..\..\PublishedPage.cshtml" if (string.Equals(StatusName, "Processing", StringComparison.CurrentCultureIgnoreCase)) { #line default #line hidden WriteLiteral(" <td>\r\n "); #line 112 "..\..\PublishedPage.cshtml" Write(message.StatusName); #line default #line hidden WriteLiteral("\r\n </td>\r\n"); #line 114 "..\..\PublishedPage.cshtml" } #line default #line hidden WriteLiteral(" <td class=\"align-right\">\r\n"); #line 116 "..\..\PublishedPage.cshtml" if (message.ExpiresAt.HasValue) { #line default #line hidden #line 118 "..\..\PublishedPage.cshtml" Write(Html.RelativeTime(message.ExpiresAt.Value)); #line default #line hidden #line 118 "..\..\PublishedPage.cshtml" } #line default #line hidden WriteLiteral(" </td>\r\n\r\n </tr>\r\n"); #line 123 "..\..\PublishedPage.cshtml" } #line default #line hidden WriteLiteral(" </tbody>\r\n </table>\r\n </div>\r\n " + " "); #line 127 "..\..\PublishedPage.cshtml" Write(Html.Paginator(pager)); #line default #line hidden WriteLiteral("\r\n </div>\r\n"); #line 129 "..\..\PublishedPage.cshtml" #line default #line hidden WriteLiteral(@" <div> <div class=""modal fade"" tabindex=""-1"" role=""dialog""> <div class=""modal-dialog"" role=""document""> <div class=""modal-content""> <div class=""modal-header""> <button type=""button"" class=""close"" data-dismiss=""modal"" aria-label=""Close""><span aria-hidden=""true"">×</span></button> <h4 class=""modal-title"">Message Content</h4> </div> <div id=""jsonContent"" style=""max-height:500px;overflow-y:auto;"" class=""modal-body""> </div> <div class=""modal-footer""> <button type=""button"" class=""btn btn-sm btn-primary"" id=""formatBtn"" onclick="""">"); #line 141 "..\..\PublishedPage.cshtml" Write(Strings.MessagesPage_Modal_Format); #line default #line hidden WriteLiteral("</button>\r\n <button type=\"button\" class=\"btn btn-sm bt" + "n-primary\" id=\"rawBtn\" onclick=\"\">"); #line 142 "..\..\PublishedPage.cshtml" Write(Strings.MessagesPage_Modal_Raw); #line default #line hidden WriteLiteral("</button>\r\n <button type=\"button\" class=\"btn btn-sm bt" + "n-primary\" id=\"expandBtn\" onclick=\"\">"); #line 143 "..\..\PublishedPage.cshtml" Write(Strings.MessagesPage_Modal_Expand); #line default #line hidden WriteLiteral("</button>\r\n <button type=\"button\" class=\"btn btn-sm bt" + "n-primary\" id=\"collapseBtn\" onclick=\"\">"); #line 144 "..\..\PublishedPage.cshtml" Write(Strings.MessagesPage_Model_Collaspse); #line default #line hidden WriteLiteral("</button>\r\n </div>\r\n </div><!-- /.modal" + "-content -->\r\n </div><!-- /.modal-dialog -->\r\n </div><" + "!-- /.modal -->\r\n </div>\r\n"); #line 150 "..\..\PublishedPage.cshtml" } #line default #line hidden WriteLiteral(" </div>\r\n</div>"); }
public IList <MessageDto> Messages(MessageQueryDto queryDto) { if (queryDto.MessageType == MessageType.Publish) { return(_storage.UseDbContext(dbContext => { IQueryable <Models.PublishedMessage> queryable = dbContext.Set <Models.PublishedMessage>(); if (!string.IsNullOrEmpty(queryDto.StatusName)) { queryable = queryable.Where(t => string.Equals(t.StatusName, queryDto.StatusName, StringComparison.InvariantCultureIgnoreCase)); } if (!string.IsNullOrEmpty(queryDto.Name)) { queryable = queryable.Where(t => t.Name == queryDto.Name); } if (!string.IsNullOrEmpty(queryDto.Content)) { queryable = queryable.Where(t => t.Name == queryDto.Content); } return queryable.OrderBy(t => t.Added).Skip(queryDto.CurrentPage * queryDto.PageSize).Take(queryDto.PageSize).Select(t => new MessageDto() { Name = t.Name, Content = t.Content, Added = t.Added, StatusName = t.StatusName, Retries = t.Retries, Id = t.Id, ExpiresAt = t.ExpiresAt, Version = _options.Version // Version = dbContext.Entry(t).Property("Version").CurrentValue?.ToString() }).ToList(); })); } else { return(_storage.UseDbContext(dbContext => { IQueryable <Models.ReceivedMessage> queryable = dbContext.Set <Models.ReceivedMessage>(); if (!string.IsNullOrEmpty(queryDto.StatusName)) { queryable = queryable.Where(t => string.Equals(t.StatusName, queryDto.StatusName, StringComparison.InvariantCultureIgnoreCase)); } if (!string.IsNullOrEmpty(queryDto.Name)) { queryable = queryable.Where(t => t.Name == queryDto.Name); } if (!string.IsNullOrEmpty(queryDto.Group)) { queryable = queryable.Where(t => t.Group == queryDto.Group); } if (!string.IsNullOrEmpty(queryDto.Content)) { queryable = queryable.Where(t => t.Name == queryDto.Content); } return queryable.OrderBy(t => t.Added).Skip(queryDto.CurrentPage * queryDto.PageSize).Take(queryDto.PageSize).Select(t => new MessageDto() { Name = t.Name, Group = t.Group, Content = t.Content, Added = t.Added, StatusName = t.StatusName, Retries = t.Retries, Id = t.Id, ExpiresAt = t.ExpiresAt, Version = _options.Version // Version = dbContext.Entry(t).Property("Version").CurrentValue?.ToString() }).ToList(); })); } }
public IList <MessageDto> Messages(MessageQueryDto queryDto) { var tableName = queryDto.MessageType == MessageType.Publish ? _pubName : _recName; // The order of sqlParam items must same to the parameter in SQL query string var sqlParams = new List <OracleParameter>(); var where = string.Empty; if (!string.IsNullOrEmpty(queryDto.StatusName)) { where += " AND \"StatusName\" = :P_StatusName"; // The 'Succeeded' and 'succeeded' it not equal in oracle sqlParams.Add(new OracleParameter(":P_StatusName", ToCamelCase(queryDto.StatusName) ?? string.Empty)); } if (!string.IsNullOrEmpty(queryDto.Name)) { where += " AND \"Name\" = :P_Name"; sqlParams.Add(new OracleParameter(":P_Name", queryDto.Name ?? string.Empty)); } if (!string.IsNullOrEmpty(queryDto.Group)) { where += " AND \"Group\" = :P_Group"; sqlParams.Add(new OracleParameter(":P_Group", queryDto.Group ?? string.Empty)); } if (!string.IsNullOrEmpty(queryDto.Content)) { where += " AND \"Content\" LIKE CONCAT('%',:P_Content,'%')"; sqlParams.Add(new OracleParameter(":P_Content", $"%{queryDto.Content}%")); } var sqlQuery = $@" SELECT * FROM ( SELECT t1.*, ROW_NUMBER() OVER(ORDER BY ""Added"" DESC) AS irowid FROM( SELECT * FROM ""{tableName}"" WHERE 1=1 {where} ) t1 ) t2 WHERE t2.irowid > :RowStart AND t2.irowid <= :P_RowEnd"; sqlParams.AddRange(new OracleParameter[] { new OracleParameter(":P_RowStart", (queryDto.CurrentPage) * queryDto.PageSize), new OracleParameter(":P_RowEnd", ((queryDto.CurrentPage) * queryDto.PageSize) + queryDto.PageSize) }); using var connection = new OracleConnection(_options.ConnectionString); return(connection.ExecuteReader(sqlQuery, reader => { var messages = new List <MessageDto>(); while (reader.Read()) { var index = 0; messages.Add(new MessageDto { Id = reader.GetInt64(index++), Version = reader.GetString(index++), Name = reader.GetString(index++), Group = queryDto.MessageType == MessageType.Subscribe ? reader.GetString(index++) : default,
public IList <MessageDto> Messages(MessageQueryDto queryDto) { var connection = GetConnection(); if (queryDto.MessageType == MessageType.Publish) { var expression = connection.PublishedMessages.Where(x => true); if (!string.IsNullOrEmpty(queryDto.StatusName)) { expression = expression.Where(x => x.StatusName == queryDto.StatusName); } if (!string.IsNullOrEmpty(queryDto.Name)) { expression = expression.Where(x => x.Name == queryDto.Name); } if (!string.IsNullOrEmpty(queryDto.Content)) { expression = expression.Where(x => x.Content.Contains(queryDto.Content)); } var offset = queryDto.CurrentPage * queryDto.PageSize; var size = queryDto.PageSize; return(expression.Skip(offset).Take(size).Select(x => new MessageDto() { Added = x.Added, Content = x.Content, ExpiresAt = x.ExpiresAt, Id = x.Id, Name = x.Name, Retries = x.Retries, StatusName = x.StatusName }).ToList()); } else { var expression = connection.ReceivedMessages.Where(x => true); if (!string.IsNullOrEmpty(queryDto.StatusName)) { expression = expression.Where(x => x.StatusName == queryDto.StatusName); } if (!string.IsNullOrEmpty(queryDto.Name)) { expression = expression.Where(x => x.Name == queryDto.Name); } if (!string.IsNullOrEmpty(queryDto.Group)) { expression = expression.Where(x => x.Group == queryDto.Name); } if (!string.IsNullOrEmpty(queryDto.Content)) { expression = expression.Where(x => x.Content.Contains(queryDto.Content)); } var offset = queryDto.CurrentPage * queryDto.PageSize; var size = queryDto.PageSize; return(expression.Skip(offset).Take(size).Select(x => new MessageDto() { Added = x.Added, Content = x.Content, ExpiresAt = x.ExpiresAt, Id = x.Id, Name = x.Name, Retries = x.Retries, StatusName = x.StatusName }).ToList()); } }
public PagedQueryResult <MessageDto> Messages(MessageQueryDto queryDto) { if (queryDto.MessageType == MessageType.Publish) { var expression = InMemoryStorage.PublishedMessages.Values.Where(x => true); if (!string.IsNullOrEmpty(queryDto.StatusName)) { expression = expression.Where(x => x.StatusName.ToString().Equals(queryDto.StatusName, StringComparison.InvariantCultureIgnoreCase)); } if (!string.IsNullOrEmpty(queryDto.Name)) { expression = expression.Where(x => x.Name.Equals(queryDto.Name, StringComparison.InvariantCultureIgnoreCase)); } if (!string.IsNullOrEmpty(queryDto.Content)) { expression = expression.Where(x => x.Content.Contains(queryDto.Content)); } var offset = queryDto.CurrentPage * queryDto.PageSize; var size = queryDto.PageSize; var allItems = expression.Select(x => new MessageDto() { Added = x.Added, Version = "N/A", Content = x.Content, ExpiresAt = x.ExpiresAt, Id = x.DbId, Name = x.Name, Retries = x.Retries, StatusName = x.StatusName.ToString() }); return(new PagedQueryResult <MessageDto>() { Items = allItems.Skip(offset).Take(size).ToList(), PageIndex = queryDto.CurrentPage, PageSize = queryDto.PageSize, Totals = allItems.Count() }); } else { var expression = InMemoryStorage.ReceivedMessages.Values.Where(x => true); if (!string.IsNullOrEmpty(queryDto.StatusName)) { expression = expression.Where(x => x.StatusName.ToString().Equals(queryDto.StatusName, StringComparison.InvariantCultureIgnoreCase)); } if (!string.IsNullOrEmpty(queryDto.Name)) { expression = expression.Where(x => x.Name.Equals(queryDto.Name, StringComparison.InvariantCultureIgnoreCase)); } if (!string.IsNullOrEmpty(queryDto.Group)) { expression = expression.Where(x => x.Group.Equals(queryDto.Group, StringComparison.InvariantCultureIgnoreCase)); } if (!string.IsNullOrEmpty(queryDto.Content)) { expression = expression.Where(x => x.Content.Contains(queryDto.Content)); } var offset = queryDto.CurrentPage * queryDto.PageSize; var size = queryDto.PageSize; var allItems = expression.Select(x => new MessageDto() { Added = x.Added, Group = x.Group, Version = "N/A", Content = x.Content, ExpiresAt = x.ExpiresAt, Id = x.DbId, Name = x.Name, Retries = x.Retries, StatusName = x.StatusName.ToString() }); return(new PagedQueryResult <MessageDto>() { Items = allItems.Skip(offset).Take(size).ToList(), PageIndex = queryDto.CurrentPage, PageSize = queryDto.PageSize, Totals = allItems.Count() }); } }