V12: Change nullability for the log searches (#13647)
* Changing nullability * Obsolete DeleteSavedSearch since the query param is not used * Fix a bit more referenced * Add default implementation for the new overload of DeleteSavedSearch
This commit is contained in:
committed by
GitHub
parent
84d78e1393
commit
5e06f5a8a0
@@ -4,7 +4,7 @@ namespace Umbraco.Cms.Core.Models;
|
||||
|
||||
public interface ILogViewerQuery : IEntity
|
||||
{
|
||||
string? Name { get; set; }
|
||||
string Name { get; set; }
|
||||
|
||||
string? Query { get; set; }
|
||||
string Query { get; set; }
|
||||
}
|
||||
|
||||
@@ -7,26 +7,26 @@ namespace Umbraco.Cms.Core.Models;
|
||||
[DataContract(IsReference = true)]
|
||||
public class LogViewerQuery : EntityBase, ILogViewerQuery
|
||||
{
|
||||
private string? _name;
|
||||
private string? _query;
|
||||
private string _name = string.Empty;
|
||||
private string _query = string.Empty;
|
||||
|
||||
public LogViewerQuery(string? name, string? query)
|
||||
public LogViewerQuery(string name, string query)
|
||||
{
|
||||
Name = name;
|
||||
_query = query;
|
||||
Query = query;
|
||||
}
|
||||
|
||||
[DataMember]
|
||||
public string? Name
|
||||
public string Name
|
||||
{
|
||||
get => _name;
|
||||
set => SetPropertyValueAndDetectChanges(value, ref _name, nameof(Name));
|
||||
set => SetPropertyValueAndDetectChanges(value, ref _name!, nameof(Name));
|
||||
}
|
||||
|
||||
[DataMember]
|
||||
public string? Query
|
||||
public string Query
|
||||
{
|
||||
get => _query;
|
||||
set => SetPropertyValueAndDetectChanges(value, ref _query, nameof(Query));
|
||||
set => SetPropertyValueAndDetectChanges(value, ref _query!, nameof(Query));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,12 +14,15 @@ public interface ILogViewer
|
||||
/// <summary>
|
||||
/// Adds a new saved search to chosen data source and returns the updated searches
|
||||
/// </summary>
|
||||
IReadOnlyList<SavedLogSearch> AddSavedSearch(string? name, string? query);
|
||||
IReadOnlyList<SavedLogSearch> AddSavedSearch(string name, string query);
|
||||
|
||||
/// <summary>
|
||||
/// Deletes a saved search to chosen data source and returns the remaining searches
|
||||
/// </summary>
|
||||
IReadOnlyList<SavedLogSearch> DeleteSavedSearch(string? name, string? query);
|
||||
IReadOnlyList<SavedLogSearch> DeleteSavedSearch(string name) => DeleteSavedSearch(name, string.Empty);
|
||||
|
||||
[Obsolete("Use the overload that only takes a 'name' parameter instead. This will be removed in Umbraco 14.")]
|
||||
IReadOnlyList<SavedLogSearch> DeleteSavedSearch(string name, string query);
|
||||
|
||||
/// <summary>
|
||||
/// A count of number of errors
|
||||
|
||||
@@ -4,7 +4,10 @@ public interface ILogViewerConfig
|
||||
{
|
||||
IReadOnlyList<SavedLogSearch> GetSavedSearches();
|
||||
|
||||
IReadOnlyList<SavedLogSearch> AddSavedSearch(string? name, string? query);
|
||||
IReadOnlyList<SavedLogSearch> AddSavedSearch(string name, string query);
|
||||
|
||||
IReadOnlyList<SavedLogSearch> DeleteSavedSearch(string? name, string? query);
|
||||
[Obsolete("Use the overload that only takes a 'name' parameter instead. This will be removed in Umbraco 14.")]
|
||||
IReadOnlyList<SavedLogSearch> DeleteSavedSearch(string name, string query);
|
||||
|
||||
IReadOnlyList<SavedLogSearch> DeleteSavedSearch(string name) => DeleteSavedSearch(name, string.Empty);
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ public class LogViewerConfig : ILogViewerConfig
|
||||
return result;
|
||||
}
|
||||
|
||||
public IReadOnlyList<SavedLogSearch> AddSavedSearch(string? name, string? query)
|
||||
public IReadOnlyList<SavedLogSearch> AddSavedSearch(string name, string query)
|
||||
{
|
||||
using IScope scope = _scopeProvider.CreateScope(autoComplete: true);
|
||||
_logViewerQueryRepository.Save(new LogViewerQuery(name, query));
|
||||
@@ -32,10 +32,14 @@ public class LogViewerConfig : ILogViewerConfig
|
||||
return GetSavedSearches();
|
||||
}
|
||||
|
||||
public IReadOnlyList<SavedLogSearch> DeleteSavedSearch(string? name, string? query)
|
||||
[Obsolete("Use the overload that only takes a 'name' parameter instead. This will be removed in Umbraco 14.")]
|
||||
public IReadOnlyList<SavedLogSearch> DeleteSavedSearch(string name, string query) => DeleteSavedSearch(name);
|
||||
|
||||
public IReadOnlyList<SavedLogSearch> DeleteSavedSearch(string name)
|
||||
{
|
||||
using IScope scope = _scopeProvider.CreateScope(autoComplete: true);
|
||||
ILogViewerQuery? item = name is null ? null : _logViewerQueryRepository.GetByName(name);
|
||||
ILogViewerQuery? item = _logViewerQueryRepository.GetByName(name);
|
||||
|
||||
if (item is not null)
|
||||
{
|
||||
_logViewerQueryRepository.Delete(item);
|
||||
|
||||
@@ -5,8 +5,8 @@ namespace Umbraco.Cms.Core.Logging.Viewer;
|
||||
public class SavedLogSearch
|
||||
{
|
||||
[JsonProperty("name")]
|
||||
public string? Name { get; set; }
|
||||
public required string Name { get; set; }
|
||||
|
||||
[JsonProperty("query")]
|
||||
public string? Query { get; set; }
|
||||
public required string Query { get; set; }
|
||||
}
|
||||
|
||||
@@ -24,11 +24,15 @@ public abstract class SerilogLogViewerSourceBase : ILogViewer
|
||||
public virtual IReadOnlyList<SavedLogSearch> GetSavedSearches()
|
||||
=> _logViewerConfig.GetSavedSearches();
|
||||
|
||||
public virtual IReadOnlyList<SavedLogSearch> AddSavedSearch(string? name, string? query)
|
||||
public virtual IReadOnlyList<SavedLogSearch> AddSavedSearch(string name, string query)
|
||||
=> _logViewerConfig.AddSavedSearch(name, query);
|
||||
|
||||
public virtual IReadOnlyList<SavedLogSearch> DeleteSavedSearch(string? name, string? query)
|
||||
=> _logViewerConfig.DeleteSavedSearch(name, query);
|
||||
[Obsolete("Use the overload that only takes a 'name' parameter instead. This will be removed in Umbraco 14.")]
|
||||
public virtual IReadOnlyList<SavedLogSearch> DeleteSavedSearch(string name, string query)
|
||||
=> DeleteSavedSearch(name);
|
||||
|
||||
public virtual IReadOnlyList<SavedLogSearch> DeleteSavedSearch(string name)
|
||||
=> _logViewerConfig.DeleteSavedSearch(name);
|
||||
|
||||
public int GetNumberOfErrors(LogTimePeriod logTimePeriod)
|
||||
{
|
||||
|
||||
@@ -15,8 +15,8 @@ internal class LogViewerQueryDto
|
||||
|
||||
[Column("name")]
|
||||
[Index(IndexTypes.UniqueNonClustered, Name = "IX_LogViewerQuery_name")]
|
||||
public string? Name { get; set; }
|
||||
public required string Name { get; set; }
|
||||
|
||||
[Column("query")]
|
||||
public string? Query { get; set; }
|
||||
public required string Query { get; set; }
|
||||
}
|
||||
|
||||
@@ -137,7 +137,7 @@ public class LogViewerController : BackOfficeNotificationsController
|
||||
|
||||
[HttpPost]
|
||||
public IEnumerable<SavedLogSearch> DeleteSavedSearch(SavedLogSearch item) =>
|
||||
_logViewer.DeleteSavedSearch(item.Name, item.Query);
|
||||
_logViewer.DeleteSavedSearch(item.Name);
|
||||
|
||||
[HttpGet]
|
||||
public ReadOnlyDictionary<string, LogEventLevel?> GetLogLevels() => _logLevelLoader.GetLogLevelsFromSinks();
|
||||
|
||||
@@ -223,7 +223,7 @@ public class LogviewerTests
|
||||
// Assert.That(searches, Contains.Item(savedSearch));
|
||||
|
||||
// Remove the search from above & ensure it no longer exists
|
||||
_logViewer.DeleteSavedSearch("Unit Test Example", "Has(UnitTest)");
|
||||
_logViewer.DeleteSavedSearch("Unit Test Example");
|
||||
|
||||
searches = _logViewer.GetSavedSearches();
|
||||
findItem = searches.Where(x => x.Name == "Unit Test Example" && x.Query == "Has(UnitTest)");
|
||||
|
||||
Reference in New Issue
Block a user